diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-10-19 12:36:27 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-10-19 12:37:11 -0700 |
commit | cd7c0aad5fd7245981fe615103ea62c85239a2bb (patch) | |
tree | 3cce7b845c34af60ae34d70b7a57a44fabb4bb35 /src/com | |
parent | f9403d92fa872a9f9f487540dc989df7b80db8b8 (diff) | |
download | android_packages_apps_Trebuchet-cd7c0aad5fd7245981fe615103ea62c85239a2bb.tar.gz android_packages_apps_Trebuchet-cd7c0aad5fd7245981fe615103ea62c85239a2bb.tar.bz2 android_packages_apps_Trebuchet-cd7c0aad5fd7245981fe615103ea62c85239a2bb.zip |
Changing LauncherState to a class to allow adding custom functionality
Bug: 67678570
Change-Id: I777e335e9fdf7014b041addff6b8e54fb94167bb
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherState.java | 52 | ||||
-rw-r--r-- | src/com/android/launcher3/WorkspaceStateTransitionAnimation.java | 23 |
3 files changed, 48 insertions, 35 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 4efb911b7..c2d391684 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1026,7 +1026,7 @@ public class Launcher extends BaseActivity return; } - int stateOrdinal = savedState.getInt(RUNTIME_STATE, LauncherState.NORMAL.ordinal()); + int stateOrdinal = savedState.getInt(RUNTIME_STATE, LauncherState.NORMAL.ordinal); LauncherState[] stateValues = LauncherState.values(); LauncherState state = stateValues[stateOrdinal]; if (!state.doNotRestore) { @@ -1495,7 +1495,7 @@ public class Launcher extends BaseActivity outState.putInt(RUNTIME_STATE_CURRENT_SCREEN, mWorkspace.getNextPage()); } - outState.putInt(RUNTIME_STATE, mWorkspace.getState().ordinal()); + outState.putInt(RUNTIME_STATE, mWorkspace.getState().ordinal); AbstractFloatingView widgets = AbstractFloatingView @@ -2336,7 +2336,7 @@ public class Launcher extends BaseActivity public boolean onLongClick(View v) { if (!isDraggingEnabled()) return false; if (isWorkspaceLocked()) return false; - if (!isInState(LauncherState.NORMAL)) return false; + if (!isInState(LauncherState.NORMAL) && !isInState(LauncherState.OVERVIEW)) return false; boolean ignoreLongPressToOverview = mDeviceProfile.shouldIgnoreLongPressToOverview(mLastDispatchTouchEventX); @@ -2531,7 +2531,7 @@ public class Launcher extends BaseActivity public void enterSpringLoadedDragMode() { if (LOGD) Log.d(TAG, String.format("enterSpringLoadedDragMode [mState=%s", - mWorkspace.getState().name())); + mWorkspace.getState().ordinal)); if (isInState(LauncherState.SPRING_LOADED)) { return; } diff --git a/src/com/android/launcher3/LauncherState.java b/src/com/android/launcher3/LauncherState.java index c51b92081..4619f4e58 100644 --- a/src/com/android/launcher3/LauncherState.java +++ b/src/com/android/launcher3/LauncherState.java @@ -21,34 +21,41 @@ import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS; import static com.android.launcher3.LauncherAnimUtils.ALL_APPS_TRANSITION_MS; import static com.android.launcher3.LauncherAnimUtils.OVERVIEW_TRANSITION_MS; import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_TRANSITION_MS; -import static com.android.launcher3.StateFlags.FLAG_DISABLE_ACCESSIBILITY; -import static com.android.launcher3.StateFlags.FLAG_DO_NOT_RESTORE; -import static com.android.launcher3.StateFlags.FLAG_HIDE_HOTSEAT; -import static com.android.launcher3.StateFlags.FLAG_MULTI_PAGE; -import static com.android.launcher3.StateFlags.FLAG_SHOW_SCRIM; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; -interface StateFlags { - int FLAG_SHOW_SCRIM = 1 << 0; - int FLAG_MULTI_PAGE = 1 << 1; - int FLAG_HIDE_HOTSEAT = 1 << 2; - int FLAG_DISABLE_ACCESSIBILITY = 1 << 3; - int FLAG_DO_NOT_RESTORE = 1 << 4; -} +import java.util.Arrays; + /** * Various states for launcher */ -public enum LauncherState { +public class LauncherState { + + protected static final int FLAG_SHOW_SCRIM = 1 << 0; + protected static final int FLAG_MULTI_PAGE = 1 << 1; + protected static final int FLAG_HIDE_HOTSEAT = 1 << 2; + protected static final int FLAG_DISABLE_ACCESSIBILITY = 1 << 3; + protected static final int FLAG_DO_NOT_RESTORE = 1 << 4; + + private static final LauncherState[] sAllStates = new LauncherState[4]; + + public static LauncherState NORMAL = new LauncherState(0, ContainerType.WORKSPACE, + 0, FLAG_DO_NOT_RESTORE); + + public static LauncherState ALL_APPS = new LauncherState(1, ContainerType.ALLAPPS, + ALL_APPS_TRANSITION_MS, FLAG_DISABLE_ACCESSIBILITY); - NORMAL (ContainerType.WORKSPACE, 0, FLAG_DO_NOT_RESTORE), - ALL_APPS (ContainerType.ALLAPPS, ALL_APPS_TRANSITION_MS, FLAG_DISABLE_ACCESSIBILITY), - SPRING_LOADED (ContainerType.WORKSPACE, SPRING_LOADED_TRANSITION_MS, - FLAG_SHOW_SCRIM | FLAG_MULTI_PAGE | FLAG_DISABLE_ACCESSIBILITY | FLAG_DO_NOT_RESTORE), - OVERVIEW (ContainerType.OVERVIEW, OVERVIEW_TRANSITION_MS, + public static LauncherState SPRING_LOADED = new LauncherState(2, ContainerType.WORKSPACE, + SPRING_LOADED_TRANSITION_MS, + FLAG_SHOW_SCRIM | FLAG_MULTI_PAGE | FLAG_DISABLE_ACCESSIBILITY | FLAG_DO_NOT_RESTORE); + + public static LauncherState OVERVIEW = new LauncherState(3, ContainerType.OVERVIEW, + OVERVIEW_TRANSITION_MS, FLAG_SHOW_SCRIM | FLAG_MULTI_PAGE | FLAG_HIDE_HOTSEAT | FLAG_DO_NOT_RESTORE); + public final int ordinal; + /** * Used for containerType in {@link com.android.launcher3.logging.UserEventDispatcher} */ @@ -75,7 +82,7 @@ public enum LauncherState { public final boolean hideHotseat; public final int transitionDuration; - LauncherState(int containerType, int transitionDuration, int flags) { + public LauncherState(int id, int containerType, int transitionDuration, int flags) { this.containerType = containerType; this.transitionDuration = transitionDuration; @@ -86,5 +93,12 @@ public enum LauncherState { ? IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS : IMPORTANT_FOR_ACCESSIBILITY_AUTO; this.doNotRestore = (flags & FLAG_DO_NOT_RESTORE) != 0; + + this.ordinal = id; + sAllStates[id] = this; + } + + public static LauncherState[] values() { + return Arrays.copyOf(sAllStates, sAllStates.length); } } diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index 8e215b033..af56fd77c 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -18,6 +18,8 @@ package com.android.launcher3; import static com.android.launcher3.LauncherAnimUtils.DRAWABLE_ALPHA; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; +import static com.android.launcher3.LauncherState.OVERVIEW; +import static com.android.launcher3.LauncherState.SPRING_LOADED; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -187,18 +189,15 @@ public class WorkspaceStateTransitionAnimation { int finalBackgroundAlpha = state.hasScrim ? 255 : 0; final float finalWorkspaceTranslationY; - switch (state) { - case OVERVIEW: - mNewScale = mOverviewModeShrinkFactor; - finalWorkspaceTranslationY = mWorkspace.getOverviewModeTranslationY(); - break; - case SPRING_LOADED: - mNewScale = mSpringLoadedShrinkFactor; - finalWorkspaceTranslationY = mWorkspace.getSpringLoadedTranslationY(); - break; - default: - mNewScale = 1f; - finalWorkspaceTranslationY = 0; + if (state == OVERVIEW) { + mNewScale = mOverviewModeShrinkFactor; + finalWorkspaceTranslationY = mWorkspace.getOverviewModeTranslationY(); + } else if (state == SPRING_LOADED) { + mNewScale = mSpringLoadedShrinkFactor; + finalWorkspaceTranslationY = mWorkspace.getSpringLoadedTranslationY(); + } else { + mNewScale = 1f; + finalWorkspaceTranslationY = 0; } int toPage = mWorkspace.getPageNearestToCenterOfScreen(); |