SystemUI修改定制

1、状态栏下滑默认展开全部

源码默认下拉时只显示header和通知栏部分(见4中的图片),修改为下拉直接完全展开快捷设置面板,NotificationPanelView.java->isOpenQsEvent直接返回true即可

private boolean isOpenQsEvent(MotionEvent event) {
      .....
      //直接返回true,展开整个qs面板
      return true;
}

2、上滑直接关闭菜单

原生在Qs面板上上滑时的表现与back键类似,先折叠到header,再次上滑才会关闭整个页面。NotificationPanelView.java修改onQsIntercept方法:

private boolean onQsIntercept(MotionEvent event) {
 ...
 case MotionEvent.ACTION_MOVE:
 ....
 //以下代码用于拦截事件,返回true则不会直接关闭整个面板,而是先折叠,显示header ,注释掉
 /**
 if (Math.abs(h) > mTouchSlop && Math.abs(h) > Math.abs(x - mInitialTouchX)
        && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
    mQsTracking = true;
    onQsExpansionStarted();
    notifyExpandingFinished();
    mInitialHeightOnTouch = mQsExpansionHeight;
    mInitialTouchY = y;
    mInitialTouchX = x;
    mIntercepting = false;
    mNotificationStackScroller.cancelLongPress();
    return true;
 }
 **/
      break;
 ....
}

3、Qs 亮度滑杆位置修改

原生Qs亮度挂杆是在最上面,定制要求放在Qs的下面。

mView.setBrightnessView(mBrightnessSliderController.getRootView());之前在QSPanelController的构造方法里,下移到onInit方法里。

    @Override
    public void onInit() {
        super.onInit();
        // add by lgnfor Brightness slider position
        mView.setBrightnessView(mBrightnessSliderController.getRootView());
        mMediaHost.setExpansion(MediaHostState.EXPANDED);
        mMediaHost.setShowsOnlyActiveMedia(false);
        mMediaHost.init(MediaHierarchyManager.LOCATION_QS);
        mQsCustomizerController.init();
        mBrightnessSliderController.init();
    }

QsPanel类的setBrightnessView方法addView(view, 0)改为addView(view)

    public void setBrightnessView(@NonNull View view) {
        if (mBrightnessView != null) {
            removeView(mBrightnessView);
            mMovableContentStartIndex--;
        }
        addView(view);
        mBrightnessView = view;

        setBrightnessViewMargin();

        mMovableContentStartIndex++;
    }

4、隐藏QS下的多用户、设置、关机布局,修改QSFragment.java:

    private void updateQsState() {
        final boolean expanded = mQsExpanded || mInSplitShade;
        final boolean expandVisually = expanded || mStackScrollerOverscrolling
                || mHeaderAnimating;
        mQSPanelController.setExpanded(expanded);
        boolean keyguardShowing = isKeyguardState();
        mHeader.setVisibility((expanded || !keyguardShowing || mHeaderAnimating
                || mShowCollapsedOnKeyguard)
                ? View.VISIBLE
                : View.INVISIBLE);
        mHeader.setExpanded((keyguardShowing && !mHeaderAnimating && !mShowCollapsedOnKeyguard)
                || (expanded && !mStackScrollerOverscrolling), mQuickQSPanelController);
        boolean qsPanelVisible = !mQsDisabled && expandVisually;
        boolean footerVisible = qsPanelVisible &&  (expanded || !keyguardShowing || mHeaderAnimating
                || mShowCollapsedOnKeyguard);
        mFooter.setVisibility(footerVisible ? View.VISIBLE : View.INVISIBLE);
//修改这句        mQSFooterActionController.setVisible(footerVisible);
        mQSFooterActionController.setVisible(false);
        mFooter.setExpanded((keyguardShowing && !mHeaderAnimating && !mShowCollapsedOnKeyguard)
                || (expanded && !mStackScrollerOverscrolling));
        mQSPanelController.setVisibility(qsPanelVisible ? View.VISIBLE : View.INVISIBLE);
        if (DEBUG) {
            Log.d(TAG, "Footer: " + footerVisible + ", QS Panel: " + qsPanelVisible);
        }
    }

