Merge "SystemUI: SecureSetting: Allow specifying a non-zero default" into sc-dev
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.database.ContentObserver;
|
||||
import android.os.Handler;
|
||||
|
||||
@@ -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) {
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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") }
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user