diff --git a/quickstep/res/drawable/ic_sysbar_notifications.xml b/quickstep/res/drawable/ic_sysbar_notifications.xml new file mode 100644 index 0000000000..21fcf90536 --- /dev/null +++ b/quickstep/res/drawable/ic_sysbar_notifications.xml @@ -0,0 +1,10 @@ + + + diff --git a/quickstep/res/drawable/ic_sysbar_quick_settings.xml b/quickstep/res/drawable/ic_sysbar_quick_settings.xml new file mode 100644 index 0000000000..958284d4c4 --- /dev/null +++ b/quickstep/res/drawable/ic_sysbar_quick_settings.xml @@ -0,0 +1,13 @@ + + + + diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 758a74cd8e..fe892c3208 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -15,11 +15,15 @@ */ package com.android.launcher3.taskbar; +import static android.content.pm.PackageManager.FEATURE_PC; + import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_A11Y; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_BACK; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_HOME; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_IME_SWITCH; +import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_NOTIFICATIONS; +import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_QUICK_SETTINGS; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_RECENTS; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_KEYGUARD; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE; @@ -246,6 +250,17 @@ public class NavbarButtonsViewController { applyState(); mPropertyHolders.forEach(StatePropertyHolder::endAnimation); + + // quick setting and notification buttons + if (mContext.getPackageManager().hasSystemFeature(FEATURE_PC)) { + addButton(R.drawable.ic_sysbar_quick_settings, BUTTON_QUICK_SETTINGS, + mNavButtonContainer, mControllers.navButtonController, + R.id.quick_settings_button); + addButton(R.drawable.ic_sysbar_notifications, BUTTON_NOTIFICATIONS, + mNavButtonContainer, mControllers.navButtonController, + R.id.notifications_button); + } + } private void initButtons(ViewGroup navContainer, ViewGroup endContainer, diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 54893ae764..a6019849dd 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -16,7 +16,6 @@ package com.android.launcher3.taskbar; - import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS; import static com.android.internal.app.AssistUtils.INVOCATION_TYPE_KEY; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; @@ -58,6 +57,8 @@ public class TaskbarNavButtonController { BUTTON_RECENTS, BUTTON_IME_SWITCH, BUTTON_A11Y, + BUTTON_QUICK_SETTINGS, + BUTTON_NOTIFICATIONS, }) public @interface TaskbarButton {} @@ -67,6 +68,8 @@ public class TaskbarNavButtonController { static final int BUTTON_RECENTS = BUTTON_HOME << 1; static final int BUTTON_IME_SWITCH = BUTTON_RECENTS << 1; static final int BUTTON_A11Y = BUTTON_IME_SWITCH << 1; + static final int BUTTON_QUICK_SETTINGS = BUTTON_A11Y << 1; + static final int BUTTON_NOTIFICATIONS = BUTTON_QUICK_SETTINGS << 1; private static final int SCREEN_UNPIN_COMBO = BUTTON_BACK | BUTTON_RECENTS; private int mLongPressedButtons = 0; @@ -101,6 +104,12 @@ public class TaskbarNavButtonController { case BUTTON_A11Y: notifyA11yClick(false /* longClick */); break; + case BUTTON_QUICK_SETTINGS: + showQuickSettings(); + break; + case BUTTON_NOTIFICATIONS: + showNotifications(); + break; } } @@ -221,4 +230,12 @@ public class TaskbarNavButtonController { args.putInt(INVOCATION_TYPE_KEY, INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS); mSystemUiProxy.startAssistant(args); } + + private void showQuickSettings() { + mSystemUiProxy.toggleNotificationPanel(); + } + + private void showNotifications() { + mSystemUiProxy.toggleNotificationPanel(); + } } diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index 67e7f88c33..b428b67aa0 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -478,6 +478,17 @@ public class SystemUiProxy implements ISystemUiProxy, } } + @Override + public void toggleNotificationPanel() { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.toggleNotificationPanel(); + } catch (RemoteException e) { + Log.w(TAG, "Failed call toggleNotificationPanel", e); + } + } + } + // // Pip // diff --git a/res/values/id.xml b/res/values/id.xml index 508caffd48..7ad1412357 100644 --- a/res/values/id.xml +++ b/res/values/id.xml @@ -34,4 +34,7 @@ + + +