mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 01:16:49 +00:00
Merge "Fix constant crash when setting MultiStateCallback.DEBUG_STATES=true" into tm-qpr-dev
This commit is contained in:
@@ -141,7 +141,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
RecentsAnimationCallbacks.RecentsAnimationListener {
|
||||
private static final String TAG = "AbsSwipeUpHandler";
|
||||
|
||||
private static final String[] STATE_NAMES = DEBUG_STATES ? new String[17] : null;
|
||||
private static final ArrayList<String> STATE_NAMES = new ArrayList<>();
|
||||
|
||||
protected final BaseActivityInterface<S, T> mActivityInterface;
|
||||
protected final InputConsumerProxy mInputConsumerProxy;
|
||||
@@ -172,59 +172,62 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
};
|
||||
|
||||
private static int getFlagForIndex(int index, String name) {
|
||||
private static int FLAG_COUNT = 0;
|
||||
private static int getNextStateFlag(String name) {
|
||||
if (DEBUG_STATES) {
|
||||
STATE_NAMES[index] = name;
|
||||
STATE_NAMES.add(name);
|
||||
}
|
||||
return 1 << index;
|
||||
int index = 1 << FLAG_COUNT;
|
||||
FLAG_COUNT++;
|
||||
return index;
|
||||
}
|
||||
|
||||
// Launcher UI related states
|
||||
protected static final int STATE_LAUNCHER_PRESENT =
|
||||
getFlagForIndex(0, "STATE_LAUNCHER_PRESENT");
|
||||
getNextStateFlag("STATE_LAUNCHER_PRESENT");
|
||||
protected static final int STATE_LAUNCHER_STARTED =
|
||||
getFlagForIndex(1, "STATE_LAUNCHER_STARTED");
|
||||
getNextStateFlag("STATE_LAUNCHER_STARTED");
|
||||
protected static final int STATE_LAUNCHER_DRAWN =
|
||||
getFlagForIndex(2, "STATE_LAUNCHER_DRAWN");
|
||||
getNextStateFlag("STATE_LAUNCHER_DRAWN");
|
||||
// Called when the Launcher has connected to the touch interaction service (and the taskbar
|
||||
// ui controller is initialized)
|
||||
protected static final int STATE_LAUNCHER_BIND_TO_SERVICE =
|
||||
getFlagForIndex(3, "STATE_LAUNCHER_BIND_TO_SERVICE");
|
||||
getNextStateFlag("STATE_LAUNCHER_BIND_TO_SERVICE");
|
||||
|
||||
// Internal initialization states
|
||||
private static final int STATE_APP_CONTROLLER_RECEIVED =
|
||||
getFlagForIndex(4, "STATE_APP_CONTROLLER_RECEIVED");
|
||||
getNextStateFlag("STATE_APP_CONTROLLER_RECEIVED");
|
||||
|
||||
// Interaction finish states
|
||||
private static final int STATE_SCALED_CONTROLLER_HOME =
|
||||
getFlagForIndex(5, "STATE_SCALED_CONTROLLER_HOME");
|
||||
getNextStateFlag("STATE_SCALED_CONTROLLER_HOME");
|
||||
private static final int STATE_SCALED_CONTROLLER_RECENTS =
|
||||
getFlagForIndex(6, "STATE_SCALED_CONTROLLER_RECENTS");
|
||||
getNextStateFlag("STATE_SCALED_CONTROLLER_RECENTS");
|
||||
|
||||
protected static final int STATE_HANDLER_INVALIDATED =
|
||||
getFlagForIndex(7, "STATE_HANDLER_INVALIDATED");
|
||||
getNextStateFlag("STATE_HANDLER_INVALIDATED");
|
||||
private static final int STATE_GESTURE_STARTED =
|
||||
getFlagForIndex(8, "STATE_GESTURE_STARTED");
|
||||
getNextStateFlag("STATE_GESTURE_STARTED");
|
||||
private static final int STATE_GESTURE_CANCELLED =
|
||||
getFlagForIndex(9, "STATE_GESTURE_CANCELLED");
|
||||
getNextStateFlag("STATE_GESTURE_CANCELLED");
|
||||
private static final int STATE_GESTURE_COMPLETED =
|
||||
getFlagForIndex(10, "STATE_GESTURE_COMPLETED");
|
||||
getNextStateFlag("STATE_GESTURE_COMPLETED");
|
||||
|
||||
private static final int STATE_CAPTURE_SCREENSHOT =
|
||||
getFlagForIndex(11, "STATE_CAPTURE_SCREENSHOT");
|
||||
getNextStateFlag("STATE_CAPTURE_SCREENSHOT");
|
||||
protected static final int STATE_SCREENSHOT_CAPTURED =
|
||||
getFlagForIndex(12, "STATE_SCREENSHOT_CAPTURED");
|
||||
getNextStateFlag("STATE_SCREENSHOT_CAPTURED");
|
||||
private static final int STATE_SCREENSHOT_VIEW_SHOWN =
|
||||
getFlagForIndex(13, "STATE_SCREENSHOT_VIEW_SHOWN");
|
||||
getNextStateFlag("STATE_SCREENSHOT_VIEW_SHOWN");
|
||||
|
||||
private static final int STATE_RESUME_LAST_TASK =
|
||||
getFlagForIndex(14, "STATE_RESUME_LAST_TASK");
|
||||
getNextStateFlag("STATE_RESUME_LAST_TASK");
|
||||
private static final int STATE_START_NEW_TASK =
|
||||
getFlagForIndex(15, "STATE_START_NEW_TASK");
|
||||
getNextStateFlag("STATE_START_NEW_TASK");
|
||||
private static final int STATE_CURRENT_TASK_FINISHED =
|
||||
getFlagForIndex(16, "STATE_CURRENT_TASK_FINISHED");
|
||||
getNextStateFlag("STATE_CURRENT_TASK_FINISHED");
|
||||
private static final int STATE_FINISH_WITH_NO_END =
|
||||
getFlagForIndex(17, "STATE_FINISH_WITH_NO_END");
|
||||
getNextStateFlag("STATE_FINISH_WITH_NO_END");
|
||||
|
||||
private static final int LAUNCHER_UI_STATES =
|
||||
STATE_LAUNCHER_PRESENT | STATE_LAUNCHER_DRAWN | STATE_LAUNCHER_STARTED |
|
||||
@@ -318,7 +321,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
private void initStateCallbacks() {
|
||||
mStateCallback = new MultiStateCallback(STATE_NAMES);
|
||||
mStateCallback = new MultiStateCallback(STATE_NAMES.toArray(new String[0]));
|
||||
|
||||
mStateCallback.runOnceAtState(STATE_LAUNCHER_PRESENT | STATE_GESTURE_STARTED,
|
||||
this::onLauncherPresentAndGestureStarted);
|
||||
|
||||
@@ -38,6 +38,7 @@ import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -82,11 +83,11 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
||||
|
||||
private static final String TAG = "GestureState";
|
||||
|
||||
private static final ArrayList<String> STATE_NAMES = new ArrayList<>();
|
||||
private static final List<String> STATE_NAMES = new ArrayList<>();
|
||||
public static final GestureState DEFAULT_STATE = new GestureState();
|
||||
|
||||
private static int FLAG_COUNT = 0;
|
||||
private static int getFlagForIndex(String name) {
|
||||
private static int getNextStateFlag(String name) {
|
||||
if (DEBUG_STATES) {
|
||||
STATE_NAMES.add(name);
|
||||
}
|
||||
@@ -97,36 +98,36 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
||||
|
||||
// Called when the end target as been set
|
||||
public static final int STATE_END_TARGET_SET =
|
||||
getFlagForIndex("STATE_END_TARGET_SET");
|
||||
getNextStateFlag("STATE_END_TARGET_SET");
|
||||
|
||||
// Called when the end target animation has finished
|
||||
public static final int STATE_END_TARGET_ANIMATION_FINISHED =
|
||||
getFlagForIndex("STATE_END_TARGET_ANIMATION_FINISHED");
|
||||
getNextStateFlag("STATE_END_TARGET_ANIMATION_FINISHED");
|
||||
|
||||
// Called when the recents animation has been requested to start
|
||||
public static final int STATE_RECENTS_ANIMATION_INITIALIZED =
|
||||
getFlagForIndex("STATE_RECENTS_ANIMATION_INITIALIZED");
|
||||
getNextStateFlag("STATE_RECENTS_ANIMATION_INITIALIZED");
|
||||
|
||||
// Called when the recents animation is started and the TaskAnimationManager has been updated
|
||||
// with the controller and targets
|
||||
public static final int STATE_RECENTS_ANIMATION_STARTED =
|
||||
getFlagForIndex("STATE_RECENTS_ANIMATION_STARTED");
|
||||
getNextStateFlag("STATE_RECENTS_ANIMATION_STARTED");
|
||||
|
||||
// Called when the recents animation is canceled
|
||||
public static final int STATE_RECENTS_ANIMATION_CANCELED =
|
||||
getFlagForIndex("STATE_RECENTS_ANIMATION_CANCELED");
|
||||
getNextStateFlag("STATE_RECENTS_ANIMATION_CANCELED");
|
||||
|
||||
// Called when the recents animation finishes
|
||||
public static final int STATE_RECENTS_ANIMATION_FINISHED =
|
||||
getFlagForIndex("STATE_RECENTS_ANIMATION_FINISHED");
|
||||
getNextStateFlag("STATE_RECENTS_ANIMATION_FINISHED");
|
||||
|
||||
// Always called when the recents animation ends (regardless of cancel or finish)
|
||||
public static final int STATE_RECENTS_ANIMATION_ENDED =
|
||||
getFlagForIndex("STATE_RECENTS_ANIMATION_ENDED");
|
||||
getNextStateFlag("STATE_RECENTS_ANIMATION_ENDED");
|
||||
|
||||
// Called when RecentsView stops scrolling and settles on a TaskView.
|
||||
public static final int STATE_RECENTS_SCROLLING_FINISHED =
|
||||
getFlagForIndex("STATE_RECENTS_SCROLLING_FINISHED");
|
||||
getNextStateFlag("STATE_RECENTS_SCROLLING_FINISHED");
|
||||
|
||||
// Needed to interact with the current activity
|
||||
private final Intent mHomeIntent;
|
||||
|
||||
Reference in New Issue
Block a user