Merge "Fix catalyst settings test failure" into main
diff --git a/src/com/android/settings/display/AutoBrightnessScreen.kt b/src/com/android/settings/display/AutoBrightnessScreen.kt
index 2e8c708..0e682ff 100644
--- a/src/com/android/settings/display/AutoBrightnessScreen.kt
+++ b/src/com/android/settings/display/AutoBrightnessScreen.kt
@@ -37,6 +37,7 @@
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceRestrictionProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenBinding
import com.android.settingslib.preference.PreferenceScreenCreator
@@ -66,6 +67,9 @@
override fun storage(context: Context): KeyValueStore =
AutoBrightnessDataStore(SettingsSystemStore.get(context))
+ override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun isAvailable(context: Context) =
context.resources.getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available
diff --git a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt
index 5302fce..e60a4c7 100644
--- a/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt
+++ b/src/com/android/settings/display/PeakRefreshRateSwitchPreference.kt
@@ -33,6 +33,7 @@
import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.metadata.PreferenceLifecycleProvider
import com.android.settingslib.metadata.PreferenceSummaryProvider
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SwitchPreference
import kotlin.math.roundToInt
@@ -48,6 +49,9 @@
override fun storage(context: Context): KeyValueStore =
PeakRefreshRateStore(context, SettingsSystemStore.get(context))
+ override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun isAvailable(context: Context) =
context.resources.getBoolean(R.bool.config_show_smooth_display) &&
context.peakRefreshRate > DEFAULT_REFRESH_RATE
diff --git a/src/com/android/settings/display/darkmode/DarkModeScreen.kt b/src/com/android/settings/display/darkmode/DarkModeScreen.kt
index 263958c..1124b3a 100644
--- a/src/com/android/settings/display/darkmode/DarkModeScreen.kt
+++ b/src/com/android/settings/display/darkmode/DarkModeScreen.kt
@@ -36,6 +36,7 @@
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenBinding
import com.android.settingslib.preference.PreferenceScreenCreator
@@ -69,6 +70,9 @@
override val keywords: Int
get() = R.string.keywords_dark_ui_mode
+ override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun isFlagEnabled(context: Context) = Flags.catalystDarkUiMode()
override fun fragmentClass() = DarkModeSettingsFragment::class.java
diff --git a/src/com/android/settings/notification/CallVolumePreference.kt b/src/com/android/settings/notification/CallVolumePreference.kt
index 0126e13..3c14ae4 100644
--- a/src/com/android/settings/notification/CallVolumePreference.kt
+++ b/src/com/android/settings/notification/CallVolumePreference.kt
@@ -33,6 +33,7 @@
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceRestrictionProvider
import com.android.settingslib.metadata.RangeValue
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.preference.PreferenceBinding
// LINT.IfChange
@@ -82,6 +83,9 @@
}
}
+ override fun getWritePermit(context: Context, value: Int?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun getMinValue(context: Context) =
createAudioHelper(context).getMinVolume(getAudioStream(context))
diff --git a/src/com/android/settings/notification/MediaVolumePreference.kt b/src/com/android/settings/notification/MediaVolumePreference.kt
index 13fd029..acb8f8d 100644
--- a/src/com/android/settings/notification/MediaVolumePreference.kt
+++ b/src/com/android/settings/notification/MediaVolumePreference.kt
@@ -25,7 +25,13 @@
import com.android.settingslib.RestrictedLockUtilsInternal
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable
-import com.android.settingslib.metadata.*
+import com.android.settingslib.metadata.PersistentPreference
+import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.PreferenceIconProvider
+import com.android.settingslib.metadata.PreferenceMetadata
+import com.android.settingslib.metadata.PreferenceRestrictionProvider
+import com.android.settingslib.metadata.RangeValue
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.preference.PreferenceBinding
// LINT.IfChange
@@ -79,6 +85,9 @@
}
}
+ override fun getWritePermit(context: Context, value: Int?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun getMinValue(context: Context) =
createAudioHelper(context).getMinVolume(STREAM_MUSIC)
diff --git a/src/com/android/settings/notification/SeparateRingVolumePreference.kt b/src/com/android/settings/notification/SeparateRingVolumePreference.kt
index 2f696b1..6831daa 100644
--- a/src/com/android/settings/notification/SeparateRingVolumePreference.kt
+++ b/src/com/android/settings/notification/SeparateRingVolumePreference.kt
@@ -40,6 +40,7 @@
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceRestrictionProvider
import com.android.settingslib.metadata.RangeValue
+import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.preference.PreferenceBinding
// LINT.IfChange
@@ -94,6 +95,9 @@
}
}
+ override fun getWritePermit(context: Context, value: Int?, myUid: Int, callingUid: Int) =
+ ReadWritePermit.ALLOW
+
override fun getMinValue(context: Context) =
createAudioHelper(context).getMinVolume(STREAM_RING)
diff --git a/src/com/android/settings/notification/SoundScreen.kt b/src/com/android/settings/notification/SoundScreen.kt
index e074301..c0694b9 100644
--- a/src/com/android/settings/notification/SoundScreen.kt
+++ b/src/com/android/settings/notification/SoundScreen.kt
@@ -18,8 +18,11 @@
import android.content.Context
import androidx.fragment.app.Fragment
import com.android.settings.R
+import com.android.settings.Settings.SoundSettingsActivity
import com.android.settings.flags.Flags
+import com.android.settings.utils.makeLaunchIntent
import com.android.settingslib.metadata.PreferenceIconProvider
+import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
@@ -55,6 +58,9 @@
+DialPadTonePreference() order -50
}
+ override fun getLaunchIntent(context: Context, metadata: PreferenceMetadata?) =
+ makeLaunchIntent(context, SoundSettingsActivity::class.java, metadata?.key)
+
companion object {
const val KEY = "sound_screen"
}
diff --git a/tests/robotests/src/com/android/settings/display/AutoBrightnessScreenTest.kt b/tests/robotests/src/com/android/settings/display/AutoBrightnessScreenTest.kt
index 6dd9708..d05b258 100644
--- a/tests/robotests/src/com/android/settings/display/AutoBrightnessScreenTest.kt
+++ b/tests/robotests/src/com/android/settings/display/AutoBrightnessScreenTest.kt
@@ -15,7 +15,8 @@
*/
package com.android.settings.display
-import android.content.Context
+import android.content.ContextWrapper
+import android.content.res.Resources
import android.provider.Settings
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
@@ -23,26 +24,30 @@
import androidx.preference.PreferenceViewHolder
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.testutils.shadow.SettingsShadowResources
import com.android.settingslib.PrimarySwitchPreference
+import com.android.settingslib.preference.PreferenceDataStoreAdapter
import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
import com.android.settingslib.widget.theme.R
import com.google.common.truth.Truth.assertThat
-import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
-import org.robolectric.annotation.Config
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
// LINT.IfChange
@RunWith(AndroidJUnit4::class)
-@Config(shadows = [SettingsShadowResources::class])
-@Ignore("robolectric runtime")
class AutoBrightnessScreenTest {
- private val context: Context = ApplicationProvider.getApplicationContext()
-
private val preferenceScreenCreator = AutoBrightnessScreen()
+ private var mockResources: Resources? = null
+
+ private val context =
+ object : ContextWrapper(ApplicationProvider.getApplicationContext()) {
+ override fun getResources(): Resources = mockResources ?: super.getResources()
+ }
+
@Test
fun switchClick_defaultScreenBrightnessModeTurnOffAuto_returnTrue() {
setScreenBrightnessMode(SCREEN_BRIGHTNESS_MODE_MANUAL)
@@ -100,20 +105,14 @@
@Test
fun isAvailable_configTrueSet_shouldReturnTrue() {
- SettingsShadowResources.overrideResource(
- com.android.internal.R.bool.config_automatic_brightness_available,
- true,
- )
+ mockResources = mock { on { getBoolean(any()) } doReturn true }
assertThat(preferenceScreenCreator.isAvailable(context)).isTrue()
}
@Test
fun isAvailable_configFalseSet_shouldReturnFalse() {
- SettingsShadowResources.overrideResource(
- com.android.internal.R.bool.config_automatic_brightness_available,
- false,
- )
+ mockResources = mock { on { getBoolean(any()) } doReturn false }
assertThat(preferenceScreenCreator.isAvailable(context)).isFalse()
}
@@ -121,6 +120,7 @@
private fun getPrimarySwitchPreference(): PrimarySwitchPreference =
preferenceScreenCreator.run {
val preference = createWidget(context)
+ preference.preferenceDataStore = PreferenceDataStoreAdapter(storage(context))
bind(preference, this)
val holder =
PreferenceViewHolder.createInstanceForTests(