diff options
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 34 | ||||
-rw-r--r-- | src_config/com/android/launcher3/config/FeatureFlags.java | 7 |
2 files changed, 35 insertions, 6 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 624ea4a54..069362b3a 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -71,6 +71,7 @@ import android.view.View; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.animation.OvershootInterpolator; @@ -175,6 +176,13 @@ public class Launcher extends BaseActivity */ protected static final int REQUEST_LAST = 100; + private static final int SOFT_INPUT_MODE_DEFAULT = + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN + | WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED; + private static final int SOFT_INPUT_MODE_ALL_APPS = + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED; + // The Intent extra that defines whether to ignore the launch animation static final String INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION = "com.android.launcher3.intent.extra.shortcut.INGORE_LAUNCH_ANIMATION"; @@ -2895,7 +2903,7 @@ public class Launcher extends BaseActivity } // Change the state *after* we've called all the transition code - mState = State.WORKSPACE; + setState(State.WORKSPACE); if (changed) { // Send an accessibility event to announce the context change @@ -2932,12 +2940,30 @@ public class Launcher extends BaseActivity mWorkspace.setVisibility(View.VISIBLE); mStateTransitionAnimation.startAnimationToWorkspace(mState, mWorkspace.getState(), Workspace.State.OVERVIEW, animated, postAnimRunnable); - mState = State.WORKSPACE; + setState(State.WORKSPACE); + // If animated from long press, then don't allow any of the controller in the drag // layer to intercept any remaining touch. mWorkspace.requestDisallowInterceptTouchEvent(animated); } + private void setState(State state) { + this.mState = state; + updateSoftInputMode(); + } + + private void updateSoftInputMode() { + if (FeatureFlags.LAUNCHER3_UPDATE_SOFT_INPUT_MODE) { + final int mode; + if (isAppsViewVisible()) { + mode = SOFT_INPUT_MODE_ALL_APPS; + } else { + mode = SOFT_INPUT_MODE_DEFAULT; + } + getWindow().setSoftInputMode(mode); + } + } + /** * Shows the apps view. */ @@ -2999,7 +3025,7 @@ public class Launcher extends BaseActivity } // Change the state *after* we've called all the transition code - mState = toState; + setState(toState); AbstractFloatingView.closeAllOpenViews(this); // Send an accessibility event to announce the context change @@ -3029,7 +3055,7 @@ public class Launcher extends BaseActivity mStateTransitionAnimation.startAnimationToWorkspace(mState, mWorkspace.getState(), Workspace.State.SPRING_LOADED, true /* animated */, null /* onCompleteRunnable */); - mState = State.WORKSPACE_SPRING_LOADED; + setState(State.WORKSPACE_SPRING_LOADED); } public void exitSpringLoadedDragModeDelayed(final boolean successfulDrop, int delay, diff --git a/src_config/com/android/launcher3/config/FeatureFlags.java b/src_config/com/android/launcher3/config/FeatureFlags.java index ab2e7180f..358a67841 100644 --- a/src_config/com/android/launcher3/config/FeatureFlags.java +++ b/src_config/com/android/launcher3/config/FeatureFlags.java @@ -29,6 +29,11 @@ public final class FeatureFlags { public static boolean LAUNCHER3_DISABLE_PINCH_TO_OVERVIEW = false; public static boolean LAUNCHER3_ALL_APPS_PULL_UP = true; public static boolean LAUNCHER3_NEW_FOLDER_ANIMATION = false; + // When enabled allows to use any point on the fast scrollbar to start dragging. + public static boolean LAUNCHER3_DIRECT_SCROLL = true; + // When enabled while all-apps open, the soft input will be set to adjust resize . + public static boolean LAUNCHER3_UPDATE_SOFT_INPUT_MODE = false; + // Feature flag to enable moving the QSB on the 0th screen of the workspace. public static final boolean QSB_ON_FIRST_SCREEN = true; @@ -38,8 +43,6 @@ public final class FeatureFlags { public static final boolean PULLDOWN_SEARCH = false; // When enabled the status bar may show dark icons based on the top of the wallpaper. public static final boolean LIGHT_STATUS_BAR = false; - // When enabled allows to use any point on the fast scrollbar to start dragging. - public static final boolean LAUNCHER3_DIRECT_SCROLL = true; // When enabled icons are badged with the number of notifications associated with that app. public static final boolean BADGE_ICONS = true; // When enabled, icons not supporting {@link MaskableIconDrawable} will be wrapped in this class. |