diff options
3 files changed, 56 insertions, 5 deletions
diff --git a/packages/SystemUI/res/layout/qs_footer_impl.xml b/packages/SystemUI/res/layout/qs_footer_impl.xml index 73874a08b0bd..b3f32a2863a8 100644 --- a/packages/SystemUI/res/layout/qs_footer_impl.xml +++ b/packages/SystemUI/res/layout/qs_footer_impl.xml @@ -19,7 +19,7 @@ <com.android.systemui.qs.QSFooterView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/qs_footer" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="@dimen/qs_footer_height" android:layout_marginStart="@dimen/qs_footer_margin" android:layout_marginEnd="@dimen/qs_footer_margin" android:layout_marginBottom="@dimen/qs_footers_margin_bottom" @@ -31,7 +31,7 @@ <LinearLayout android:layout_width="match_parent" - android:layout_height="@dimen/qs_footer_height" + android:layout_height="match_parent" android:layout_gravity="center_vertical"> <TextView diff --git a/packages/SystemUI/src/com/android/systemui/qs/PageIndicator.java b/packages/SystemUI/src/com/android/systemui/qs/PageIndicator.java index 4770d5272508..ff96d4577ba5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PageIndicator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PageIndicator.java @@ -2,6 +2,7 @@ package com.android.systemui.qs; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.drawable.Animatable2; @@ -36,9 +37,9 @@ public class PageIndicator extends ViewGroup { private final ArrayList<Integer> mQueuedPositions = new ArrayList<>(); - private final int mPageIndicatorWidth; - private final int mPageIndicatorHeight; - private final int mPageDotWidth; + private int mPageIndicatorWidth; + private int mPageIndicatorHeight; + private int mPageDotWidth; private @NonNull ColorStateList mTint; private int mPosition = -1; @@ -79,6 +80,35 @@ public class PageIndicator extends ViewGroup { mPageDotWidth = res.getDimensionPixelSize(R.dimen.qs_page_indicator_dot_width); } + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + updateResources(); + } + + private void updateResources() { + Resources res = getResources(); + boolean changed = false; + int pageIndicatorWidth = res.getDimensionPixelSize(R.dimen.qs_page_indicator_width); + if (pageIndicatorWidth != mPageIndicatorWidth) { + mPageIndicatorWidth = pageIndicatorWidth; + changed = true; + } + int pageIndicatorHeight = res.getDimensionPixelSize(R.dimen.qs_page_indicator_height); + if (pageIndicatorHeight != mPageIndicatorHeight) { + mPageIndicatorHeight = pageIndicatorHeight; + changed = true; + } + int pageIndicatorDotWidth = res.getDimensionPixelSize(R.dimen.qs_page_indicator_dot_width); + if (pageIndicatorDotWidth != mPageDotWidth) { + mPageDotWidth = pageIndicatorDotWidth; + changed = true; + } + if (changed) { + invalidate(); + } + } + public void setNumPages(int numPages) { setVisibility(numPages > 1 ? View.VISIBLE : View.GONE); if (numPages == getChildCount()) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java index c908e6e2afbe..5a872d699f35 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java @@ -35,6 +35,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.settingslib.development.DevelopmentSettingsEnabler; +import com.android.systemui.FontSizeUtils; import com.android.systemui.res.R; /** @@ -109,11 +110,31 @@ public class QSFooterView extends FrameLayout { private void updateResources() { updateFooterAnimator(); + updateEditButtonResources(); + updateBuildTextResources(); MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams(); + lp.height = getResources().getDimensionPixelSize(R.dimen.qs_footer_height); + int sideMargin = getResources().getDimensionPixelSize(R.dimen.qs_footer_margin); + lp.leftMargin = sideMargin; + lp.rightMargin = sideMargin; lp.bottomMargin = getResources().getDimensionPixelSize(R.dimen.qs_footers_margin_bottom); setLayoutParams(lp); } + private void updateEditButtonResources() { + int size = getResources().getDimensionPixelSize(R.dimen.qs_footer_action_button_size); + int padding = getResources().getDimensionPixelSize(R.dimen.qs_footer_icon_padding); + MarginLayoutParams lp = (MarginLayoutParams) mEditButton.getLayoutParams(); + lp.height = size; + lp.width = size; + mEditButton.setLayoutParams(lp); + mEditButton.setPadding(padding, padding, padding, padding); + } + + private void updateBuildTextResources() { + FontSizeUtils.updateFontSizeFromStyle(mBuildText, R.style.TextAppearance_QS_Status_Build); + } + private void updateFooterAnimator() { mFooterAnimator = createFooterAnimator(); } |