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


    SystemUI的在下拉状态栏第二次展开的QSPanel的界面时,原生下拉状态栏界面会有亮度条SeekBar,

    当拖动的时候,亮度会改变但是同时整个QSPanel下拉状态栏也隐藏掉了 。客户要求去掉这个拖动亮度条时隐藏下拉状态栏的功能

    相关布局和代码

    1. ```
    2. /SystemUI/res/layout/quick_settings_brightness_dialog.xml 亮度条核心布局
    3. /SystemUI/res/layout/brightness_mirror.xml 包含亮度条布局
    4. /SystemUI/res/layout/qs_panel.xml 下拉状态栏第二次展开的QSPanel的界面
    5. /SystemUI/src/com/android/systemui/qs/QSPanel.java
    6. --- a/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java
    7. +++ b/ac8257_0302/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanel.java
    8. @@ -104,9 +104,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
    9. setOrientation(VERTICAL);
    10. + //
    11. mBrightnessView = LayoutInflater.from(mContext).inflate(
    12. R.layout.quick_settings_brightness_dialog, this, false);
    13. - addView(mBrightnessView);
    14. + //addView(mBrightnessView); //addView 加载控件,垂直线性布局,先add的上面
    15. // M: @ {
    16. mQuickSettingsExt = OpSystemUICustomizationFactoryBase
    17. @@ -128,7 +129,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
    18. ((PagedTileLayout) mTileLayout).setPageIndicator(mPanelPageIndicator);
    19. mQsTileRevealController = new QSTileRevealController(mContext, this,
    20. (PagedTileLayout) mTileLayout);
    21. -
    22. +
    23. + addView(mBrightnessView);//改变亮度条位置
    24. addDivider();
    25. mFooter = new QSSecurityFooter(this, context);
    26. /SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
    27. //去掉这个拖动亮度条时隐藏下拉状态栏的功能
    28. @@ -56,9 +56,12 @@ public class BrightnessMirrorController
    29. }
    30. public void showMirror() {
    31. - mBrightnessMirror.setVisibility(View.VISIBLE);
    32. - mVisibilityCallback.accept(true);
    33. - mNotificationPanel.setPanelAlpha(0, true /* animate */);
    34. + mBrightnessMirror.setVisibility(View.INVISIBLE);
    35. + mVisibilityCallback.accept(false);
    36. + mNotificationPanel.setPanelAlpha(255, true /* animate */);
    37. }
    38. ```
    1. /**
    2. * Add brightness view above the tile layout.
    3. *
    4. * Used to add the brightness slider after construction.
    5. */
    6. public void setBrightnessView(@NonNull View view) {
    7. if (mBrightnessView != null) {
    8. removeView(mBrightnessView);
    9. mMovableContentStartIndex--;
    10. }
    11. addView(view, 0);
    12. mBrightnessView = view;
    13. setBrightnessViewMargin();
    14. mMovableContentStartIndex++;
    15. }
    16. private void setBrightnessViewMargin() {
    17. if (mBrightnessView != null) {
    18. MarginLayoutParams lp = (MarginLayoutParams) mBrightnessView.getLayoutParams();
    19. lp.topMargin = mContext.getResources()
    20. .getDimensionPixelSize(R.dimen.qs_brightness_margin_top)+30;
    21. lp.bottomMargin = mContext.getResources()
    22. .getDimensionPixelSize(R.dimen.qs_brightness_margin_bottom);
    23. mBrightnessView.setLayoutParams(lp);
    24. }
    25. }

     src/com/android/systemui/qs/QSPanelController.java调用"setBrightnessView"方法添加亮度进度条

    1. @Inject
    2. QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
    3. QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
    4. @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
    5. @Named(QS_PANEL) MediaHost mediaHost,
    6. QSTileRevealController.Factory qsTileRevealControllerFactory,
    7. DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
    8. QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
    9. BrightnessSliderController.Factory brightnessSliderFactory,
    10. FalsingManager falsingManager, CommandQueue commandQueue) {
    11. super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
    12. metricsLogger, uiEventLogger, qsLogger, dumpManager);
    13. mQsSecurityFooter = qsSecurityFooter;
    14. mTunerService = tunerService;
    15. mQsCustomizerController = qsCustomizerController;
    16. mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
    17. mFalsingManager = falsingManager;
    18. mCommandQueue = commandQueue;
    19. mQsSecurityFooter.setHostEnvironment(qstileHost);
    20. mBrightnessSliderController = brightnessSliderFactory.create(getContext(), mView);
    21. mView.setBrightnessView(mBrightnessSliderController.getRootView());
    22. mBrightnessController = brightnessControllerFactory.create(mBrightnessSliderController);
    23. mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
    24. }

  • 相关阅读:
    swiper高度自适应
    微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列
    SpringBoot 配置进阶
    Vue2使用定时器和闭包实现防抖和节流函数。将函数放入util.js中,供具体功能在methods中调用
    JavaScript(六):事件捕获与冒泡
    锥坡 锥坡 锥坡
    微信小程序三种授权登录以及授权登录流程讲解
    《JAVA设计模式系列》解释器模式
    qt响应全局热键
    Java -- SpringSession实现session共享
  • 原文地址:https://blog.csdn.net/xiaowang_lj/article/details/132712482