Loading quickstep/res/drawable/taskbar_overflow_icon.xml 0 → 100644 +25 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="48dp" android:height="48dp" android:viewportHeight="960" android:viewportWidth="960"> <path android:fillColor="@color/taskbar_divider_background" android:pathData="M80,605v-250q0,-28.88 20.59,-49.44t49.5,-20.56q28.91,0 49.41,20.56Q220,326.12 220,355v250q0,28.87 -20.59,49.44Q178.82,675 149.91,675t-49.41,-20.56Q80,633.87 80,605ZM340,760q-24,0 -42,-18t-18,-42v-440q0,-24 18,-42t42,-18h280q24,0 42,18t18,42v440q0,24 -18,42t-42,18L340,760ZM740,605v-250q0,-28.88 20.59,-49.44t49.5,-20.56q28.91,0 49.41,20.56Q880,326.12 880,355v250q0,28.87 -20.59,49.44Q838.82,675 809.91,675t-49.41,-20.56Q740,633.87 740,605ZM340,700h280v-440L340,260v440ZM480,480Z"/> </vector> quickstep/res/layout/taskbar_overflow_button.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <!-- Note: The actual size will match the taskbar icon sizes in TaskbarView#onLayout(). --> <com.android.launcher3.views.IconButtonView xmlns:android="http://schemas.android.com/apk/res/android" style="@style/BaseIcon.Workspace.Taskbar" android:layout_width="@dimen/taskbar_icon_min_touch_size" android:layout_height="@dimen/taskbar_icon_min_touch_size" android:backgroundTint="@android:color/transparent" android:contentDescription="@string/taskbar_overflow_a11y_title" /> quickstep/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,8 @@ <string name="change_navigation_mode">Change navigation mode</string> <!-- Accessibility title for the Taskbar vertical divider icon. [CHAR_LIMIT=NONE] --> <string name="taskbar_divider_a11y_title">Taskbar Divider</string> <!-- Accessibility title for the Taskbar Overflow icon. [CHAR_LIMIT=NONE] --> <string name="taskbar_overflow_a11y_title">Taskbar Overflow</string> <!-- Label for moving drop target to the top or left side of the screen, depending on orientation (from the Taskbar only). --> Loading quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchView.java +6 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,12 @@ import java.util.List; import java.util.Locale; /** * View that allows quick switching between recent tasks through keyboard alt-tab and alt-shift-tab * commands. * View that allows quick switching between recent tasks. * * Can be access via: * - keyboard alt-tab * - alt-shift-tab * - taskbar overflow button */ public class KeyboardQuickSwitchView extends ConstraintLayout { Loading quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +5 −5 Original line number Diff line number Diff line Loading @@ -128,7 +128,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override protected void onDestroy() { onLauncherVisibilityChanged(false); onLauncherVisibilityChanged(false /* isVisible */, true /* fromInitOrDestroy */); super.onDestroy(); mTaskbarLauncherStateController.onDestroy(); Loading Loading @@ -218,10 +218,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController { onLauncherVisibilityChanged(isVisible, false /* fromInit */); } private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInit) { private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInitOrDestroy) { onLauncherVisibilityChanged( isVisible, fromInit, fromInitOrDestroy, /* startAnimation= */ true, DisplayController.isTransientTaskbar(mLauncher) ? TRANSIENT_TASKBAR_TRANSITION_DURATION Loading @@ -232,7 +232,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Nullable private Animator onLauncherVisibilityChanged( boolean isVisible, boolean fromInit, boolean startAnimation, int duration) { boolean isVisible, boolean fromInitOrDestroy, boolean startAnimation, int duration) { // Launcher is resumed during the swipe-to-overview gesture under shell-transitions, so // avoid updating taskbar state in that situation (when it's non-interactive -- or // "background") to avoid premature animations. Loading @@ -250,7 +250,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { } mTaskbarLauncherStateController.updateStateForFlag(FLAG_VISIBLE, isVisible); if (fromInit || mControllers == null) { if (fromInitOrDestroy) { duration = 0; } return mTaskbarLauncherStateController.applyState(duration, startAnimation); Loading Loading
quickstep/res/drawable/taskbar_overflow_icon.xml 0 → 100644 +25 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="48dp" android:height="48dp" android:viewportHeight="960" android:viewportWidth="960"> <path android:fillColor="@color/taskbar_divider_background" android:pathData="M80,605v-250q0,-28.88 20.59,-49.44t49.5,-20.56q28.91,0 49.41,20.56Q220,326.12 220,355v250q0,28.87 -20.59,49.44Q178.82,675 149.91,675t-49.41,-20.56Q80,633.87 80,605ZM340,760q-24,0 -42,-18t-18,-42v-440q0,-24 18,-42t42,-18h280q24,0 42,18t18,42v440q0,24 -18,42t-42,18L340,760ZM740,605v-250q0,-28.88 20.59,-49.44t49.5,-20.56q28.91,0 49.41,20.56Q880,326.12 880,355v250q0,28.87 -20.59,49.44Q838.82,675 809.91,675t-49.41,-20.56Q740,633.87 740,605ZM340,700h280v-440L340,260v440ZM480,480Z"/> </vector>
quickstep/res/layout/taskbar_overflow_button.xml 0 → 100644 +23 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <!-- Note: The actual size will match the taskbar icon sizes in TaskbarView#onLayout(). --> <com.android.launcher3.views.IconButtonView xmlns:android="http://schemas.android.com/apk/res/android" style="@style/BaseIcon.Workspace.Taskbar" android:layout_width="@dimen/taskbar_icon_min_touch_size" android:layout_height="@dimen/taskbar_icon_min_touch_size" android:backgroundTint="@android:color/transparent" android:contentDescription="@string/taskbar_overflow_a11y_title" />
quickstep/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,8 @@ <string name="change_navigation_mode">Change navigation mode</string> <!-- Accessibility title for the Taskbar vertical divider icon. [CHAR_LIMIT=NONE] --> <string name="taskbar_divider_a11y_title">Taskbar Divider</string> <!-- Accessibility title for the Taskbar Overflow icon. [CHAR_LIMIT=NONE] --> <string name="taskbar_overflow_a11y_title">Taskbar Overflow</string> <!-- Label for moving drop target to the top or left side of the screen, depending on orientation (from the Taskbar only). --> Loading
quickstep/src/com/android/launcher3/taskbar/KeyboardQuickSwitchView.java +6 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,12 @@ import java.util.List; import java.util.Locale; /** * View that allows quick switching between recent tasks through keyboard alt-tab and alt-shift-tab * commands. * View that allows quick switching between recent tasks. * * Can be access via: * - keyboard alt-tab * - alt-shift-tab * - taskbar overflow button */ public class KeyboardQuickSwitchView extends ConstraintLayout { Loading
quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +5 −5 Original line number Diff line number Diff line Loading @@ -128,7 +128,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override protected void onDestroy() { onLauncherVisibilityChanged(false); onLauncherVisibilityChanged(false /* isVisible */, true /* fromInitOrDestroy */); super.onDestroy(); mTaskbarLauncherStateController.onDestroy(); Loading Loading @@ -218,10 +218,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController { onLauncherVisibilityChanged(isVisible, false /* fromInit */); } private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInit) { private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInitOrDestroy) { onLauncherVisibilityChanged( isVisible, fromInit, fromInitOrDestroy, /* startAnimation= */ true, DisplayController.isTransientTaskbar(mLauncher) ? TRANSIENT_TASKBAR_TRANSITION_DURATION Loading @@ -232,7 +232,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Nullable private Animator onLauncherVisibilityChanged( boolean isVisible, boolean fromInit, boolean startAnimation, int duration) { boolean isVisible, boolean fromInitOrDestroy, boolean startAnimation, int duration) { // Launcher is resumed during the swipe-to-overview gesture under shell-transitions, so // avoid updating taskbar state in that situation (when it's non-interactive -- or // "background") to avoid premature animations. Loading @@ -250,7 +250,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { } mTaskbarLauncherStateController.updateStateForFlag(FLAG_VISIBLE, isVisible); if (fromInit || mControllers == null) { if (fromInitOrDestroy) { duration = 0; } return mTaskbarLauncherStateController.applyState(duration, startAnimation); Loading