5、QS圆形图标定制

diff --git a/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml b/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
index 36d52d778..4e39970ba 100755
--- a/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
+++ b/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml
@@ -21,6 +21,17 @@
      for different hardware and product builds. -->
 <resources>


+    <!-- The maximum number of tiles in the QuickQSPanel -->^M
+    <integer name="quick_qs_panel_max_tiles">8</integer>^M
+^M
+    <!-- The maximum number of rows in the QuickQSPanel -->^M
+    <integer name="quick_qs_panel_max_rows">4</integer>^M
+^M
+    <!-- The number of columns in the QuickSettings -->^M
+    <integer name="quick_settings_num_columns">4</integer>^M

+^M
     <string name="quick_settings_tiles_default" translatable="false">
         internet,bt,airplane,rotation,flashlight,nfc,screenrecord,battery,night,dnd,hotspot,inversion,controls,qr_code_scanner,videoback,location,underwatercamera,superscreenshot,foldscreen
     </string>
diff --git a/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/dimens.xml b/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/dimens.xml
index a9adf6725..b8f9592f3 100755
--- a/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/dimens.xml
+++ b/mt6789/M/overlay/public/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/dimens.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>

+    <dimen name="qs_corner_radius">0dp</dimen>^M
+    <dimen name="qs_tile_height">90dp</dimen>^M
+    <dimen name="qs_icon_size">46dp</dimen>^M
+    <dimen name="qs_label_container_margin">0dp</dimen>^M
+    <dimen name="qs_quick_tile_size">70dp</dimen>^M
+    <dimen name="qs_tile_padding">1dp</dimen>^M
+    <dimen name="qs_tile_start_padding">2dp</dimen>^M
+    <dimen name="qs_tile_text_size">12sp</dimen>^M

+    ^M

     <!-- the padding on the end of the statusbar -->
     <dimen name="status_bar_padding_end">3dp</dimen>
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/qs_tile_background_shape.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/qs_tile_background_shape.xml
index f6b683471..c1b9864f2 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/qs_tile_background_shape.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/qs_tile_background_shape.xml
@@ -14,8 +14,8 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <corners android:radius="@dimen/qs_corner_radius" />
-    <solid android:color="#FFFFFF" />
+    <solid android:color="@android:color/transparent" />
 </shape>
\ No newline at end of file
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_footer_impl.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_footer_impl.xml
index b1d3ed053..1501ba28e 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_footer_impl.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_footer_impl.xml
@@ -54,7 +54,7 @@
                 android:layout_height="match_parent"
                 android:layout_gravity="center_vertical"
                 android:visibility="gone" />

             <FrameLayout
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
@@ -64,14 +64,15 @@
                     android:layout_width="@dimen/qs_footer_action_button_size"
                     android:layout_height="@dimen/qs_footer_action_button_size"
                     android:layout_gravity="center_vertical|end"
-                    android:background="?android:attr/selectableItemBackground"
+                    android:background="@android:color/transparent"
                     android:clickable="true"
                     android:contentDescription="@string/accessibility_quick_settings_edit"
                     android:focusable="true"
                     android:padding="@dimen/qs_footer_icon_padding"
                     android:src="@*android:drawable/ic_mode_edit"
-                    android:tint="?android:attr/textColorPrimary" />
+                    android:tint="#ff1c211b" />
             </FrameLayout>


         </LinearLayout>

diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_tile_label.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_tile_label.xml
index 09fec32b4..320246905 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_tile_label.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/qs_tile_label.xml
@@ -14,25 +14,23 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
 <com.android.systemui.qs.tileimpl.IgnorableChildLinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="0dp"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_weight="1"
     android:clipChildren="false"
     android:clipToPadding="false"
     android:orientation="vertical"
-    android:layout_marginStart="@dimen/qs_label_container_margin"
-    android:layout_marginEnd="0dp"
     android:focusable="false"
     android:importantForAccessibility="no"
