diff options
author | John Spurlock <jspurlock@google.com> | 2014-07-08 18:45:21 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-07-08 21:42:15 -0400 |
commit | 360e15bdd2efbd0f1693e335119e17c1a0f944fc (patch) | |
tree | 58d72329ecd95b0c0b1f445205616e633f431af6 /packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java | |
parent | a05e59d12b410638e97bc2d88c64442c47907fe3 (diff) | |
download | frameworks_base-360e15bdd2efbd0f1693e335119e17c1a0f944fc.zip frameworks_base-360e15bdd2efbd0f1693e335119e17c1a0f944fc.tar.gz frameworks_base-360e15bdd2efbd0f1693e335119e17c1a0f944fc.tar.bz2 |
QS: Signal tile optimizations.
- Only set visibility if changed (all tiles)
- Only animate traffic indicators if showing panel
Change-Id: I4ca750f65e1f1d36daeaf39668da4d2dc6f496d5
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java b/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java index d5fe033..d9447f7 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java @@ -42,15 +42,17 @@ public final class SignalTileView extends QSTileView { public SignalTileView(Context context) { super(context); - mIn = new ImageView(context); - mIn.setImageResource(R.drawable.ic_qs_signal_in); - mIn.setColorFilter(FILTER); - addView(mIn); + mIn = addTrafficView(R.drawable.ic_qs_signal_in); + mOut = addTrafficView(R.drawable.ic_qs_signal_out); + } - mOut = new ImageView(context); - mOut.setImageResource(R.drawable.ic_qs_signal_out); - mOut.setColorFilter(FILTER); - addView(mOut); + private ImageView addTrafficView(int icon) { + final ImageView traffic = new ImageView(mContext); + traffic.setImageResource(icon); + traffic.setColorFilter(FILTER); + traffic.setAlpha(0f); + addView(traffic); + return traffic; } @Override @@ -102,18 +104,22 @@ public final class SignalTileView extends QSTileView { } else { mOverlay.setVisibility(GONE); } - setVisibility(mIn, s.activityIn); - setVisibility(mOut, s.activityOut); + final boolean shown = isShown(); + setVisibility(mIn, shown, s.activityIn); + setVisibility(mOut, shown, s.activityOut); } - private void setVisibility(View view, boolean visible) { - final float newAlpha = visible ? 1 : 0; - if (view.getAlpha() != newAlpha) { + private void setVisibility(View view, boolean shown, boolean visible) { + final float newAlpha = shown && visible ? 1 : 0; + if (view.getAlpha() == newAlpha) return; + if (shown) { view.animate() .setDuration(visible ? SHORT_DURATION : DEFAULT_DURATION) .alpha(newAlpha) .withLayer() .start(); + } else { + view.setAlpha(newAlpha); } } }
\ No newline at end of file |