Loading Android.mk +3 −3 Original line number Diff line number Diff line Loading @@ -200,7 +200,7 @@ LOCAL_RESOURCE_DIR := \ $(LOCAL_PATH)/quickstep/recents_ui_overrides/res LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading Loading @@ -247,7 +247,7 @@ LOCAL_REQUIRED_MODULES := privapp_whitelist_com.android.launcher3 LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/go/AndroidManifest.xml \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading Loading @@ -293,7 +293,7 @@ LOCAL_REQUIRED_MODULES := privapp_whitelist_com.android.launcher3 LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/go/AndroidManifest.xml \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java→go/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +46 −0 Original line number Diff line number Diff line /* /** * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -13,79 +13,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.uioverrides; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.Utilities; import com.android.launcher3.graphics.RotationMode; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.uioverrides.touchcontrollers.LandscapeEdgeSwipeController; import com.android.launcher3.uioverrides.touchcontrollers.LandscapeStatesTouchController; import com.android.launcher3.uioverrides.touchcontrollers.PortraitStatesTouchController; import com.android.launcher3.uioverrides.touchcontrollers.StatusBarTouchController; import com.android.launcher3.util.TouchController; import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.views.IconRecentsView; import java.util.ArrayList; /** * Provides recents-related {@link UiFactory} logic and classes. */ public abstract class RecentsUiFactory { public class QuickstepLauncher extends BaseQuickstepLauncher { public static final boolean GO_LOW_RAM_RECENTS_ENABLED = true; public static TouchController[] createTouchControllers(Launcher launcher) { @Override public TouchController[] createTouchControllers() { ArrayList<TouchController> list = new ArrayList<>(); list.add(launcher.getDragController()); list.add(getDragController()); if (launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new LandscapeStatesTouchController(launcher)); list.add(new LandscapeEdgeSwipeController(launcher)); if (getDeviceProfile().isVerticalBarLayout()) { list.add(new LandscapeStatesTouchController(this)); list.add(new LandscapeEdgeSwipeController(this)); } else { boolean allowDragToOverview = SysUINavigationMode.INSTANCE.get(launcher) boolean allowDragToOverview = SysUINavigationMode.INSTANCE.get(this) .getMode().hasGestures; list.add(new PortraitStatesTouchController(launcher, allowDragToOverview)); } if (Utilities.IS_DEBUG_DEVICE && !launcher.getDeviceProfile().isMultiWindowMode && !launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new StatusBarTouchController(launcher)); list.add(new PortraitStatesTouchController(this, allowDragToOverview)); } return list.toArray(new TouchController[list.size()]); } /** * Creates and returns the controller responsible for recents view state transitions. * * @param launcher the launcher activity * @return state handler for recents */ public static StateHandler createRecentsViewStateController(Launcher launcher) { return new RecentsViewStateController(launcher); } /** * Clean-up logic that occurs when recents is no longer in use/visible. * * @param launcher the launcher activity */ public static void resetOverview(Launcher launcher) { IconRecentsView recentsView = launcher.getOverviewPanel(); recentsView.setTransitionedFromApp(false); } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. * * @param launcher the launcher activity */ public static void onLauncherStateOrResumeChanged(Launcher launcher) {} public static RotationMode getRotationMode(DeviceProfile dp) { return RotationMode.NORMAL; } } quickstep/AndroidManifest-launcher.xml 0 → 100644 +70 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2019, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.launcher3"> <uses-sdk android:targetSdkVersion="29" android:minSdkVersion="25"/> <!-- Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml. Refer comments around specific entries on how to extend individual components. --> <application android:backupAgent="com.android.launcher3.LauncherBackupAgent" android:fullBackupOnly="true" android:fullBackupContent="@xml/backupscheme" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher_home" android:label="@string/derived_app_name" android:theme="@style/AppTheme" android:largeHeap="@bool/config_largeHeap" android:restoreAnyVersion="true" android:supportsRtl="true" > <!-- Main launcher activity. When extending only change the name, and keep all the attributes and intent filters the same --> <activity android:name="com.android.launcher3.uioverrides.QuickstepLauncher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:windowSoftInputMode="adjustPan" android:screenOrientation="unspecified" android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize" android:resizeableActivity="true" android:resumeWhilePausing="true" android:taskAffinity="" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> <category android:name="android.intent.category.LAUNCHER_APP" /> </intent-filter> <meta-data android:name="com.android.launcher3.grid.control" android:value="${packageName}.grid_control" /> </activity> </application> </manifest> quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java→quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +56 −55 Original line number Diff line number Diff line /* /** * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.uioverrides; import static com.android.launcher3.LauncherState.NORMAL; Loading @@ -21,13 +20,14 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import android.content.Context; import android.content.res.Configuration; import android.graphics.Rect; import android.view.Gravity; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.graphics.RotationMode; import com.android.launcher3.uioverrides.touchcontrollers.FlingAndHoldTouchController; Loading @@ -49,21 +49,15 @@ import com.android.quickstep.views.RecentsView; import java.util.ArrayList; /** * Provides recents-related {@link UiFactory} logic and classes. */ public abstract class RecentsUiFactory { private static final String TAG = RecentsUiFactory.class.getSimpleName(); public class QuickstepLauncher extends BaseQuickstepLauncher { public static final boolean GO_LOW_RAM_RECENTS_ENABLED = false; /** * Reusable command for applying the shelf height on the background thread. */ public static final AsyncCommand SET_SHELF_HEIGHT = (context, arg1, arg2) -> { public static final AsyncCommand SET_SHELF_HEIGHT = (context, arg1, arg2) -> SystemUiProxy.INSTANCE.get(context).setShelfHeight(arg1 != 0, arg2); }; public static RotationMode ROTATION_LANDSCAPE = new RotationMode(-90) { @Override Loading Loading @@ -138,71 +132,78 @@ public abstract class RecentsUiFactory { } }; public static RotationMode getRotationMode(DeviceProfile dp) { @Override protected RotationMode getFakeRotationMode(DeviceProfile dp) { return !dp.isVerticalBarLayout() ? RotationMode.NORMAL : (dp.isSeascape() ? ROTATION_SEASCAPE : ROTATION_LANDSCAPE); } public static TouchController[] createTouchControllers(Launcher launcher) { Mode mode = SysUINavigationMode.getMode(launcher); @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); onStateOrResumeChanged(); } @Override protected void onActivityFlagsChanged(int changeBits) { super.onActivityFlagsChanged(changeBits); if ((changeBits & (ACTIVITY_STATE_DEFERRED_RESUMED | ACTIVITY_STATE_STARTED | ACTIVITY_STATE_USER_ACTIVE | ACTIVITY_STATE_TRANSITION_ACTIVE)) != 0 && (getActivityFlags() & ACTIVITY_STATE_TRANSITION_ACTIVE) == 0) { onStateOrResumeChanged(); } } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. */ private void onStateOrResumeChanged() { LauncherState state = getStateManager().getState(); DeviceProfile profile = getDeviceProfile(); boolean visible = (state == NORMAL || state == OVERVIEW) && isUserActive() && !profile.isVerticalBarLayout(); UiThreadHelper.runAsyncCommand(this, SET_SHELF_HEIGHT, visible ? 1 : 0, profile.hotseatBarSizePx); if (state == NORMAL) { ((RecentsView) getOverviewPanel()).setSwipeDownShouldLaunchApp(false); } } @Override public TouchController[] createTouchControllers() { Mode mode = SysUINavigationMode.getMode(this); ArrayList<TouchController> list = new ArrayList<>(); list.add(launcher.getDragController()); list.add(getDragController()); if (mode == NO_BUTTON) { list.add(new QuickSwitchTouchController(launcher)); list.add(new NavBarToHomeTouchController(launcher)); list.add(new FlingAndHoldTouchController(launcher)); list.add(new QuickSwitchTouchController(this)); list.add(new NavBarToHomeTouchController(this)); list.add(new FlingAndHoldTouchController(this)); } else { if (launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new OverviewToAllAppsTouchController(launcher)); list.add(new LandscapeEdgeSwipeController(launcher)); if (getDeviceProfile().isVerticalBarLayout()) { list.add(new OverviewToAllAppsTouchController(this)); list.add(new LandscapeEdgeSwipeController(this)); if (mode.hasGestures) { list.add(new TransposedQuickSwitchTouchController(launcher)); list.add(new TransposedQuickSwitchTouchController(this)); } } else { list.add(new PortraitStatesTouchController(launcher, list.add(new PortraitStatesTouchController(this, mode.hasGestures /* allowDragToOverview */)); if (mode.hasGestures) { list.add(new QuickSwitchTouchController(launcher)); list.add(new QuickSwitchTouchController(this)); } } } if (!launcher.getDeviceProfile().isMultiWindowMode) { list.add(new StatusBarTouchController(launcher)); if (!getDeviceProfile().isMultiWindowMode) { list.add(new StatusBarTouchController(this)); } list.add(new LauncherTaskViewController(launcher)); list.add(new LauncherTaskViewController(this)); return list.toArray(new TouchController[list.size()]); } /** * Creates and returns the controller responsible for recents view state transitions. * * @param launcher the launcher activity * @return state handler for recents */ public static StateHandler createRecentsViewStateController(Launcher launcher) { return new RecentsViewStateController(launcher); } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. * * @param launcher the launcher activity */ public static void onLauncherStateOrResumeChanged(Launcher launcher) { LauncherState state = launcher.getStateManager().getState(); DeviceProfile profile = launcher.getDeviceProfile(); boolean visible = (state == NORMAL || state == OVERVIEW) && launcher.isUserActive() && !profile.isVerticalBarLayout(); UiThreadHelper.runAsyncCommand(launcher, SET_SHELF_HEIGHT, visible ? 1 : 0, profile.hotseatBarSizePx); if (state == NORMAL) { launcher.<RecentsView>getOverviewPanel().setSwipeDownShouldLaunchApp(false); } } private static final class LauncherTaskViewController extends TaskViewTouchController<Launcher> { Loading quickstep/recents_ui_overrides/src/com/android/quickstep/util/NavBarPosition.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,8 +15,8 @@ */ package com.android.quickstep.util; import static com.android.launcher3.uioverrides.RecentsUiFactory.ROTATION_LANDSCAPE; import static com.android.launcher3.uioverrides.RecentsUiFactory.ROTATION_SEASCAPE; import static com.android.launcher3.uioverrides.QuickstepLauncher.ROTATION_LANDSCAPE; import static com.android.launcher3.uioverrides.QuickstepLauncher.ROTATION_SEASCAPE; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import android.content.Context; Loading Loading
Android.mk +3 −3 Original line number Diff line number Diff line Loading @@ -200,7 +200,7 @@ LOCAL_RESOURCE_DIR := \ $(LOCAL_PATH)/quickstep/recents_ui_overrides/res LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading Loading @@ -247,7 +247,7 @@ LOCAL_REQUIRED_MODULES := privapp_whitelist_com.android.launcher3 LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/go/AndroidManifest.xml \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading Loading @@ -293,7 +293,7 @@ LOCAL_REQUIRED_MODULES := privapp_whitelist_com.android.launcher3 LOCAL_FULL_LIBS_MANIFEST_FILES := \ $(LOCAL_PATH)/go/AndroidManifest.xml \ $(LOCAL_PATH)/AndroidManifest.xml \ $(LOCAL_PATH)/quickstep/AndroidManifest-launcher.xml \ $(LOCAL_PATH)/AndroidManifest-common.xml LOCAL_MANIFEST_FILE := quickstep/AndroidManifest.xml Loading
go/quickstep/src/com/android/launcher3/uioverrides/RecentsUiFactory.java→go/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +46 −0 Original line number Diff line number Diff line /* /** * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -13,79 +13,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.uioverrides; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.Utilities; import com.android.launcher3.graphics.RotationMode; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.uioverrides.touchcontrollers.LandscapeEdgeSwipeController; import com.android.launcher3.uioverrides.touchcontrollers.LandscapeStatesTouchController; import com.android.launcher3.uioverrides.touchcontrollers.PortraitStatesTouchController; import com.android.launcher3.uioverrides.touchcontrollers.StatusBarTouchController; import com.android.launcher3.util.TouchController; import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.views.IconRecentsView; import java.util.ArrayList; /** * Provides recents-related {@link UiFactory} logic and classes. */ public abstract class RecentsUiFactory { public class QuickstepLauncher extends BaseQuickstepLauncher { public static final boolean GO_LOW_RAM_RECENTS_ENABLED = true; public static TouchController[] createTouchControllers(Launcher launcher) { @Override public TouchController[] createTouchControllers() { ArrayList<TouchController> list = new ArrayList<>(); list.add(launcher.getDragController()); list.add(getDragController()); if (launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new LandscapeStatesTouchController(launcher)); list.add(new LandscapeEdgeSwipeController(launcher)); if (getDeviceProfile().isVerticalBarLayout()) { list.add(new LandscapeStatesTouchController(this)); list.add(new LandscapeEdgeSwipeController(this)); } else { boolean allowDragToOverview = SysUINavigationMode.INSTANCE.get(launcher) boolean allowDragToOverview = SysUINavigationMode.INSTANCE.get(this) .getMode().hasGestures; list.add(new PortraitStatesTouchController(launcher, allowDragToOverview)); } if (Utilities.IS_DEBUG_DEVICE && !launcher.getDeviceProfile().isMultiWindowMode && !launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new StatusBarTouchController(launcher)); list.add(new PortraitStatesTouchController(this, allowDragToOverview)); } return list.toArray(new TouchController[list.size()]); } /** * Creates and returns the controller responsible for recents view state transitions. * * @param launcher the launcher activity * @return state handler for recents */ public static StateHandler createRecentsViewStateController(Launcher launcher) { return new RecentsViewStateController(launcher); } /** * Clean-up logic that occurs when recents is no longer in use/visible. * * @param launcher the launcher activity */ public static void resetOverview(Launcher launcher) { IconRecentsView recentsView = launcher.getOverviewPanel(); recentsView.setTransitionedFromApp(false); } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. * * @param launcher the launcher activity */ public static void onLauncherStateOrResumeChanged(Launcher launcher) {} public static RotationMode getRotationMode(DeviceProfile dp) { return RotationMode.NORMAL; } }
quickstep/AndroidManifest-launcher.xml 0 → 100644 +70 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2019, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.launcher3"> <uses-sdk android:targetSdkVersion="29" android:minSdkVersion="25"/> <!-- Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml. Refer comments around specific entries on how to extend individual components. --> <application android:backupAgent="com.android.launcher3.LauncherBackupAgent" android:fullBackupOnly="true" android:fullBackupContent="@xml/backupscheme" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher_home" android:label="@string/derived_app_name" android:theme="@style/AppTheme" android:largeHeap="@bool/config_largeHeap" android:restoreAnyVersion="true" android:supportsRtl="true" > <!-- Main launcher activity. When extending only change the name, and keep all the attributes and intent filters the same --> <activity android:name="com.android.launcher3.uioverrides.QuickstepLauncher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:windowSoftInputMode="adjustPan" android:screenOrientation="unspecified" android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize" android:resizeableActivity="true" android:resumeWhilePausing="true" android:taskAffinity="" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> <category android:name="android.intent.category.LAUNCHER_APP" /> </intent-filter> <meta-data android:name="com.android.launcher3.grid.control" android:value="${packageName}.grid_control" /> </activity> </application> </manifest>
quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java→quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +56 −55 Original line number Diff line number Diff line /* /** * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); Loading @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.launcher3.uioverrides; import static com.android.launcher3.LauncherState.NORMAL; Loading @@ -21,13 +20,14 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import android.content.Context; import android.content.res.Configuration; import android.graphics.Rect; import android.view.Gravity; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.graphics.RotationMode; import com.android.launcher3.uioverrides.touchcontrollers.FlingAndHoldTouchController; Loading @@ -49,21 +49,15 @@ import com.android.quickstep.views.RecentsView; import java.util.ArrayList; /** * Provides recents-related {@link UiFactory} logic and classes. */ public abstract class RecentsUiFactory { private static final String TAG = RecentsUiFactory.class.getSimpleName(); public class QuickstepLauncher extends BaseQuickstepLauncher { public static final boolean GO_LOW_RAM_RECENTS_ENABLED = false; /** * Reusable command for applying the shelf height on the background thread. */ public static final AsyncCommand SET_SHELF_HEIGHT = (context, arg1, arg2) -> { public static final AsyncCommand SET_SHELF_HEIGHT = (context, arg1, arg2) -> SystemUiProxy.INSTANCE.get(context).setShelfHeight(arg1 != 0, arg2); }; public static RotationMode ROTATION_LANDSCAPE = new RotationMode(-90) { @Override Loading Loading @@ -138,71 +132,78 @@ public abstract class RecentsUiFactory { } }; public static RotationMode getRotationMode(DeviceProfile dp) { @Override protected RotationMode getFakeRotationMode(DeviceProfile dp) { return !dp.isVerticalBarLayout() ? RotationMode.NORMAL : (dp.isSeascape() ? ROTATION_SEASCAPE : ROTATION_LANDSCAPE); } public static TouchController[] createTouchControllers(Launcher launcher) { Mode mode = SysUINavigationMode.getMode(launcher); @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); onStateOrResumeChanged(); } @Override protected void onActivityFlagsChanged(int changeBits) { super.onActivityFlagsChanged(changeBits); if ((changeBits & (ACTIVITY_STATE_DEFERRED_RESUMED | ACTIVITY_STATE_STARTED | ACTIVITY_STATE_USER_ACTIVE | ACTIVITY_STATE_TRANSITION_ACTIVE)) != 0 && (getActivityFlags() & ACTIVITY_STATE_TRANSITION_ACTIVE) == 0) { onStateOrResumeChanged(); } } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. */ private void onStateOrResumeChanged() { LauncherState state = getStateManager().getState(); DeviceProfile profile = getDeviceProfile(); boolean visible = (state == NORMAL || state == OVERVIEW) && isUserActive() && !profile.isVerticalBarLayout(); UiThreadHelper.runAsyncCommand(this, SET_SHELF_HEIGHT, visible ? 1 : 0, profile.hotseatBarSizePx); if (state == NORMAL) { ((RecentsView) getOverviewPanel()).setSwipeDownShouldLaunchApp(false); } } @Override public TouchController[] createTouchControllers() { Mode mode = SysUINavigationMode.getMode(this); ArrayList<TouchController> list = new ArrayList<>(); list.add(launcher.getDragController()); list.add(getDragController()); if (mode == NO_BUTTON) { list.add(new QuickSwitchTouchController(launcher)); list.add(new NavBarToHomeTouchController(launcher)); list.add(new FlingAndHoldTouchController(launcher)); list.add(new QuickSwitchTouchController(this)); list.add(new NavBarToHomeTouchController(this)); list.add(new FlingAndHoldTouchController(this)); } else { if (launcher.getDeviceProfile().isVerticalBarLayout()) { list.add(new OverviewToAllAppsTouchController(launcher)); list.add(new LandscapeEdgeSwipeController(launcher)); if (getDeviceProfile().isVerticalBarLayout()) { list.add(new OverviewToAllAppsTouchController(this)); list.add(new LandscapeEdgeSwipeController(this)); if (mode.hasGestures) { list.add(new TransposedQuickSwitchTouchController(launcher)); list.add(new TransposedQuickSwitchTouchController(this)); } } else { list.add(new PortraitStatesTouchController(launcher, list.add(new PortraitStatesTouchController(this, mode.hasGestures /* allowDragToOverview */)); if (mode.hasGestures) { list.add(new QuickSwitchTouchController(launcher)); list.add(new QuickSwitchTouchController(this)); } } } if (!launcher.getDeviceProfile().isMultiWindowMode) { list.add(new StatusBarTouchController(launcher)); if (!getDeviceProfile().isMultiWindowMode) { list.add(new StatusBarTouchController(this)); } list.add(new LauncherTaskViewController(launcher)); list.add(new LauncherTaskViewController(this)); return list.toArray(new TouchController[list.size()]); } /** * Creates and returns the controller responsible for recents view state transitions. * * @param launcher the launcher activity * @return state handler for recents */ public static StateHandler createRecentsViewStateController(Launcher launcher) { return new RecentsViewStateController(launcher); } /** * Recents logic that triggers when launcher state changes or launcher activity stops/resumes. * * @param launcher the launcher activity */ public static void onLauncherStateOrResumeChanged(Launcher launcher) { LauncherState state = launcher.getStateManager().getState(); DeviceProfile profile = launcher.getDeviceProfile(); boolean visible = (state == NORMAL || state == OVERVIEW) && launcher.isUserActive() && !profile.isVerticalBarLayout(); UiThreadHelper.runAsyncCommand(launcher, SET_SHELF_HEIGHT, visible ? 1 : 0, profile.hotseatBarSizePx); if (state == NORMAL) { launcher.<RecentsView>getOverviewPanel().setSwipeDownShouldLaunchApp(false); } } private static final class LauncherTaskViewController extends TaskViewTouchController<Launcher> { Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/util/NavBarPosition.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,8 +15,8 @@ */ package com.android.quickstep.util; import static com.android.launcher3.uioverrides.RecentsUiFactory.ROTATION_LANDSCAPE; import static com.android.launcher3.uioverrides.RecentsUiFactory.ROTATION_SEASCAPE; import static com.android.launcher3.uioverrides.QuickstepLauncher.ROTATION_LANDSCAPE; import static com.android.launcher3.uioverrides.QuickstepLauncher.ROTATION_SEASCAPE; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import android.content.Context; Loading