-    android:layout_gravity="center_vertical | start">
+    android:layout_gravity="center">

     <com.android.systemui.util.SafeMarqueeTextView
         android:id="@+id/tile_label"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="start"
+        android:gravity="center"
         android:textDirection="locale"
         android:ellipsize="marquee"
         android:marqueeRepeatLimit="1"
@@ -40,6 +38,7 @@
         android:focusable="false"
         android:importantForAccessibility="no"
         android:textAppearance="@style/TextAppearance.QS.TileLabel"/>
     <com.android.systemui.util.SafeMarqueeTextView
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_qs_status_icons.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_qs_status_icons.xml
index 3a19e5f51..98c3215ac 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_qs_status_icons.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_qs_status_icons.xml
@@ -26,11 +26,12 @@
     android:focusable="true"
     android:theme="@style/Theme.SystemUI.QuickSettings.Header">

     <LinearLayout
         android:id="@+id/clock_container"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
-        android:orientation="horizontal"
+        android:orientation="vertical"
         android:layout_gravity="center_vertical|start"
         android:gravity="center_vertical|start"
         >
@@ -41,6 +42,7 @@
             android:layout_height="match_parent"
             android:minHeight="@dimen/qs_header_row_min_height"
             android:gravity="center_vertical|start"
+            android:textSize="24sp"
             android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
             android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
             android:singleLine="true"
@@ -52,12 +54,14 @@
             android:layout_height="match_parent"
             android:layout_marginStart="@dimen/status_bar_left_clock_end_padding"
             android:gravity="center_vertical|start"
+            android:textSize="18sp"
             android:singleLine="true"
             android:textAppearance="@style/TextAppearance.QS.Status"
             systemui:longDatePattern="@string/abbrev_wday_month_day_no_year_alarm"
             systemui:shortDatePattern="@string/abbrev_month_day_no_year"
         />
     </LinearLayout>

     <include layout="@layout/qs_carrier_group"
         android:id="@+id/carrier_group"
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_settings_brightness_dialog.xml
index d3b76b4fe..37553183d 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_settings_brightness_dialog.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_settings_brightness_dialog.xml
@@ -34,10 +34,11 @@
             android:layout_height="@dimen/brightness_mirror_height"
             android:layout_gravity="center"
             android:layout_marginEnd="10dp"
-            android:background="@drawable/brightness_auto_icon_background_off"
+            android:background="@android:color/transparent"
             android:contentDescription="@null"
             android:paddingStart="13dp"
             android:paddingEnd="13dp"
+            android:tint="#ff1c211b"
             android:src="@drawable/ic_qs_brightness_auto_off" />

         <FrameLayout
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_status_bar_header_date_privacy.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_status_bar_header_date_privacy.xml
index 9234282a1..751dad11f 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_status_bar_header_date_privacy.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_status_bar_header_date_privacy.xml
@@ -36,6 +36,7 @@
         android:layout_weight="1"
         android:gravity="center_vertical|start" >

         <com.android.systemui.statusbar.policy.VariableDateView
             android:id="@+id/date"
             android:layout_width="wrap_content"
@@ -44,9 +45,12 @@
             android:gravity="center_vertical"
             android:singleLine="true"
             android:textAppearance="@style/TextAppearance.QS.Status"
+            android:textColor="#ff1c211b"
+            android:textSize="18sp"
             systemui:longDatePattern="@string/abbrev_wday_month_day_no_year_alarm"
             systemui:shortDatePattern="@string/abbrev_month_day_no_year"
         />
     </FrameLayout>

     <!-- We want this to be centered (to align with notches). In order to do that, the following
@@ -90,7 +94,6 @@
         android:id="@+id/settings_button_container"
         android:layout_width="@dimen/qs_footer_action_button_size"
         android:layout_height="@dimen/qs_footer_action_button_size"
-        android:background="@drawable/qs_footer_action_circle"
         android:clipChildren="false"
         android:clipToPadding="false">

