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;
|
package com.android.systemui.qs;
|
||||||
|
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
@@ -24,27 +25,36 @@ import com.android.systemui.util.settings.SecureSettings;
|
|||||||
|
|
||||||
/** Helper for managing a secure setting. **/
|
/** Helper for managing a secure setting. **/
|
||||||
public abstract class SecureSetting extends ContentObserver implements Listenable {
|
public abstract class SecureSetting extends ContentObserver implements Listenable {
|
||||||
private static final int DEFAULT = 0;
|
private final SecureSettings mSecureSettings;
|
||||||
|
|
||||||
private SecureSettings mSecureSettings;
|
|
||||||
private final String mSettingName;
|
private final String mSettingName;
|
||||||
|
private final int mDefaultValue;
|
||||||
|
|
||||||
private boolean mListening;
|
private boolean mListening;
|
||||||
private int mUserId;
|
private int mUserId;
|
||||||
private int mObservedValue = DEFAULT;
|
private int mObservedValue;
|
||||||
|
|
||||||
protected abstract void handleValueChanged(int value, boolean observedChange);
|
protected abstract void handleValueChanged(int value, boolean observedChange);
|
||||||
|
|
||||||
public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName,
|
public SecureSetting(SecureSettings secureSettings, Handler handler, String settingName,
|
||||||
int userId) {
|
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);
|
super(handler);
|
||||||
mSecureSettings = secureSettings;
|
mSecureSettings = secureSettings;
|
||||||
mSettingName = settingName;
|
mSettingName = settingName;
|
||||||
|
mObservedValue = mDefaultValue = defaultValue;
|
||||||
mUserId = userId;
|
mUserId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValue() {
|
public int getValue() {
|
||||||
return mSecureSettings.getIntForUser(mSettingName, DEFAULT, mUserId);
|
return mSecureSettings.getIntForUser(mSettingName, mDefaultValue, mUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(int value) {
|
public void setValue(int value) {
|
||||||
@@ -61,7 +71,7 @@ public abstract class SecureSetting extends ContentObserver implements Listenabl
|
|||||||
mSecureSettings.getUriFor(mSettingName), false, this, mUserId);
|
mSecureSettings.getUriFor(mSettingName), false, this, mUserId);
|
||||||
} else {
|
} else {
|
||||||
mSecureSettings.unregisterContentObserver(this);
|
mSecureSettings.unregisterContentObserver(this);
|
||||||
mObservedValue = DEFAULT;
|
mObservedValue = mDefaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class SecureSettingTest : SysuiTestCase() {
|
|||||||
private const val TEST_SETTING = "setting"
|
private const val TEST_SETTING = "setting"
|
||||||
private const val USER = 0
|
private const val USER = 0
|
||||||
private const val OTHER_USER = 1
|
private const val OTHER_USER = 1
|
||||||
|
private const val DEFAULT_VALUE = 1
|
||||||
private val FAIL_CALLBACK: Callback = { _, _ -> fail("Callback should not be called") }
|
private val FAIL_CALLBACK: Callback = { _, _ -> fail("Callback should not be called") }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +60,8 @@ class SecureSettingTest : SysuiTestCase() {
|
|||||||
secureSettings,
|
secureSettings,
|
||||||
Handler(testableLooper.looper),
|
Handler(testableLooper.looper),
|
||||||
TEST_SETTING,
|
TEST_SETTING,
|
||||||
USER
|
USER,
|
||||||
|
DEFAULT_VALUE
|
||||||
) {
|
) {
|
||||||
override fun handleValueChanged(value: Int, observedChange: Boolean) {
|
override fun handleValueChanged(value: Int, observedChange: Boolean) {
|
||||||
callback(value, observedChange)
|
callback(value, observedChange)
|
||||||
@@ -150,4 +152,14 @@ class SecureSettingTest : SysuiTestCase() {
|
|||||||
|
|
||||||
assertThat(changed).isTrue()
|
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