Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能

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);
    }

你可能感兴趣的:(android)