diff --git a/packages/SystemUI/res/layout/qs_footer_impl.xml b/packages/SystemUI/res/layout/qs_footer_impl.xml
index 0822947e8b162..93dd1a12f147c 100644
--- a/packages/SystemUI/res/layout/qs_footer_impl.xml
+++ b/packages/SystemUI/res/layout/qs_footer_impl.xml
@@ -81,6 +81,22 @@
android:layout_height="match_parent"
android:layout_weight="@integer/qs_footer_actions_weight"
android:gravity="center_vertical|end" >
+
+
+
false
false
+
+ false
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java
index 16e519657a418..2bea72cc0c7e0 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java
@@ -16,6 +16,8 @@
package com.android.systemui.qs;
+import static com.android.systemui.qs.dagger.QSFlagsModule.PM_LITE_ENABLED;
+
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Intent;
@@ -41,6 +43,7 @@ import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.ViewController;
import javax.inject.Inject;
+import javax.inject.Named;
/**
* Controller for {@link QSFooterView}.
@@ -63,6 +66,8 @@ public class QSFooterViewController extends ViewController impleme
private final View mEdit;
private final MultiUserSwitch mMultiUserSwitch;
private final PageIndicator mPageIndicator;
+ private final View mPowerMenuLite;
+ private final boolean mShowPMLiteButton;
private final UserInfoController.OnUserInfoChangedListener mOnUserInfoChangedListener =
new UserInfoController.OnUserInfoChangedListener() {
@@ -123,7 +128,8 @@ public class QSFooterViewController extends ViewController impleme
DeviceProvisionedController deviceProvisionedController, UserTracker userTracker,
QSPanelController qsPanelController, QSDetailDisplayer qsDetailDisplayer,
QuickQSPanelController quickQSPanelController,
- TunerService tunerService, MetricsLogger metricsLogger) {
+ TunerService tunerService, MetricsLogger metricsLogger,
+ @Named(PM_LITE_ENABLED) boolean showPMLiteButton) {
super(view);
mUserManager = userManager;
mUserInfoController = userInfoController;
@@ -141,10 +147,15 @@ public class QSFooterViewController extends ViewController impleme
mEdit = mView.findViewById(android.R.id.edit);
mMultiUserSwitch = mView.findViewById(R.id.multi_user_switch);
mPageIndicator = mView.findViewById(R.id.footer_page_indicator);
+ mPowerMenuLite = mView.findViewById(R.id.pm_lite);
+ mShowPMLiteButton = showPMLiteButton;
}
@Override
protected void onViewAttached() {
+ if (mShowPMLiteButton) {
+ mPowerMenuLite.setVisibility(View.VISIBLE);
+ }
mView.addOnLayoutChangeListener(
(v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) ->
mView.updateAnimator(
diff --git a/packages/SystemUI/src/com/android/systemui/qs/dagger/QSFlagsModule.java b/packages/SystemUI/src/com/android/systemui/qs/dagger/QSFlagsModule.java
index 35a8257bd5a75..10192bc20df9c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/dagger/QSFlagsModule.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/dagger/QSFlagsModule.java
@@ -21,6 +21,7 @@ import android.hardware.display.ColorDisplayManager;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.FeatureFlags;
+import com.android.systemui.util.settings.GlobalSettings;
import javax.inject.Named;
@@ -31,6 +32,8 @@ import dagger.Provides;
public interface QSFlagsModule {
String QS_LABELS_FLAG = "qs_labels_flag";
String RBC_AVAILABLE = "rbc_available";
+ String PM_LITE_ENABLED = "pm_lite";
+ String PM_LITE_SETTING = "sysui_pm_lite";
@Provides
@SysUISingleton
@@ -46,4 +49,11 @@ public interface QSFlagsModule {
static boolean isReduceBrightColorsAvailable(Context context) {
return ColorDisplayManager.isReduceBrightColorsAvailable(context);
}
+
+ @Provides
+ @SysUISingleton
+ @Named(PM_LITE_ENABLED)
+ static boolean isPMLiteEnabled(FeatureFlags featureFlags, GlobalSettings globalSettings) {
+ return featureFlags.isPMLiteEnabled() && globalSettings.getInt(PM_LITE_SETTING, 0) != 0;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/FeatureFlags.java b/packages/SystemUI/src/com/android/systemui/statusbar/FeatureFlags.java
index cf77e290ebe34..1d59257c9c4f6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/FeatureFlags.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/FeatureFlags.java
@@ -86,4 +86,8 @@ public class FeatureFlags {
public boolean isNavigationBarOverlayEnabled() {
return mFlagReader.isEnabled(R.bool.flag_navigation_bar_overlay);
}
+
+ public boolean isPMLiteEnabled() {
+ return mFlagReader.isEnabled(R.bool.flag_pm_lite);
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java
index 2dfd388329974..d40e6a4586b88 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFooterViewControllerTest.java
@@ -89,6 +89,8 @@ public class QSFooterViewControllerTest extends LeakCheckedTest {
private View mEdit;
@Mock
private MultiUserSwitch mMultiUserSwitch;
+ @Mock
+ private View mPowerMenuLiteView;
private QSFooterViewController mController;
@@ -111,11 +113,12 @@ public class QSFooterViewControllerTest extends LeakCheckedTest {
when(mView.findViewById(R.id.build)).thenReturn(mBuildText);
when(mView.findViewById(android.R.id.edit)).thenReturn(mEdit);
when(mView.findViewById(R.id.multi_user_switch)).thenReturn(mMultiUserSwitch);
+ when(mView.findViewById(R.id.pm_lite)).thenReturn(mPowerMenuLiteView);
mController = new QSFooterViewController(mView, mUserManager, mUserInfoController,
mActivityStarter, mDeviceProvisionedController, mUserTracker, mQSPanelController,
new QSDetailDisplayer(), mQuickQSPanelController, mFakeTunerService,
- mMetricsLogger);
+ mMetricsLogger, false);
mController.init();
}