Loading packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java +16 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs; import android.app.ActivityManager; import android.database.ContentObserver; import android.os.Handler; Loading @@ -24,27 +25,36 @@ import com.android.systemui.util.settings.SecureSettings; /** Helper for managing a secure setting. **/ public abstract class SecureSetting extends ContentObserver implements Listenable { private static final int DEFAULT = 0; private SecureSettings mSecureSettings; private final SecureSettings mSecureSettings; private final String mSettingName; private final int mDefaultValue; private boolean mListening; private int mUserId; private int mObservedValue = DEFAULT; private int mObservedValue; protected abstract void handleValueChanged(int value, boolean observedChange); public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName, int userId) { this(secureSettings, handler, settingName, userId, 0); } public SecureSetting(SecureSettings secureSetting, Handler handler, String settingName) { this(secureSetting, handler, settingName, ActivityManager.getCurrentUser()); } public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName, int userId, int defaultValue) { super(handler); mSecureSettings = secureSettings; mSettingName = settingName; mObservedValue = mDefaultValue = defaultValue; mUserId = userId; } public int getValue() { return mSecureSettings.getIntForUser(mSettingName, DEFAULT, mUserId); return mSecureSettings.getIntForUser(mSettingName, mDefaultValue, mUserId); } public void setValue(int value) { Loading @@ -61,7 +71,7 @@ public abstract class SecureSetting extends ContentObserver implements Listenabl mSecureSettings.getUriFor(mSettingName), false, this, mUserId); } else { mSecureSettings.unregisterContentObserver(this); mObservedValue = DEFAULT; mObservedValue = mDefaultValue; } } Loading packages/SystemUI/tests/src/com/android/systemui/qs/SecureSettingTest.kt +13 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ class SecureSettingTest : SysuiTestCase() { private const val TEST_SETTING = "setting" private const val USER = 0 private const val OTHER_USER = 1 private const val DEFAULT_VALUE = 1 private val FAIL_CALLBACK: Callback = { _, _ -> fail("Callback should not be called") } } Loading @@ -59,7 +60,8 @@ class SecureSettingTest : SysuiTestCase() { secureSettings, Handler(testableLooper.looper), TEST_SETTING, USER USER, DEFAULT_VALUE ) { override fun handleValueChanged(value: Int, observedChange: Boolean) { callback(value, observedChange) Loading Loading @@ -150,4 +152,14 @@ class SecureSettingTest : SysuiTestCase() { assertThat(changed).isTrue() } @Test fun testDefaultValue() { // Check default value before listening assertThat(setting.value).isEqualTo(DEFAULT_VALUE) // Check default value if setting is not set setting.isListening = true assertThat(setting.value).isEqualTo(DEFAULT_VALUE) } } No newline at end of file Loading
packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java +16 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs; import android.app.ActivityManager; import android.database.ContentObserver; import android.os.Handler; Loading @@ -24,27 +25,36 @@ import com.android.systemui.util.settings.SecureSettings; /** Helper for managing a secure setting. **/ public abstract class SecureSetting extends ContentObserver implements Listenable { private static final int DEFAULT = 0; private SecureSettings mSecureSettings; private final SecureSettings mSecureSettings; private final String mSettingName; private final int mDefaultValue; private boolean mListening; private int mUserId; private int mObservedValue = DEFAULT; private int mObservedValue; protected abstract void handleValueChanged(int value, boolean observedChange); public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName, int userId) { this(secureSettings, handler, settingName, userId, 0); } public SecureSetting(SecureSettings secureSetting, Handler handler, String settingName) { this(secureSetting, handler, settingName, ActivityManager.getCurrentUser()); } public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName, int userId, int defaultValue) { super(handler); mSecureSettings = secureSettings; mSettingName = settingName; mObservedValue = mDefaultValue = defaultValue; mUserId = userId; } public int getValue() { return mSecureSettings.getIntForUser(mSettingName, DEFAULT, mUserId); return mSecureSettings.getIntForUser(mSettingName, mDefaultValue, mUserId); } public void setValue(int value) { Loading @@ -61,7 +71,7 @@ public abstract class SecureSetting extends ContentObserver implements Listenabl mSecureSettings.getUriFor(mSettingName), false, this, mUserId); } else { mSecureSettings.unregisterContentObserver(this); mObservedValue = DEFAULT; mObservedValue = mDefaultValue; } } Loading
packages/SystemUI/tests/src/com/android/systemui/qs/SecureSettingTest.kt +13 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ class SecureSettingTest : SysuiTestCase() { private const val TEST_SETTING = "setting" private const val USER = 0 private const val OTHER_USER = 1 private const val DEFAULT_VALUE = 1 private val FAIL_CALLBACK: Callback = { _, _ -> fail("Callback should not be called") } } Loading @@ -59,7 +60,8 @@ class SecureSettingTest : SysuiTestCase() { secureSettings, Handler(testableLooper.looper), TEST_SETTING, USER USER, DEFAULT_VALUE ) { override fun handleValueChanged(value: Int, observedChange: Boolean) { callback(value, observedChange) Loading Loading @@ -150,4 +152,14 @@ class SecureSettingTest : SysuiTestCase() { assertThat(changed).isTrue() } @Test fun testDefaultValue() { // Check default value before listening assertThat(setting.value).isEqualTo(DEFAULT_VALUE) // Check default value if setting is not set setting.isListening = true assertThat(setting.value).isEqualTo(DEFAULT_VALUE) } } No newline at end of file