app/src/main/java/me/zhanghai/android/douya/ui/KonamiCodeDetector.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.ui;

import android.content.Context;
import android.view.MotionEvent;

public abstract class KonamiCodeDetector extends OnSwipeGestureTouchListener {

    private enum Action {
        LEFT,
        RIGHT,
        UP,
        DOWN,
        A,
        B
    }

    private enum State {

        INITIAL(Action.UP),
        UP(Action.UP),
        UP_UP(Action.DOWN),
        UP_UP_DOWN(Action.DOWN),
        UP_UP_DOWN_DOWN(Action.LEFT),
        UP_UP_DOWN_DOWN_LEFT(Action.RIGHT),
        UP_UP_DOWN_DOWN_LEFT_RIGHT(Action.LEFT),
        UP_UP_DOWN_DOWN_LEFT_RIGHT_LEFT(Action.RIGHT),
        UP_UP_DOWN_DOWN_LEFT_RIGHT_LEFT_RIGHT(Action.B),
        UP_UP_DOWN_DOWN_LEFT_RIGHT_LEFT_RIGHT_B(Action.A),
        FINAL(null);

        private Action mNextAction;

        State(Action nextAction) {
            mNextAction = nextAction;
        }

        public State next(Action action) {
            return mNextAction != null && action == mNextAction ? values()[ordinal() + 1]
                    : INITIAL;
        }
    }

    private final float mHalfScreenWidth;

    private State mState = State.INITIAL;

    public KonamiCodeDetector(Context context) {
        super(context, false);

        mHalfScreenWidth = (float) context.getResources().getDisplayMetrics().widthPixels / 2;
    }

    @Override
    public void onSwipeLeft() {
        onAction(Action.LEFT);
后面还有 37 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。