SystemUI的在下拉状态栏第二次展开的QSPanel的界面时,原生下拉状态栏界面会有亮度条SeekBar,
当拖动的时候,亮度会改变但是同时整个QSPanel下拉状态栏也隐藏掉了 。客户要求去掉这个拖动亮度条时隐藏下拉状态栏的功能
相关布局和代码
``` /SystemUI/res/layout/quick_settings_brightness_dialog.xml 亮度条核心布局 /SystemUI/res/layout/brightness_mirror.xml 包含亮度条布局 /SystemUI/res/layout/qs_panel.xml 下拉状态栏第二次展开的QSPanel的界面 /SystemUI/src/com/android/systemui/qs/QSPanel.java --- a/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -104,9 +104,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne setOrientation(VERTICAL); + // mBrightnessView = LayoutInflater.from(mContext).inflate( R.layout.quick_settings_brightness_dialog, this, false); - addView(mBrightnessView); + //addView(mBrightnessView); //addView 加载控件,垂直线性布局,先add的上面 // M: @ { mQuickSettingsExt = OpSystemUICustomizationFactoryBase @@ -128,7 +129,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne ((PagedTileLayout) mTileLayout).setPageIndicator(mPanelPageIndicator); mQsTileRevealController = new QSTileRevealController(mContext, this, (PagedTileLayout) mTileLayout); - + + addView(mBrightnessView);//改变亮度条位置 addDivider(); mFooter = new QSSecurityFooter(this, context); /SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java //去掉这个拖动亮度条时隐藏下拉状态栏的功能 @@ -56,9 +56,12 @@ public class BrightnessMirrorController } public void showMirror() { - mBrightnessMirror.setVisibility(View.VISIBLE); - mVisibilityCallback.accept(true); - mNotificationPanel.setPanelAlpha(0, true /* animate */); + mBrightnessMirror.setVisibility(View.INVISIBLE); + mVisibilityCallback.accept(false); + mNotificationPanel.setPanelAlpha(255, true /* animate */); } ```
/** * Add brightness view above the tile layout. * * Used to add the brightness slider after construction. */ public void setBrightnessView(@NonNull View view) { if (mBrightnessView != null) { removeView(mBrightnessView); mMovableContentStartIndex--; } addView(view, 0); mBrightnessView = view; setBrightnessViewMargin(); mMovableContentStartIndex++; } private void setBrightnessViewMargin() { if (mBrightnessView != null) { MarginLayoutParams lp = (MarginLayoutParams) mBrightnessView.getLayoutParams(); lp.topMargin = mContext.getResources() .getDimensionPixelSize(R.dimen.qs_brightness_margin_top)+30; lp.bottomMargin = mContext.getResources() .getDimensionPixelSize(R.dimen.qs_brightness_margin_bottom); mBrightnessView.setLayoutParams(lp); } }
src/com/android/systemui/qs/QSPanelController.java调用"setBrightnessView"方法添加亮度进度条
@Inject QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService, QSTileHost qstileHost, QSCustomizerController qsCustomizerController, @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer, @Named(QS_PANEL) MediaHost mediaHost, QSTileRevealController.Factory qsTileRevealControllerFactory, DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory, BrightnessSliderController.Factory brightnessSliderFactory, FalsingManager falsingManager, CommandQueue commandQueue) { super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger, uiEventLogger, qsLogger, dumpManager); mQsSecurityFooter = qsSecurityFooter; mTunerService = tunerService; mQsCustomizerController = qsCustomizerController; mQsTileRevealControllerFactory = qsTileRevealControllerFactory; mFalsingManager = falsingManager; mCommandQueue = commandQueue; mQsSecurityFooter.setHostEnvironment(qstileHost); mBrightnessSliderController = brightnessSliderFactory.create(getContext(), mView); mView.setBrightnessView(mBrightnessSliderController.getRootView()); mBrightnessController = brightnessControllerFactory.create(mBrightnessSliderController); mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController); }