Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public class QSIconViewImpl extends QSIconView { if (iv instanceof SlashImageView) { ((SlashImageView) iv).setAnimationEnabled(shouldAnimate); ((SlashImageView) iv).setState(state.slash, d); ((SlashImageView) iv).setState(null, d); } else { iv.setImageDrawable(d); } Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java +57 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,12 @@ */ package com.android.systemui.qs.tileimpl; import static com.android.systemui.qs.tileimpl.QSIconViewImpl.QS_ANIM_LENGTH; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.graphics.drawable.RippleDrawable; Loading @@ -22,16 +27,21 @@ import android.os.Looper; import android.os.Message; import android.service.quicksettings.Tile; import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.Switch; import com.android.settingslib.Utils; import com.android.systemui.R; import com.android.systemui.plugins.qs.*; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.BooleanState; public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { Loading @@ -47,6 +57,12 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { private boolean mCollapsedView; private boolean mClicked; private final ImageView mBg; private final int mColorActive; private final int mColorInactive; private final int mColorDisabled; private int mCircleColor; public QSTileBaseView(Context context, QSIconView icon) { this(context, icon, false); } Loading @@ -60,6 +76,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { mIconFrame.setForegroundGravity(Gravity.CENTER); int size = context.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size); addView(mIconFrame, new LayoutParams(size, size)); mBg = new ImageView(getContext()); mBg.setScaleType(ScaleType.FIT_CENTER); mBg.setImageResource(R.drawable.ic_qs_circle); mIconFrame.addView(mBg); mIcon = icon; FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); Loading @@ -73,6 +93,11 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); setBackground(mTileBackground); mColorActive = Utils.getColorAttr(context, android.R.attr.colorAccent); mColorDisabled = Utils.getDisabled(context, Utils.getColorAttr(context, android.R.attr.textColorTertiary)); mColorInactive = Utils.getColorAttr(context, android.R.attr.textColorSecondary); setPadding(0, 0, 0, 0); setClipChildren(false); setClipToPadding(false); Loading @@ -80,6 +105,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setFocusable(true); } public View getBgCicle() { return mBg; } protected Drawable newTileBackground() { final int[] attrs = new int[]{android.R.attr.selectableItemBackgroundBorderless}; final TypedArray ta = getContext().obtainStyledAttributes(attrs); Loading Loading @@ -150,6 +179,20 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { } protected void handleStateChanged(QSTile.State state) { int circleColor = getCircleColor(state.state); if (circleColor != mCircleColor) { if (mBg.isShown()) { ValueAnimator animator = ValueAnimator.ofArgb(mCircleColor, circleColor) .setDuration(QS_ANIM_LENGTH); animator.addUpdateListener(animation -> mBg.setImageTintList(ColorStateList.valueOf( (Integer) animation.getAnimatedValue()))); animator.start(); } else { QSIconViewImpl.setTint(mBg, circleColor); } mCircleColor = circleColor; } setClickable(state.state != Tile.STATE_UNAVAILABLE); mIcon.setIcon(state); setContentDescription(state.contentDescription); Loading @@ -163,6 +206,19 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { } } private int getCircleColor(int state) { switch (state) { case Tile.STATE_ACTIVE: return mColorActive; case Tile.STATE_INACTIVE: case Tile.STATE_UNAVAILABLE: return mColorDisabled; default: Log.e(TAG, "Invalid state " + state); return 0; } } @Override public void setClickable(boolean clickable) { super.setClickable(clickable); Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +3 −3 Original line number Diff line number Diff line Loading @@ -373,11 +373,11 @@ public abstract class QSTileImpl<TState extends State> implements QSTile { switch (state) { case Tile.STATE_UNAVAILABLE: return Utils.getDisabled(context, Utils.getColorAttr(context, android.R.attr.colorForeground)); Utils.getColorAttr(context, android.R.attr.textColorSecondary)); case Tile.STATE_INACTIVE: return Utils.getColorAttr(context, android.R.attr.textColorHint); return Utils.getColorAttr(context, android.R.attr.textColorSecondary); case Tile.STATE_ACTIVE: return Utils.getColorAttr(context, android.R.attr.textColorPrimary); return Utils.getColorAttr(context, android.R.attr.colorPrimary); default: Log.e("QSTile", "Invalid state " + state); return 0; Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public class QSIconViewImpl extends QSIconView { if (iv instanceof SlashImageView) { ((SlashImageView) iv).setAnimationEnabled(shouldAnimate); ((SlashImageView) iv).setState(state.slash, d); ((SlashImageView) iv).setState(null, d); } else { iv.setImageDrawable(d); } Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java +57 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,12 @@ */ package com.android.systemui.qs.tileimpl; import static com.android.systemui.qs.tileimpl.QSIconViewImpl.QS_ANIM_LENGTH; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.graphics.drawable.RippleDrawable; Loading @@ -22,16 +27,21 @@ import android.os.Looper; import android.os.Message; import android.service.quicksettings.Tile; import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.Switch; import com.android.settingslib.Utils; import com.android.systemui.R; import com.android.systemui.plugins.qs.*; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.BooleanState; public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { Loading @@ -47,6 +57,12 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { private boolean mCollapsedView; private boolean mClicked; private final ImageView mBg; private final int mColorActive; private final int mColorInactive; private final int mColorDisabled; private int mCircleColor; public QSTileBaseView(Context context, QSIconView icon) { this(context, icon, false); } Loading @@ -60,6 +76,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { mIconFrame.setForegroundGravity(Gravity.CENTER); int size = context.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size); addView(mIconFrame, new LayoutParams(size, size)); mBg = new ImageView(getContext()); mBg.setScaleType(ScaleType.FIT_CENTER); mBg.setImageResource(R.drawable.ic_qs_circle); mIconFrame.addView(mBg); mIcon = icon; FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); Loading @@ -73,6 +93,11 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); setBackground(mTileBackground); mColorActive = Utils.getColorAttr(context, android.R.attr.colorAccent); mColorDisabled = Utils.getDisabled(context, Utils.getColorAttr(context, android.R.attr.textColorTertiary)); mColorInactive = Utils.getColorAttr(context, android.R.attr.textColorSecondary); setPadding(0, 0, 0, 0); setClipChildren(false); setClipToPadding(false); Loading @@ -80,6 +105,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setFocusable(true); } public View getBgCicle() { return mBg; } protected Drawable newTileBackground() { final int[] attrs = new int[]{android.R.attr.selectableItemBackgroundBorderless}; final TypedArray ta = getContext().obtainStyledAttributes(attrs); Loading Loading @@ -150,6 +179,20 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { } protected void handleStateChanged(QSTile.State state) { int circleColor = getCircleColor(state.state); if (circleColor != mCircleColor) { if (mBg.isShown()) { ValueAnimator animator = ValueAnimator.ofArgb(mCircleColor, circleColor) .setDuration(QS_ANIM_LENGTH); animator.addUpdateListener(animation -> mBg.setImageTintList(ColorStateList.valueOf( (Integer) animation.getAnimatedValue()))); animator.start(); } else { QSIconViewImpl.setTint(mBg, circleColor); } mCircleColor = circleColor; } setClickable(state.state != Tile.STATE_UNAVAILABLE); mIcon.setIcon(state); setContentDescription(state.contentDescription); Loading @@ -163,6 +206,19 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { } } private int getCircleColor(int state) { switch (state) { case Tile.STATE_ACTIVE: return mColorActive; case Tile.STATE_INACTIVE: case Tile.STATE_UNAVAILABLE: return mColorDisabled; default: Log.e(TAG, "Invalid state " + state); return 0; } } @Override public void setClickable(boolean clickable) { super.setClickable(clickable); Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java +3 −3 Original line number Diff line number Diff line Loading @@ -373,11 +373,11 @@ public abstract class QSTileImpl<TState extends State> implements QSTile { switch (state) { case Tile.STATE_UNAVAILABLE: return Utils.getDisabled(context, Utils.getColorAttr(context, android.R.attr.colorForeground)); Utils.getColorAttr(context, android.R.attr.textColorSecondary)); case Tile.STATE_INACTIVE: return Utils.getColorAttr(context, android.R.attr.textColorHint); return Utils.getColorAttr(context, android.R.attr.textColorSecondary); case Tile.STATE_ACTIVE: return Utils.getColorAttr(context, android.R.attr.textColorPrimary); return Utils.getColorAttr(context, android.R.attr.colorPrimary); default: Log.e("QSTile", "Invalid state " + state); return 0; Loading