From e1f653350eed6320a995c58ab5393fa4f2c17b46 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Mon, 18 Aug 2014 15:37:59 -0400 Subject: [PATCH] QS: Enhance color inversion tile usage detection. - Detect all setting changes, not only when "listening". - Handle the case where the setting was turned on when SystemUI was not running. Bug:17107137 Change-Id: I7de098bdf52695166a8893461ba706bad05050bc --- .../systemui/qs/tiles/ColorInversionTile.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java index 21254d4a01824..edb5932f7ac27 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java @@ -29,6 +29,8 @@ public class ColorInversionTile extends QSTile { private final SecureSetting mSetting; private final UsageTracker mUsageTracker; + private boolean mListening; + public ColorInversionTile(Host host) { super(host); @@ -36,18 +38,25 @@ public class ColorInversionTile extends QSTile { Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) { @Override protected void handleValueChanged(int value) { - handleRefreshState(value); mUsageTracker.trackUsage(); + if (mListening) { + handleRefreshState(value); + } } }; mUsageTracker = new UsageTracker(host.getContext(), ColorInversionTile.class); + if (mSetting.getValue() != 0 && !mUsageTracker.isRecentlyUsed()) { + mUsageTracker.trackUsage(); + } mUsageTracker.setListening(true); + mSetting.setListening(true); } @Override protected void handleDestroy() { super.handleDestroy(); mUsageTracker.setListening(false); + mSetting.setListening(false); } @Override @@ -57,7 +66,7 @@ public class ColorInversionTile extends QSTile { @Override public void setListening(boolean listening) { - mSetting.setListening(listening); + mListening = listening; } @Override