@@ -105,7 +108,7 @@
             android:contentDescription="@string/accessibility_quick_settings_settings"
             android:scaleType="centerInside"
             android:src="@drawable/ic_settings"
-            android:tint="?android:attr/textColorPrimary" />
+            android:tint="#ff1c211b" />

     </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/background.xml b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/background.xml
index 3e81bb259..6848ff76d 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/background.xml
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/background.xml
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="#7f000000" />

+    <solid android:color="@android:color/transparent" />
     <corners android:radius="31.3dp"/>
-    <stroke android:width="0.67dp" android:color="#7fffffff"/>
+    <stroke android:width="0.67dp" android:color="@android:color/transparent"/>

 </shape>
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_active.png b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_active.png
new file mode 100755
index 000000000..70b7fe8b5
Binary files /dev/null and b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_active.png differ
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_inactive.png b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_inactive.png
new file mode 100755
index 000000000..bf940a4ff
Binary files /dev/null and b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/res_qs/drawable-xxhdpi/hoperun_ic_qs_nfc_inactive.png differ
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index 9210250d7..f15f0935d 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -172,8 +172,7 @@ public class QuickStatusBarHeader extends FrameLayout {
         mTintedIconManager = iconManager;
         mRssiIgnoredSlots = rssiIgnoredSlots;
         mInsetsProvider = insetsProvider;
-        int fillColor = Utils.getColorAttrDefaultColor(getContext(),
-                android.R.attr.textColorPrimary);
+        int fillColor = 0xff1c211b;

         // Set the correct tint for the status icons so they contrast
         iconManager.setTint(fillColor);
@@ -265,8 +264,14 @@ public class QuickStatusBarHeader extends FrameLayout {
         }
         setLayoutParams(lp);

-        int textColor = Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimary);
+        // int textColor = Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimary);
+        int textColor = 0xff1c211b;
+        Log.d(TAG, "lign updateResources textColor: " + textColor);
         if (textColor != mTextColorPrimary) {
+        // int textColorSecondary = Utils.getColorAttrDefaultColor(mContext,
+        //         android.R.attr.textColorSecondary);
             int textColorSecondary = Utils.getColorAttrDefaultColor(mContext,
                     android.R.attr.textColorSecondary);
             mTextColorPrimary = textColor;
@@ -331,7 +336,7 @@ public class QuickStatusBarHeader extends FrameLayout {
         TouchAnimator.Builder builder = new TouchAnimator.Builder()
                 // These views appear on expanding down
                 .addFloat(mDateView, "alpha", 0, 0, 1)
-                .addFloat(mClockDateView, "alpha", 1, 0, 0)
+                .addFloat(mClockDateView, "alpha", 0, 0, 1) 
                 .addFloat(mQSCarriers, "alpha", 0, 1)
                 .setListener(new TouchAnimator.ListenerAdapter() {
                     @Override
@@ -341,7 +346,8 @@ public class QuickStatusBarHeader extends FrameLayout {
                             mIconContainer.addIgnoredSlots(mRssiIgnoredSlots);
                         }
                         // Make it gone so there's enough room for carrier names
-                        mClockDateView.setVisibility(View.GONE);
+                          // mClockDateView.setVisibility(View.GONE);
                     }

                     @Override
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
index 0361d542b..88e512d32 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
@@ -240,21 +240,21 @@ public class QSIconViewImpl extends QSIconView {
     /**
      * Color to tint the tile icon based on state
      */
     public static int getIconColorForState(Context context, int state) {
         switch (state) {
             case Tile.STATE_UNAVAILABLE:
-                return Utils.applyAlpha(QSTileViewImpl.UNAVAILABLE_ALPHA,
-                        Utils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimary));
+                return Color.BLACK;
             case Tile.STATE_INACTIVE:
-                return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimary);
+                return Color.BLACK;
             case Tile.STATE_ACTIVE:
-                return Utils.getColorAttrDefaultColor(context,
-                        com.android.internal.R.attr.textColorOnAccent);
+                return Color.WHITE;
             default:
                 Log.e("QSIconView", "Invalid state " + state);
                 return 0;
         }
     }

     private static class EndRunnableAnimatorListener extends AnimatorListenerAdapter {
         private Runnable mRunnable;
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
index 66b75ec94..7dbae35a6 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
@@ -23,6 +23,7 @@ import android.content.Context
 import android.content.res.ColorStateList
 import android.content.res.Configuration
 import android.content.res.Resources.ID_NULL
+import android.graphics.Color
 import android.graphics.drawable.Drawable
 import android.graphics.drawable.RippleDrawable
 import android.os.Trace
@@ -89,9 +90,13 @@ open class QSTileViewImpl @JvmOverloads constructor(
             updateHeight()
         }

-    private val colorActive = Utils.getColorAttrDefaultColor(context,
-            com.android.internal.R.attr.colorAccentPrimary)
-    private val colorInactive = Utils.getColorAttrDefaultColor(context, R.attr.offStateColor)
+    private val colorActive = 0xFF496CFE.toInt()
+//    private val colorActive = Utils.getColorAttrDefaultColor(context,
+//            com.android.internal.R.attr.colorAccentPrimary)
+    private val colorInactive = Color.WHITE
+//    private val colorInactive = Utils.getColorAttrDefaultColor(context, R.attr.offStateColor)
     private val colorUnavailable = Utils.applyAlpha(UNAVAILABLE_ALPHA, colorInactive)

     private val colorLabelActive =
@@ -145,8 +150,10 @@ open class QSTileViewImpl @JvmOverloads constructor(

     init {
         setId(generateViewId())
-        orientation = LinearLayout.HORIZONTAL
-        gravity = Gravity.CENTER_VERTICAL or Gravity.START
+        orientation = LinearLayout.VERTICAL
+        gravity = Gravity.CENTER
         importantForAccessibility = IMPORTANT_FOR_ACCESSIBILITY_YES
         clipChildren = false
         clipToPadding = false
@@ -477,14 +484,8 @@ open class QSTileViewImpl @JvmOverloads constructor(
         if (!Objects.equals(label.text, state.label)) {
             label.text = state.label
         }
-        if (!Objects.equals(secondaryLabel.text, state.secondaryLabel)) {
-            secondaryLabel.text = state.secondaryLabel
-            secondaryLabel.visibility = if (TextUtils.isEmpty(state.secondaryLabel)) {
-                GONE
-            } else {
-                VISIBLE
-            }
-        }
+

         // Colors
         if (state.state != lastState) {
@@ -544,6 +545,7 @@ open class QSTileViewImpl @JvmOverloads constructor(
     }

     private fun setColor(color: Int) {
+        if (true) return
         colorBackgroundDrawable.mutate().setTint(color)
         paintColor = color
     }
@@ -568,7 +570,7 @@ open class QSTileViewImpl @JvmOverloads constructor(
         } else if (state !is BooleanState || state.forceExpandIcon) {
             customDrawableView.setImageDrawable(null)
             customDrawableView.visibility = GONE
-            chevronView.visibility = VISIBLE
+            chevronView.visibility = GONE
         } else {
             customDrawableView.setImageDrawable(null)
             customDrawableView.visibility = GONE
@@ -594,9 +596,12 @@ open class QSTileViewImpl @JvmOverloads constructor(
      * The view should not be animated if it's not on screen and no part of it is visible.
      */
     protected open fun animationsEnabled(): Boolean {
-        if (!isShown) {
+       // if (!isShown) {
+        if (true) {
             return false
         }
         if (alpha != 1f) {
             return false
         }
diff --git a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 212bc4668..177a0581c 100755
--- a/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/mt6789/M/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -363,7 +363,7 @@ public enum ScrimState {
     boolean mKeyguardFadingAway;
     long mKeyguardFadingAwayDuration;
     boolean mClipQsScrim;
+    final int QS_BG_COLOR = 0xFFEDEDED;

     public void init(ScrimView scrimInFront, ScrimView scrimBehind, DozeParameters dozeParameters,
             DockManager dockManager) {

6、解锁后,QS背景颜色修改 ScrimState.java

    UNLOCKED {
        @Override
        public void prepare(ScrimState previousState) {
            // State that UI will sync to.
            mBehindAlpha = mClipQsScrim ? 1 : 0;
            mNotifAlpha = 0;
            mFrontAlpha = 0;

            mAnimationDuration = mKeyguardFadingAway
                    ? mKeyguardFadingAwayDuration
                    : CentralSurfaces.FADE_KEYGUARD_DURATION;

            boolean fromAod = previousState == AOD || previousState == PULSING;
            mAnimateChange = !mLaunchingAffordanceWithPreview && !fromAod;

            mFrontTint = Color.TRANSPARENT;
            mBehindTint = QS_BG_COLOR; // modified by lgn, add control center, 20240409

7、Keyguard界面QS背景颜色修改 ScrimState.java


....
    KEYGUARD {
        @Override
        public void prepare(ScrimState previousState) {
            mBlankScreen = false;
            if (previousState == ScrimState.AOD) {
                mAnimationDuration = StackStateAnimator.ANIMATION_DURATION_WAKEUP_SCRIM;
                if (mDisplayRequiresBlanking) {
                    // DisplayPowerManager will blank the screen, we'll just
                    // set our scrim to black in this frame to avoid flickering and
                    // fade it out afterwards.
                    mBlankScreen = true;
                }
            } else if (previousState == ScrimState.KEYGUARD) {
                mAnimationDuration = StackStateAnimator.ANIMATION_DURATION_WAKEUP_SCRIM;
            } else {
                mAnimationDuration = ScrimController.ANIMATION_DURATION;
            }
            mFrontTint = Color.BLACK;
            mBehindTint = QS_BG_COLOR; // add by lgn, add control center, 20240603
....

    SHADE_LOCKED {
        @Override
        public void prepare(ScrimState previousState) {
            mBehindAlpha = mClipQsScrim ? 1 : mDefaultScrimAlpha;
            mNotifAlpha = 1f;
            mFrontAlpha = 0f;
            mBehindTint = Color.BLACK;
            mNotifTint = QS_BG_COLOR; // add by lgn, add control center, 20240604

            if (mClipQsScrim) {
                updateScrimColor(mScrimBehind, 1f /* alpha */, Color.BLACK);
            }
        }
....
    UNLOCKED {
        @Override
        public void prepare(ScrimState previousState) {
            // State that UI will sync to.
            mBehindAlpha = mClipQsScrim ? 1 : 0;
            mNotifAlpha = 0;
            mFrontAlpha = 0;

            mAnimationDuration = mKeyguardFadingAway
                    ? mKeyguardFadingAwayDuration
                    : CentralSurfaces.FADE_KEYGUARD_DURATION;
            //mAnimationDuration = 0;

            boolean fromAod = previousState == AOD || previousState == PULSING;
            mAnimateChange = !mLaunchingAffordanceWithPreview && !fromAod;

            mFrontTint = Color.TRANSPARENT;
            // modified by l, add control center, 20240604 st
            mBehindTint = QS_BG_COLOR;
            mNotifTint = QS_BG_COLOR;
            // modified by l, add control center, 20240604 ed
....

8、PIN码锁键盘的各个按钮间距的修改 KeyguardPINView.java

原生PIN码锁键盘KeyguardPINView的布局keyguard_pin_view.xml,是用androidx.constraintlayout.helper.widget.Flow实现的,

        <androidx.constraintlayout.helper.widget.Flow
            android:id="@+id/flow1"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:orientation="horizontal"

            androidprv:constraint_referenced_ids="key1,key2,key3,key4,key5,key6,key7,key8,key9,delete_button,key0,key_enter"

            androidprv:flow_horizontalGap="@dimen/num_pad_key_margin_end"

            androidprv:flow_horizontalStyle="packed"
            androidprv:flow_maxElementsWrap="3"

            androidprv:flow_verticalBias="1.0"
            androidprv:flow_verticalGap="@dimen/num_pad_entry_row_margin_bottom"
            androidprv:flow_verticalStyle="packed"

            androidprv:flow_wrapMode="aligned"
            androidprv:layout_constraintBottom_toBottomOf="parent"
            androidprv:layout_constraintEnd_toEndOf="parent"
            androidprv:layout_constraintStart_toStartOf="parent"
            androidprv:layout_constraintTop_toBottomOf="@id/pin_pad_top_guideline" />

在KeyguardPINView.java中,引入Flow的方式,利用代码修改各个key的间距:

import androidx.constraintlayout.helper.widget.Flow;

    private Flow mFlow;

        mFlow = findViewById(R.id.flow1);

        int bottomMargin = mContext.getResources().getDimensionPixelSize(
                R.dimen.num_pad_entry_row_margin_bottom);
        int rightMargin = mContext.getResources().getDimensionPixelSize(
                R.dimen.num_pad_key_margin_end);
        Log.v(TAG, "onFinishInflate bottomMargin: " + bottomMargin + ", rightMargin: " + rightMargin);
        mFlow.setVerticalGap(bottomMargin); \\设置垂直方向间距
        mFlow.setHorizontalGap(rightMargin); \\设置横向间距

9、音量对话框只显示激活的音量条,不显示多媒体音量条

VolumeDialogImpl.java

    private boolean shouldBeVisibleH(VolumeRow row, VolumeRow activeRow) {
        boolean isActive = row.stream == activeRow.stream;

        if (isActive) {
            return true;
        }

        if (!mShowActiveStreamOnly && !SubDisplayUtils.isSmallScreen()) { // modified by lgn. For. 20240603
            if (row.stream == AudioSystem.STREAM_ACCESSIBILITY) {
                return mShowA11yStream;
            }

10、点击锁定屏幕后,更新窗口方向

import android.os.RemoteException;

import android.view.IWindowManager;
import android.view.WindowManagerGlobal;

private IWindowManager mWindowManager;

mWindowManager = WindowManagerGlobal.getWindowManagerService();

        try {
            mWindowManager.updateRotation(true, false);
        } catch (RemoteException e) {
        }

11、锁屏界面上滑,概率不易进入解锁界面 修改速度、距离阈值

    protected boolean flingExpands(float vel, float vectorVel, float x, float y) {
        if (mFalsingManager.isUnlockingDisabled()) {
            return true;
        }

        @Classifier.InteractionType int interactionType = y - mInitialTouchY > 0
                ? QUICK_SETTINGS : (
                        mKeyguardStateController.canDismissLockScreen() ? UNLOCK : BOUNCER_UNLOCK);
        // add by lign, 20240702-start
        if (isFalseTouch(x, y, interactionType)) {
            Log.d(TAG, "lign flingExpands isFalseTouch true");
            return true;
        }
        Log.d(TAG, "lign flingExpands isFalseTouch vectorVel=" + Math.abs(vectorVel)
                + ", MinVelocity=" + mFlingAnimationUtils.getMinVelocityPxPerSecond());
        boolean isSmallScreen = SubDisplayUtils.isSmallScreen();
        float minVelocityPxPerSecond = isSmallScreen
                ? mFlingAnimationUtils.getMinVelocityPxPerSecond() / 10.0f       //add here
                : mFlingAnimationUtils.getMinVelocityPxPerSecond();
        if (Math.abs(vectorVel) < minVelocityPxPerSecond) {
            Log.d(TAG, "lign flingExpands vectorVel shouldExpandWhenNotFlinging=" + shouldExpandWhenNotFlinging());
            return shouldExpandWhenNotFlinging();
        } else {
            Log.d(TAG, "lign flingExpands vel=" + vel);
            if (isSmallScreen) {
                return vel > 300.0f;                  // add here
            } else {
                return vel > 0;
            }
        }
        // add by lign, 20240702-start
    }

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值