diff options
7 files changed, 52 insertions, 144 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractor.kt index 29564326481f..90a05ef99586 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/SeenNotificationsInteractor.kt @@ -109,7 +109,7 @@ constructor( .map { secureSettings.getIntForUser( name = Settings.Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, - default = 0, + def = 0, userHandle = UserHandle.USER_CURRENT, ) == 1 } diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt index 9125a915b2a3..b5934ec680d3 100644 --- a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt +++ b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt @@ -336,7 +336,7 @@ interface SettingsProxy { * @param name to look up in the table * @return the corresponding value, or null if not present */ - fun getString(name: String): String? + fun getString(name: String): String /** * Store a name/value pair into the database. @@ -385,15 +385,15 @@ interface SettingsProxy { * an integer. * * @param name The name of the setting to retrieve. - * @param default Value to return if the setting is not defined. - * @return The setting's current value, or default if it is not defined or not a valid integer. + * @param def Value to return if the setting is not defined. + * @return The setting's current value, or 'def' if it is not defined or not a valid integer. */ - fun getInt(name: String, default: Int): Int { + fun getInt(name: String, def: Int): Int { val v = getString(name) return try { - v?.toInt() ?: default + v.toInt() } catch (e: NumberFormatException) { - default + def } } @@ -412,7 +412,7 @@ interface SettingsProxy { */ @Throws(SettingNotFoundException::class) fun getInt(name: String): Int { - val v = getString(name) ?: throw SettingNotFoundException(name) + val v = getString(name) return try { v.toInt() } catch (e: NumberFormatException) { @@ -441,11 +441,11 @@ interface SettingsProxy { * boolean. * * @param name The name of the setting to retrieve. - * @param default Value to return if the setting is not defined. - * @return The setting's current value, or default if it is not defined or not a valid boolean. + * @param def Value to return if the setting is not defined. + * @return The setting's current value, or 'def' if it is not defined or not a valid boolean. */ - fun getBool(name: String, default: Boolean): Boolean { - return getInt(name, if (default) 1 else 0) != 0 + fun getBool(name: String, def: Boolean): Boolean { + return getInt(name, if (def) 1 else 0) != 0 } /** @@ -579,12 +579,13 @@ interface SettingsProxy { companion object { /** Convert a string to a long, or uses a default if the string is malformed or null */ @JvmStatic - fun parseLongOrUseDefault(valString: String?, default: Long): Long { - val value: Long = + fun parseLongOrUseDefault(valString: String, def: Long): Long { + val value: Long + value = try { - valString?.toLong() ?: default + valString.toLong() } catch (e: NumberFormatException) { - default + def } return value } diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt b/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt index ac7c1ce77c9e..848a6e691082 100644 --- a/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt +++ b/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt @@ -354,12 +354,12 @@ interface UserSettingsProxy : SettingsProxy { * @param name to look up in the table * @return the corresponding value, or null if not present */ - override fun getString(name: String): String? { + override fun getString(name: String): String { return getStringForUser(name, userId) } /** See [getString]. */ - fun getStringForUser(name: String, userHandle: Int): String? + fun getStringForUser(name: String, userHandle: Int): String /** * Store a name/value pair into the database. Values written by this method will be overridden @@ -388,17 +388,17 @@ interface UserSettingsProxy : SettingsProxy { overrideableByRestore: Boolean ): Boolean - override fun getInt(name: String, default: Int): Int { - return getIntForUser(name, default, userId) + override fun getInt(name: String, def: Int): Int { + return getIntForUser(name, def, userId) } /** Similar implementation to [getInt] for the specified [userHandle]. */ - fun getIntForUser(name: String, default: Int, userHandle: Int): Int { + fun getIntForUser(name: String, def: Int, userHandle: Int): Int { val v = getStringForUser(name, userHandle) return try { - v?.toInt() ?: default + v.toInt() } catch (e: NumberFormatException) { - default + def } } @@ -408,7 +408,7 @@ interface UserSettingsProxy : SettingsProxy { /** Similar implementation to [getInt] for the specified [userHandle]. */ @Throws(SettingNotFoundException::class) fun getIntForUser(name: String, userHandle: Int): Int { - val v = getStringForUser(name, userHandle) ?: throw SettingNotFoundException(name) + val v = getStringForUser(name, userHandle) return try { v.toInt() } catch (e: NumberFormatException) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt index b0acd0386870..5ac61102fa99 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt @@ -275,18 +275,6 @@ class SettingsProxyTest : SysuiTestCase() { } @Test - fun getInt_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getInt(TEST_SETTING, 5)).isEqualTo(5) - } - - @Test - fun getInt_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getInt(TEST_SETTING) } - } - - @Test fun getBool_keyPresent_returnValidValue() { mSettings.putBool(TEST_SETTING, true) assertThat(mSettings.getBool(TEST_SETTING)).isTrue() @@ -335,18 +323,6 @@ class SettingsProxyTest : SysuiTestCase() { } @Test - fun getLong_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getLong(TEST_SETTING) } - } - - @Test - fun getLong_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getLong(TEST_SETTING, 2L)).isEqualTo(2L) - } - - @Test fun getFloat_keyPresent_returnValidValue() { mSettings.putFloat(TEST_SETTING, 2.5F) assertThat(mSettings.getFloat(TEST_SETTING)).isEqualTo(2.5F) @@ -370,18 +346,6 @@ class SettingsProxyTest : SysuiTestCase() { assertThat(mSettings.getFloat(TEST_SETTING, 2.5F)).isEqualTo(2.5F) } - @Test - fun getFloat_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getFloat(TEST_SETTING) } - } - - @Test - fun getFloat_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getFloat(TEST_SETTING, 2.5F)).isEqualTo(2.5F) - } - private class FakeSettingsProxy(val testDispatcher: CoroutineDispatcher) : SettingsProxy { private val mContentResolver = mock(ContentResolver::class.java) diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt index ead9939c1dd7..5f7420d5a16b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt @@ -23,7 +23,6 @@ import android.net.Uri import android.os.Handler import android.os.Looper import android.provider.Settings -import android.provider.Settings.SettingNotFoundException import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest @@ -434,18 +433,6 @@ class UserSettingsProxyTest : SysuiTestCase() { } @Test - fun getInt_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getInt(TEST_SETTING, 5)).isEqualTo(5) - } - - @Test - fun getInt_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getInt(TEST_SETTING) } - } - - @Test fun getIntForUser_multipleUsers__validResult() { mSettings.putIntForUser(TEST_SETTING, 1, MAIN_USER_ID) mSettings.putIntForUser(TEST_SETTING, 2, SECONDARY_USER_ID) @@ -514,18 +501,6 @@ class UserSettingsProxyTest : SysuiTestCase() { } @Test - fun getLong_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getLong(TEST_SETTING) } - } - - @Test - fun getLong_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getLong(TEST_SETTING, 2L)).isEqualTo(2L) - } - - @Test fun getLongForUser_multipleUsers__validResult() { mSettings.putLongForUser(TEST_SETTING, 1L, MAIN_USER_ID) mSettings.putLongForUser(TEST_SETTING, 2L, SECONDARY_USER_ID) @@ -560,18 +535,6 @@ class UserSettingsProxyTest : SysuiTestCase() { } @Test - fun getFloat_keyMalformed_throwException() { - mSettings.putString(TEST_SETTING, "nan") - assertThrows(SettingNotFoundException::class.java) { mSettings.getFloat(TEST_SETTING) } - } - - @Test - fun getFloat_keyMalformed_returnDefaultValue() { - mSettings.putString(TEST_SETTING, "nan") - assertThat(mSettings.getFloat(TEST_SETTING, 2.5F)).isEqualTo(2.5F) - } - - @Test fun getFloatForUser_multipleUsers__validResult() { mSettings.putFloatForUser(TEST_SETTING, 1F, MAIN_USER_ID) mSettings.putFloatForUser(TEST_SETTING, 2F, SECONDARY_USER_ID) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java index 609d099116cc..476b7d8376c8 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java @@ -46,7 +46,6 @@ public class FakeGlobalSettings implements GlobalSettings { mDispatcher = dispatcher; } - @NonNull @Override public ContentResolver getContentResolver() { throw new UnsupportedOperationException( @@ -54,7 +53,6 @@ public class FakeGlobalSettings implements GlobalSettings { + "GlobalSettings.registerContentObserver helpful instead."); } - @NonNull @Override public CoroutineDispatcher getBackgroundDispatcher() { return mDispatcher; @@ -62,7 +60,7 @@ public class FakeGlobalSettings implements GlobalSettings { @Override public void registerContentObserverSync(Uri uri, boolean notifyDescendants, - @NonNull ContentObserver settingsObserver) { + ContentObserver settingsObserver) { List<ContentObserver> observers; mContentObserversAllUsers.putIfAbsent(uri.toString(), new ArrayList<>()); observers = mContentObserversAllUsers.get(uri.toString()); @@ -70,26 +68,25 @@ public class FakeGlobalSettings implements GlobalSettings { } @Override - public void unregisterContentObserverSync(@NonNull ContentObserver settingsObserver) { + public void unregisterContentObserverSync(ContentObserver settingsObserver) { for (Map.Entry<String, List<ContentObserver>> entry : mContentObserversAllUsers.entrySet()) { entry.getValue().remove(settingsObserver); } } - @NonNull @Override - public Uri getUriFor(@NonNull String name) { + public Uri getUriFor(String name) { return Uri.withAppendedPath(CONTENT_URI, name); } @Override - public String getString(@NonNull String name) { + public String getString(String name) { return mValues.get(getUriFor(name).toString()); } @Override - public boolean putString(@NonNull String name, @NonNull String value) { + public boolean putString(String name, String value) { return putString(name, value, null, false); } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java index f9555339b33f..e35da11ff034 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java @@ -26,9 +26,7 @@ import android.os.UserHandle; import android.util.Pair; import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import com.android.systemui.settings.FakeUserTracker; import com.android.systemui.settings.UserTracker; import kotlinx.coroutines.CoroutineDispatcher; @@ -44,7 +42,6 @@ public class FakeSettings implements SecureSettings, SystemSettings { new HashMap<>(); private final Map<String, List<ContentObserver>> mContentObserversAllUsers = new HashMap<>(); private final CoroutineDispatcher mDispatcher; - private final UserTracker mUserTracker; public static final Uri CONTENT_URI = Uri.parse("content://settings/fake"); @UserIdInt @@ -52,55 +49,42 @@ public class FakeSettings implements SecureSettings, SystemSettings { public FakeSettings() { mDispatcher = StandardTestDispatcher(/* scheduler = */ null, /* name = */ null); - mUserTracker = new FakeUserTracker(); } public FakeSettings(CoroutineDispatcher dispatcher) { mDispatcher = dispatcher; - mUserTracker = new FakeUserTracker(); } - public FakeSettings(CoroutineDispatcher dispatcher, UserTracker userTracker) { - mDispatcher = dispatcher; - mUserTracker = userTracker; - } - - @VisibleForTesting - FakeSettings(String initialKey, String initialValue) { - this(); + public FakeSettings(String initialKey, String initialValue) { + mDispatcher = StandardTestDispatcher(/* scheduler = */ null, /* name = */ null); putString(initialKey, initialValue); } - @VisibleForTesting - FakeSettings(Map<String, String> initialValues) { - this(); + public FakeSettings(Map<String, String> initialValues) { + mDispatcher = StandardTestDispatcher(/* scheduler = */ null, /* name = */ null); for (Map.Entry<String, String> kv : initialValues.entrySet()) { putString(kv.getKey(), kv.getValue()); } } @Override - @NonNull public ContentResolver getContentResolver() { - throw new UnsupportedOperationException( - "FakeSettings.getContentResolver is not implemented"); + return null; } - @NonNull @Override public UserTracker getUserTracker() { - return mUserTracker; + return null; } - @NonNull @Override public CoroutineDispatcher getBackgroundDispatcher() { return mDispatcher; } @Override - public void registerContentObserverForUserSync(@NonNull Uri uri, boolean notifyDescendants, - @NonNull ContentObserver settingsObserver, int userHandle) { + public void registerContentObserverForUserSync(Uri uri, boolean notifyDescendants, + ContentObserver settingsObserver, int userHandle) { List<ContentObserver> observers; if (userHandle == UserHandle.USER_ALL) { mContentObserversAllUsers.putIfAbsent(uri.toString(), new ArrayList<>()); @@ -114,18 +98,19 @@ public class FakeSettings implements SecureSettings, SystemSettings { } @Override - public void unregisterContentObserverSync(@NonNull ContentObserver settingsObserver) { - for (List<ContentObserver> observers : mContentObservers.values()) { + public void unregisterContentObserverSync(ContentObserver settingsObserver) { + for (SettingsKey key : mContentObservers.keySet()) { + List<ContentObserver> observers = mContentObservers.get(key); observers.remove(settingsObserver); } - for (List<ContentObserver> observers : mContentObserversAllUsers.values()) { + for (String key : mContentObserversAllUsers.keySet()) { + List<ContentObserver> observers = mContentObserversAllUsers.get(key); observers.remove(settingsObserver); } } - @NonNull @Override - public Uri getUriFor(@NonNull String name) { + public Uri getUriFor(String name) { return Uri.withAppendedPath(CONTENT_URI, name); } @@ -139,34 +124,33 @@ public class FakeSettings implements SecureSettings, SystemSettings { } @Override - public String getString(@NonNull String name) { + public String getString(String name) { return getStringForUser(name, getUserId()); } @Override - public String getStringForUser(@NonNull String name, int userHandle) { + public String getStringForUser(String name, int userHandle) { return mValues.get(new SettingsKey(userHandle, getUriFor(name).toString())); } @Override - public boolean putString(@NonNull String name, @NonNull String value, - boolean overrideableByRestore) { + public boolean putString(String name, String value, boolean overrideableByRestore) { return putStringForUser(name, value, null, false, getUserId(), overrideableByRestore); } @Override - public boolean putString(@NonNull String name, @NonNull String value) { + public boolean putString(String name, String value) { return putString(name, value, false); } @Override - public boolean putStringForUser(@NonNull String name, @NonNull String value, int userHandle) { + public boolean putStringForUser(String name, String value, int userHandle) { return putStringForUser(name, value, null, false, userHandle, false); } @Override - public boolean putStringForUser(@NonNull String name, @NonNull String value, String tag, - boolean makeDefault, int userHandle, boolean overrideableByRestore) { + public boolean putStringForUser(String name, String value, String tag, boolean makeDefault, + int userHandle, boolean overrideableByRestore) { SettingsKey key = new SettingsKey(userHandle, getUriFor(name).toString()); mValues.put(key, value); @@ -182,8 +166,7 @@ public class FakeSettings implements SecureSettings, SystemSettings { } @Override - public boolean putString(@NonNull String name, @NonNull String value, @NonNull String tag, - boolean makeDefault) { + public boolean putString(@NonNull String name, String value, String tag, boolean makeDefault) { return putString(name, value); } |