From 2865ab02500b3c9485ad5d1e4e1ce6ac8081da51 Mon Sep 17 00:00:00 2001 From: Fabian Kozynski Date: Fri, 11 Oct 2019 15:03:59 -0400 Subject: [PATCH] Prototype flag for moving controls This allows the controls frame to live in either NPV or QSPanel adb shell settings put system npv_plugin_flag X where X is: 0 - not show plugin 1 - show in NPV 2 - show in QSPanel After changing the setting: `adb shell stop && adb shell start` Test: manual Change-Id: I5ad248bb3651b42bfbb9bd6e25fbe0db7408a14a --- .../src/com/android/systemui/qs/QSPanel.java | 24 ++++++++++++++- .../phone/NotificationPanelView.java | 30 ++++++++++++------- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index ae83567ed159f..2e24403d460f3 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -28,10 +28,12 @@ import android.metrics.LogMaker; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.provider.Settings; import android.service.quicksettings.Tile; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.widget.FrameLayout; import android.widget.LinearLayout; import com.android.internal.logging.MetricsLogger; @@ -49,6 +51,8 @@ import com.android.systemui.qs.customize.QSCustomizer; import com.android.systemui.qs.external.CustomTile; import com.android.systemui.settings.BrightnessController; import com.android.systemui.settings.ToggleSliderView; +import com.android.systemui.shared.plugins.PluginManager; +import com.android.systemui.statusbar.phone.NPVPluginManager; import com.android.systemui.statusbar.policy.BrightnessMirrorController; import com.android.systemui.statusbar.policy.BrightnessMirrorController.BrightnessMirrorListener; import com.android.systemui.tuner.TunerService; @@ -98,6 +102,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private BrightnessMirrorController mBrightnessMirrorController; private View mDivider; + private FrameLayout mPluginFrame; + private final PluginManager mPluginManager; + private NPVPluginManager mNPVPluginManager; + public QSPanel(Context context) { this(context, null); } @@ -106,9 +114,13 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne this(context, attrs, null); } + public QSPanel(Context context, AttributeSet attrs, DumpController dumpController) { + this(context, attrs, dumpController, null); + } + @Inject public QSPanel(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, - DumpController dumpController) { + DumpController dumpController, PluginManager pluginManager) { super(context, attrs); mContext = context; @@ -136,6 +148,15 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mBrightnessController = new BrightnessController(getContext(), findViewById(R.id.brightness_slider)); mDumpController = dumpController; + mPluginManager = pluginManager; + if (mPluginManager != null && Settings.System.getInt( + mContext.getContentResolver(), "npv_plugin_flag", 0) == 2) { + mPluginFrame = (FrameLayout) LayoutInflater.from(mContext).inflate( + R.layout.status_bar_expanded_plugin_frame, this, false); + addView(mPluginFrame); + mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager); + } + } protected void addDivider() { @@ -377,6 +398,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne if (mListening) { refreshAllTiles(); } + if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening); } public void setListening(boolean listening, boolean expanded) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index cee1d5da42cd4..5e3a25152d5d1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -43,6 +43,7 @@ import android.hardware.biometrics.BiometricSourceType; import android.os.PowerManager; import android.os.SystemClock; import android.provider.DeviceConfig; +import android.provider.Settings; import android.util.AttributeSet; import android.util.Log; import android.util.MathUtils; @@ -530,7 +531,10 @@ public class NotificationPanelView extends PanelView implements mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mLastOrientation = getResources().getConfiguration().orientation; mPluginFrame = findViewById(R.id.plugin_frame); - mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager); + if (Settings.System.getInt( + mContext.getContentResolver(), "npv_plugin_flag", 0) == 1) { + mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager); + } initBottomArea(); @@ -767,7 +771,7 @@ public class NotificationPanelView extends PanelView implements mPluginFrame.setLayoutParams(lp); } - mNPVPluginManager.replaceFrameLayout(mPluginFrame); + if (mNPVPluginManager != null) mNPVPluginManager.replaceFrameLayout(mPluginFrame); } private void initBottomArea() { @@ -797,8 +801,10 @@ public class NotificationPanelView extends PanelView implements int oldMaxHeight = mQsMaxExpansionHeight; if (mQs != null) { mQsMinExpansionHeight = mKeyguardShowing ? 0 : mQs.getQsMinExpansionHeight(); - mNPVPluginManager.setYOffset(mQsMinExpansionHeight); - mQsMinExpansionHeight += mNPVPluginManager.getHeight(); + if (mNPVPluginManager != null) { + mNPVPluginManager.setYOffset(mQsMinExpansionHeight); + mQsMinExpansionHeight += mNPVPluginManager.getHeight(); + } mQsMaxExpansionHeight = mQs.getDesiredHeight(); mNotificationStackScroller.setMaxTopPadding( mQsMaxExpansionHeight + mQsNotificationTopPadding); @@ -1904,9 +1910,11 @@ public class NotificationPanelView extends PanelView implements mBarState != StatusBarState.KEYGUARD && (!mQsExpanded || mQsExpansionFromOverscroll)); updateEmptyShadeView(); - mNPVPluginManager.changeVisibility((mBarState != StatusBarState.KEYGUARD) - ? View.VISIBLE - : View.INVISIBLE); + if (mNPVPluginManager != null) { + mNPVPluginManager.changeVisibility((mBarState != StatusBarState.KEYGUARD) + ? View.VISIBLE + : View.INVISIBLE); + } mQsNavbarScrim.setVisibility(mBarState == StatusBarState.SHADE && mQsExpanded && !mStackScrollerOverscrolling && mQsScrimEnabled ? View.VISIBLE @@ -1964,7 +1972,9 @@ public class NotificationPanelView extends PanelView implements float qsExpansionFraction = getQsExpansionFraction(); mQs.setQsExpansion(qsExpansionFraction, getHeaderTranslation()); int heightDiff = mQs.getDesiredHeight() - mQs.getQsMinExpansionHeight(); - mNPVPluginManager.setExpansion(qsExpansionFraction, getHeaderTranslation(), heightDiff); + if (mNPVPluginManager != null) { + mNPVPluginManager.setExpansion(qsExpansionFraction, getHeaderTranslation(), heightDiff); + } mNotificationStackScroller.setQsExpansionFraction(qsExpansionFraction); } @@ -2385,7 +2395,7 @@ public class NotificationPanelView extends PanelView implements appearAmount = mNotificationStackScroller.calculateAppearFractionBypass(); } startHeight = -mQs.getQsMinExpansionHeight(); - startHeight -= mNPVPluginManager.getHeight(); + if (mNPVPluginManager != null) startHeight -= mNPVPluginManager.getHeight(); } float translation = MathUtils.lerp(startHeight, 0, Math.min(1.0f, appearAmount)) @@ -2529,7 +2539,7 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusBar.setListening(listening); if (mQs == null) return; mQs.setListening(listening); - mNPVPluginManager.setListening(listening); + if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening); } @Override