Loading quickstep/res/layout/taskbar.xml +22 −2 Original line number Diff line number Diff line Loading @@ -22,10 +22,30 @@ <com.android.launcher3.taskbar.TaskbarView android:id="@+id/taskbar_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:forceHasOverlappingRendering="false" android:layout_gravity="bottom" > <LinearLayout android:id="@+id/system_button_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="@dimen/taskbar_nav_buttons_spacing" android:paddingRight="@dimen/taskbar_nav_buttons_spacing" android:forceHasOverlappingRendering="false" android:gravity="center" /> <LinearLayout android:id="@+id/hotseat_icons_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:forceHasOverlappingRendering="false" android:gravity="center" /> </com.android.launcher3.taskbar.TaskbarView> <com.android.launcher3.taskbar.ImeBarView android:id="@+id/ime_bar_view" android:layout_width="wrap_content" Loading quickstep/res/layout/taskbar_view.xmldeleted 100644 → 0 +0 −26 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2021 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. --> <com.android.launcher3.taskbar.TaskbarView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/taskbar_view" android:layout_width="match_parent" android:layout_height="@dimen/taskbar_size" android:background="@android:color/transparent" android:layout_gravity="bottom" android:gravity="center" android:visibility="gone" /> quickstep/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -147,4 +147,5 @@ <!-- Note that this applies to both sides of all icons, so visible space is double this. --> <dimen name="taskbar_icon_spacing">8dp</dimen> <dimen name="taskbar_folder_margin">16dp</dimen> <dimen name="taskbar_nav_buttons_spacing">16dp</dimen> </resources> quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +23 −67 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_HIDE_BACK_BUTTON; import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.NO_OFFSET; import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; import static com.android.quickstep.util.NavigationModeFeatureFlag.LIVE_TILE; Loading @@ -30,7 +29,6 @@ import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.app.ActivityOptions; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentSender; import android.content.ServiceConnection; Loading @@ -51,13 +49,11 @@ import com.android.launcher3.proxy.StartActivityParams; import com.android.launcher3.statehandlers.BackButtonAlphaHandler; import com.android.launcher3.statehandlers.DepthController; import com.android.launcher3.statemanager.StateManager.StateHandler; import com.android.launcher3.taskbar.TaskbarActivityContext; import com.android.launcher3.taskbar.TaskbarController; import com.android.launcher3.taskbar.TaskbarManager; import com.android.launcher3.taskbar.TaskbarStateHandler; import com.android.launcher3.taskbar.TaskbarView; import com.android.launcher3.uioverrides.RecentsViewStateController; import com.android.launcher3.util.ActivityOptionsWrapper; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.ObjectWrapper; import com.android.launcher3.util.UiThreadHelper; import com.android.quickstep.RecentsModel; Loading @@ -67,6 +63,7 @@ import com.android.quickstep.SysUINavigationMode.NavigationModeChangeListener; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; import com.android.quickstep.TouchInteractionService; import com.android.quickstep.TouchInteractionService.TISBinder; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.RemoteFadeOutAnimationListener; import com.android.quickstep.util.SplitSelectStateController; Loading @@ -88,8 +85,6 @@ public abstract class BaseQuickstepLauncher extends Launcher private DepthController mDepthController = new DepthController(this); private QuickstepTransitionManager mAppTransitionManager; private ServiceConnection mTisBinderConnection; protected TouchInteractionService.TISBinder mTisBinder; /** * Reusable command for applying the back button alpha on the background thread. Loading @@ -100,8 +95,20 @@ public abstract class BaseQuickstepLauncher extends Launcher private OverviewActionsView mActionsView; private @Nullable TaskbarManager mTaskbarManager; private @Nullable TaskbarController mTaskbarController; private final ServiceConnection mTisBinderConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { mTaskbarManager = ((TISBinder) iBinder).getTaskbarManager(); mTaskbarManager.setLauncher(BaseQuickstepLauncher.this); } @Override public void onServiceDisconnected(ComponentName componentName) { } }; private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this); // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private SplitPlaceholderView mSplitPlaceholderView; Loading @@ -111,24 +118,6 @@ public abstract class BaseQuickstepLauncher extends Launcher super.onCreate(savedInstanceState); SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this); addMultiWindowModeChangedListener(mDepthController); setupTouchInteractionServiceBinder(); } private void setupTouchInteractionServiceBinder() { Intent intent = new Intent(this, TouchInteractionService.class); mTisBinderConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder binder) { mTisBinder = ((TouchInteractionService.TISBinder) binder); mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController); } @Override public void onServiceDisconnected(ComponentName componentName) { mTisBinder = null; } }; bindService(intent, mTisBinderConnection, 0); } @Override Loading @@ -136,15 +125,12 @@ public abstract class BaseQuickstepLauncher extends Launcher mAppTransitionManager.onActivityDestroyed(); SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this); if (mTaskbarController != null) { mTaskbarController.cleanup(); mTaskbarController = null; if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(null); unbindService(mTisBinderConnection); if (mTaskbarManager != null) { mTaskbarManager.setLauncher(null); } } super.onDestroy(); } Loading Loading @@ -271,37 +257,12 @@ public abstract class BaseQuickstepLauncher extends Launcher mAppTransitionManager = new QuickstepTransitionManager(this); mAppTransitionManager.registerRemoteAnimations(); addTaskbarIfNecessary(); addOnDeviceProfileChangeListener(newDp -> addTaskbarIfNecessary()); } bindService(new Intent(this, TouchInteractionService.class), mTisBinderConnection, 0); @Override public void onDisplayInfoChanged(Context context, DisplayController.Info info, int flags) { super.onDisplayInfoChanged(context, info, flags); if ((flags & CHANGE_ACTIVE_SCREEN) != 0) { addTaskbarIfNecessary(); } } private void addTaskbarIfNecessary() { if (mTaskbarController != null) { mTaskbarController.cleanup(); if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(null); } mTaskbarController = null; } if (mDeviceProfile.isTaskbarPresent) { TaskbarView taskbarViewOnHome = (TaskbarView) mHotseat.getTaskbarView(); TaskbarActivityContext taskbarActivityContext = new TaskbarActivityContext(this); mTaskbarController = new TaskbarController(this, taskbarActivityContext.getTaskbarContainerView(), taskbarViewOnHome); mTaskbarController.init(); if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController); } } public void setTaskbarController(TaskbarController taskbarController) { mTaskbarController = taskbarController; } public <T extends OverviewActionsView> T getActionsView() { Loading Loading @@ -340,14 +301,9 @@ public abstract class BaseQuickstepLauncher extends Launcher } @Override public boolean isViewInTaskbar(View v) { return mTaskbarController != null && mTaskbarController.isViewInTaskbar(v); } public boolean supportsAdaptiveIconAnimation(View clickedView) { return mAppTransitionManager.hasControlRemoteAppTransitionPermission() && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get() && !isViewInTaskbar(clickedView); && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get(); } @Override Loading quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +0 −3 Original line number Diff line number Diff line Loading @@ -1252,7 +1252,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final boolean launchingFromWidget = mV instanceof LauncherAppWidgetHostView; final boolean launchingFromRecents = isLaunchingFromRecents(mV, appTargets); final boolean launchingFromTaskbar = mLauncher.isViewInTaskbar(mV); if (launchingFromWidget) { composeWidgetLaunchAnimator(anim, (LauncherAppWidgetHostView) mV, appTargets, wallpaperTargets, nonAppTargets); Loading @@ -1263,8 +1262,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener launcherClosing); addCujInstrumentation( anim, InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_RECENTS); } else if (launchingFromTaskbar) { // TODO } else { composeIconLaunchAnimator(anim, mV, appTargets, wallpaperTargets, nonAppTargets, launcherClosing); Loading Loading
quickstep/res/layout/taskbar.xml +22 −2 Original line number Diff line number Diff line Loading @@ -22,10 +22,30 @@ <com.android.launcher3.taskbar.TaskbarView android:id="@+id/taskbar_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:forceHasOverlappingRendering="false" android:layout_gravity="bottom" > <LinearLayout android:id="@+id/system_button_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="@dimen/taskbar_nav_buttons_spacing" android:paddingRight="@dimen/taskbar_nav_buttons_spacing" android:forceHasOverlappingRendering="false" android:gravity="center" /> <LinearLayout android:id="@+id/hotseat_icons_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:forceHasOverlappingRendering="false" android:gravity="center" /> </com.android.launcher3.taskbar.TaskbarView> <com.android.launcher3.taskbar.ImeBarView android:id="@+id/ime_bar_view" android:layout_width="wrap_content" Loading
quickstep/res/layout/taskbar_view.xmldeleted 100644 → 0 +0 −26 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2021 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. --> <com.android.launcher3.taskbar.TaskbarView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/taskbar_view" android:layout_width="match_parent" android:layout_height="@dimen/taskbar_size" android:background="@android:color/transparent" android:layout_gravity="bottom" android:gravity="center" android:visibility="gone" />
quickstep/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -147,4 +147,5 @@ <!-- Note that this applies to both sides of all icons, so visible space is double this. --> <dimen name="taskbar_icon_spacing">8dp</dimen> <dimen name="taskbar_folder_margin">16dp</dimen> <dimen name="taskbar_nav_buttons_spacing">16dp</dimen> </resources>
quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +23 −67 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_HIDE_BACK_BUTTON; import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.NO_OFFSET; import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; import static com.android.quickstep.util.NavigationModeFeatureFlag.LIVE_TILE; Loading @@ -30,7 +29,6 @@ import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.app.ActivityOptions; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentSender; import android.content.ServiceConnection; Loading @@ -51,13 +49,11 @@ import com.android.launcher3.proxy.StartActivityParams; import com.android.launcher3.statehandlers.BackButtonAlphaHandler; import com.android.launcher3.statehandlers.DepthController; import com.android.launcher3.statemanager.StateManager.StateHandler; import com.android.launcher3.taskbar.TaskbarActivityContext; import com.android.launcher3.taskbar.TaskbarController; import com.android.launcher3.taskbar.TaskbarManager; import com.android.launcher3.taskbar.TaskbarStateHandler; import com.android.launcher3.taskbar.TaskbarView; import com.android.launcher3.uioverrides.RecentsViewStateController; import com.android.launcher3.util.ActivityOptionsWrapper; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.ObjectWrapper; import com.android.launcher3.util.UiThreadHelper; import com.android.quickstep.RecentsModel; Loading @@ -67,6 +63,7 @@ import com.android.quickstep.SysUINavigationMode.NavigationModeChangeListener; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; import com.android.quickstep.TouchInteractionService; import com.android.quickstep.TouchInteractionService.TISBinder; import com.android.quickstep.util.RemoteAnimationProvider; import com.android.quickstep.util.RemoteFadeOutAnimationListener; import com.android.quickstep.util.SplitSelectStateController; Loading @@ -88,8 +85,6 @@ public abstract class BaseQuickstepLauncher extends Launcher private DepthController mDepthController = new DepthController(this); private QuickstepTransitionManager mAppTransitionManager; private ServiceConnection mTisBinderConnection; protected TouchInteractionService.TISBinder mTisBinder; /** * Reusable command for applying the back button alpha on the background thread. Loading @@ -100,8 +95,20 @@ public abstract class BaseQuickstepLauncher extends Launcher private OverviewActionsView mActionsView; private @Nullable TaskbarManager mTaskbarManager; private @Nullable TaskbarController mTaskbarController; private final ServiceConnection mTisBinderConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { mTaskbarManager = ((TISBinder) iBinder).getTaskbarManager(); mTaskbarManager.setLauncher(BaseQuickstepLauncher.this); } @Override public void onServiceDisconnected(ComponentName componentName) { } }; private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this); // Will be updated when dragging from taskbar. private @Nullable DragOptions mNextWorkspaceDragOptions = null; private SplitPlaceholderView mSplitPlaceholderView; Loading @@ -111,24 +118,6 @@ public abstract class BaseQuickstepLauncher extends Launcher super.onCreate(savedInstanceState); SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this); addMultiWindowModeChangedListener(mDepthController); setupTouchInteractionServiceBinder(); } private void setupTouchInteractionServiceBinder() { Intent intent = new Intent(this, TouchInteractionService.class); mTisBinderConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder binder) { mTisBinder = ((TouchInteractionService.TISBinder) binder); mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController); } @Override public void onServiceDisconnected(ComponentName componentName) { mTisBinder = null; } }; bindService(intent, mTisBinderConnection, 0); } @Override Loading @@ -136,15 +125,12 @@ public abstract class BaseQuickstepLauncher extends Launcher mAppTransitionManager.onActivityDestroyed(); SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this); if (mTaskbarController != null) { mTaskbarController.cleanup(); mTaskbarController = null; if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(null); unbindService(mTisBinderConnection); if (mTaskbarManager != null) { mTaskbarManager.setLauncher(null); } } super.onDestroy(); } Loading Loading @@ -271,37 +257,12 @@ public abstract class BaseQuickstepLauncher extends Launcher mAppTransitionManager = new QuickstepTransitionManager(this); mAppTransitionManager.registerRemoteAnimations(); addTaskbarIfNecessary(); addOnDeviceProfileChangeListener(newDp -> addTaskbarIfNecessary()); } bindService(new Intent(this, TouchInteractionService.class), mTisBinderConnection, 0); @Override public void onDisplayInfoChanged(Context context, DisplayController.Info info, int flags) { super.onDisplayInfoChanged(context, info, flags); if ((flags & CHANGE_ACTIVE_SCREEN) != 0) { addTaskbarIfNecessary(); } } private void addTaskbarIfNecessary() { if (mTaskbarController != null) { mTaskbarController.cleanup(); if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(null); } mTaskbarController = null; } if (mDeviceProfile.isTaskbarPresent) { TaskbarView taskbarViewOnHome = (TaskbarView) mHotseat.getTaskbarView(); TaskbarActivityContext taskbarActivityContext = new TaskbarActivityContext(this); mTaskbarController = new TaskbarController(this, taskbarActivityContext.getTaskbarContainerView(), taskbarViewOnHome); mTaskbarController.init(); if (mTisBinder != null) { mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController); } } public void setTaskbarController(TaskbarController taskbarController) { mTaskbarController = taskbarController; } public <T extends OverviewActionsView> T getActionsView() { Loading Loading @@ -340,14 +301,9 @@ public abstract class BaseQuickstepLauncher extends Launcher } @Override public boolean isViewInTaskbar(View v) { return mTaskbarController != null && mTaskbarController.isViewInTaskbar(v); } public boolean supportsAdaptiveIconAnimation(View clickedView) { return mAppTransitionManager.hasControlRemoteAppTransitionPermission() && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get() && !isViewInTaskbar(clickedView); && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get(); } @Override Loading
quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +0 −3 Original line number Diff line number Diff line Loading @@ -1252,7 +1252,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final boolean launchingFromWidget = mV instanceof LauncherAppWidgetHostView; final boolean launchingFromRecents = isLaunchingFromRecents(mV, appTargets); final boolean launchingFromTaskbar = mLauncher.isViewInTaskbar(mV); if (launchingFromWidget) { composeWidgetLaunchAnimator(anim, (LauncherAppWidgetHostView) mV, appTargets, wallpaperTargets, nonAppTargets); Loading @@ -1263,8 +1262,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener launcherClosing); addCujInstrumentation( anim, InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_RECENTS); } else if (launchingFromTaskbar) { // TODO } else { composeIconLaunchAnimator(anim, mV, appTargets, wallpaperTargets, nonAppTargets, launcherClosing); Loading