Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21cb6875 authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Update resources on views in QSFooterImpl

Test: manual, change density
Fixes: 319585460
Flag: NONE
Change-Id: I657b0dca4559e70f280ebf55fa0a5a10483754cd
parent 68eda146
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+33 −3
Original line number Diff line number Diff line
@@ -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()) {
+21 −0
Original line number Diff line number Diff line
@@ -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();
    }