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
}