From 6fe2f89f7c67430d7b865b1761a0fad645393bc5 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Mon, 23 Sep 2024 10:40:03 +0800 Subject: [PATCH 1/3] Migrate "Baseband version" preference Bug: 365886251 Flag: com.android.settings.flags.catalyst_firmware_version Test: Unit Change-Id: I8e4f946d01169e8008b8a336d308f5874ee918e6 --- .../BasebandVersionPreference.kt | 57 ++++++++++++++++++ .../BasebandVersionPreferenceController.java | 2 + .../firmwareversion/FirmwareVersionScreen.kt | 2 +- tests/robotests/Android.bp | 3 + ...sebandVersionPreferenceControllerTest.java | 2 + .../BasebandVersionPreferenceTest.kt | 60 +++++++++++++++++++ 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreference.kt create mode 100644 tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceTest.kt diff --git a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreference.kt b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreference.kt new file mode 100644 index 00000000000..fb27dd814c8 --- /dev/null +++ b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreference.kt @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import android.os.SystemProperties +import androidx.preference.Preference +import com.android.settings.R +import com.android.settings.Utils +import com.android.settingslib.metadata.PreferenceAvailabilityProvider +import com.android.settingslib.metadata.PreferenceMetadata +import com.android.settingslib.metadata.PreferenceSummaryProvider +import com.android.settingslib.preference.PreferenceBinding + +// LINT.IfChange +class BasebandVersionPreference : + PreferenceMetadata, + PreferenceSummaryProvider, + PreferenceAvailabilityProvider, + PreferenceBinding { + + override val key: String + get() = "base_band" + + override val title: Int + get() = R.string.baseband_version + + override fun getSummary(context: Context): CharSequence? = + SystemProperties.get(BASEBAND_PROPERTY, context.getString(R.string.device_info_default)) + + override fun isAvailable(context: Context) = !Utils.isWifiOnly(context) + + override fun bind(preference: Preference, metadata: PreferenceMetadata) { + super.bind(preference, metadata) + preference.isSelectable = false + preference.isCopyingEnabled = true + } + + companion object { + const val BASEBAND_PROPERTY: String = "gsm.version.baseband" + } +} +// LINT.ThenChange(BasebandVersionPreferenceController.java) diff --git a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java index dd3d560282a..235638433be 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java @@ -25,6 +25,7 @@ import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.BasePreferenceController; +// LINT.IfChange public class BasebandVersionPreferenceController extends BasePreferenceController { @VisibleForTesting @@ -45,3 +46,4 @@ public class BasebandVersionPreferenceController extends BasePreferenceControlle mContext.getString(R.string.device_info_default)); } } +// LINT.ThenChange(BasebandVersionPreference.kt) diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt index 58fdefe6e4a..3b70e72ae47 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt @@ -50,7 +50,7 @@ class FirmwareVersionScreen : PreferenceScreenCreator, PreferenceSummaryProvider +PreferenceWidget("os_firmware_version", R.string.firmware_version) +PreferenceWidget("security_key", R.string.security_patch) +PreferenceWidget("module_version", R.string.module_version) - +PreferenceWidget("base_band", R.string.baseband_version) + +BasebandVersionPreference() +PreferenceWidget("kernel_version", R.string.kernel_version) +PreferenceWidget("os_build_number", R.string.build_number) } diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp index 3fd430610d3..60a68033c95 100644 --- a/tests/robotests/Android.bp +++ b/tests/robotests/Android.bp @@ -69,6 +69,9 @@ android_robolectric_test { "com_android_server_accessibility_flags_lib", "flag-junit", "flag-junit-base", + "kotlin-test", + "mockito-robolectric-prebuilt", // mockito deps order matters! + "mockito-kotlin2", "notification_flags_lib", "platform-test-annotations", "testables", diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java index 87fdb222c42..5d7e82e98eb 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceControllerTest.java @@ -38,6 +38,7 @@ import org.robolectric.RuntimeEnvironment; import java.util.Arrays; +// LINT.IfChange @RunWith(RobolectricTestRunner.class) public class BasebandVersionPreferenceControllerTest { @Mock @@ -68,3 +69,4 @@ public class BasebandVersionPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } } +// LINT.ThenChange(BasebandVersionPreferenceTest.kt) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceTest.kt b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceTest.kt new file mode 100644 index 00000000000..27220380712 --- /dev/null +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceTest.kt @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import android.content.ContextWrapper +import android.sysprop.TelephonyProperties +import android.telephony.TelephonyManager +import androidx.test.core.app.ApplicationProvider +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.kotlin.doReturn +import org.mockito.kotlin.mock +import org.robolectric.RobolectricTestRunner + +// LINT.IfChange +@RunWith(RobolectricTestRunner::class) +class BasebandVersionPreferenceTest { + private lateinit var telephonyManager: TelephonyManager + + private val context: Context = + object : ContextWrapper(ApplicationProvider.getApplicationContext()) { + override fun getSystemService(name: String): Any? = + when { + name == getSystemServiceName(TelephonyManager::class.java) -> telephonyManager + else -> super.getSystemService(name) + } + } + + private val basebandVersionPreference = BasebandVersionPreference() + + @Test + fun isAvailable_wifiOnly_unavailable() { + telephonyManager = mock { on { isDataCapable } doReturn false } + assertThat(basebandVersionPreference.isAvailable(context)).isFalse() + } + + @Test + fun isAvailable_hasMobile_available() { + TelephonyProperties.baseband_version(listOf("test")) + telephonyManager = mock { on { isDataCapable } doReturn true } + assertThat(basebandVersionPreference.isAvailable(context)).isTrue() + } +} +// LINT.ThenChange(BasebandVersionPreferenceControllerTest.java) From fb349fad1a62128f689efe6f7cb451678cfa2864 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Mon, 23 Sep 2024 11:34:25 +0800 Subject: [PATCH 2/3] Migrate "Kernel version" preference Bug: 365886251 Flag: com.android.settings.flags.catalyst_firmware_version Test: Unit Change-Id: Icb50e2d5200f7de40b6f8383c114982cd45d34b5 --- .../firmwareversion/FirmwareVersionScreen.kt | 2 +- .../KernelVersionPreference.kt | 45 +++++++++++++++++++ .../KernelVersionPreferenceController.java | 2 + ...KernelVersionPreferenceControllerTest.java | 2 + .../KernelVersionPreferenceTest.kt | 40 +++++++++++++++++ 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreference.kt create mode 100644 tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceTest.kt diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt index 3b70e72ae47..401cd16c03e 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt @@ -51,7 +51,7 @@ class FirmwareVersionScreen : PreferenceScreenCreator, PreferenceSummaryProvider +PreferenceWidget("security_key", R.string.security_patch) +PreferenceWidget("module_version", R.string.module_version) +BasebandVersionPreference() - +PreferenceWidget("kernel_version", R.string.kernel_version) + +KernelVersionPreference() +PreferenceWidget("os_build_number", R.string.build_number) } diff --git a/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreference.kt b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreference.kt new file mode 100644 index 00000000000..789117852b5 --- /dev/null +++ b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreference.kt @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import androidx.preference.Preference +import com.android.settings.R +import com.android.settingslib.DeviceInfoUtils +import com.android.settingslib.metadata.PreferenceMetadata +import com.android.settingslib.metadata.PreferenceSummaryProvider +import com.android.settingslib.preference.PreferenceBinding + +// LINT.IfChange +class KernelVersionPreference : PreferenceMetadata, PreferenceSummaryProvider, PreferenceBinding { + + override val key: String + get() = "kernel_version" + + override val title: Int + get() = R.string.kernel_version + + override fun getSummary(context: Context): CharSequence? = + DeviceInfoUtils.getFormattedKernelVersion(context) + + override fun bind(preference: Preference, metadata: PreferenceMetadata) { + super.bind(preference, metadata) + preference.isSelectable = false + preference.isCopyingEnabled = true + } +} +// LINT.ThenChange(KernelVersionPreferenceController.java) diff --git a/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceController.java index 0500c89371a..7a3bdafb5e7 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceController.java @@ -21,6 +21,7 @@ import android.content.Context; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.DeviceInfoUtils; +// LINT.IfChange public class KernelVersionPreferenceController extends BasePreferenceController { public KernelVersionPreferenceController(Context context, String preferenceKey) { @@ -37,3 +38,4 @@ public class KernelVersionPreferenceController extends BasePreferenceController return DeviceInfoUtils.getFormattedKernelVersion(mContext); } } +// LINT.ThenChange(KernelVersionPreference.kt) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceControllerTest.java index 9ee0bb32d99..145940608a9 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceControllerTest.java @@ -29,6 +29,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +// LINT.IfChange @RunWith(RobolectricTestRunner.class) public class KernelVersionPreferenceControllerTest { @@ -49,3 +50,4 @@ public class KernelVersionPreferenceControllerTest { DeviceInfoUtils.getFormattedKernelVersion(mContext)); } } +// LINT.ThenChange(KernelVersionPreferenceTest.kt) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceTest.kt b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceTest.kt new file mode 100644 index 00000000000..162fc15eca5 --- /dev/null +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/KernelVersionPreferenceTest.kt @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import androidx.test.core.app.ApplicationProvider +import com.android.settingslib.DeviceInfoUtils +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +// LINT.IfChange +@RunWith(RobolectricTestRunner::class) +class KernelVersionPreferenceTest { + private val context: Context = ApplicationProvider.getApplicationContext() + + private val kernelVersionPreference = KernelVersionPreference() + + @Test + fun getSummary() { + assertThat(kernelVersionPreference.getSummary(context)) + .isEqualTo(DeviceInfoUtils.getFormattedKernelVersion(context)) + } +} +// LINT.ThenChange(KernelVersionPreferenceControllerTest.java) From 9cbb04c5e055d59982f29eed5b56c399215e7982 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Mon, 23 Sep 2024 11:56:43 +0800 Subject: [PATCH 3/3] Migrate "Build number" preference Bug: 365886251 Flag: com.android.settings.flags.catalyst_firmware_version Test: Unit Change-Id: Iee68b5414713118ad3d1b9b3ec04437729bb2d0b --- .../firmwareversion/FirmwareVersionScreen.kt | 2 +- .../SimpleBuildNumberPreference.kt | 52 ++++++++++++++++++ ...SimpleBuildNumberPreferenceController.java | 2 + ...leBuildNumberPreferenceControllerTest.java | 2 + .../SimpleBuildNumberPreferenceTest.kt | 55 +++++++++++++++++++ 5 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreference.kt create mode 100644 tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceTest.kt diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt index 401cd16c03e..0908f9eaa85 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionScreen.kt @@ -52,7 +52,7 @@ class FirmwareVersionScreen : PreferenceScreenCreator, PreferenceSummaryProvider +PreferenceWidget("module_version", R.string.module_version) +BasebandVersionPreference() +KernelVersionPreference() - +PreferenceWidget("os_build_number", R.string.build_number) + +SimpleBuildNumberPreference() } private class PreferenceWidget(override val key: String, override val title: Int) : diff --git a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreference.kt b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreference.kt new file mode 100644 index 00000000000..62cc2f985e7 --- /dev/null +++ b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreference.kt @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import android.os.Build +import android.text.BidiFormatter +import android.view.View.LAYOUT_DIRECTION_RTL +import androidx.preference.Preference +import com.android.settings.R +import com.android.settingslib.metadata.PreferenceMetadata +import com.android.settingslib.metadata.PreferenceSummaryProvider +import com.android.settingslib.preference.PreferenceBinding + +// LINT.IfChange +class SimpleBuildNumberPreference : + PreferenceMetadata, PreferenceSummaryProvider, PreferenceBinding { + + override val key: String + get() = "os_build_number" + + override val title: Int + get() = R.string.build_number + + override fun isIndexable(context: Context) = false + + override fun getSummary(context: Context): CharSequence? { + val isRtl = context.resources.configuration.layoutDirection == LAYOUT_DIRECTION_RTL + return BidiFormatter.getInstance(isRtl).unicodeWrap(Build.DISPLAY) + } + + override fun bind(preference: Preference, metadata: PreferenceMetadata) { + super.bind(preference, metadata) + preference.isSelectable = false + preference.isCopyingEnabled = true + } +} +// LINT.ThenChange(SimpleBuildNumberPreferenceController.java) diff --git a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java index 53f5ff9aa9d..11988f7002e 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java @@ -22,6 +22,7 @@ import android.text.BidiFormatter; import com.android.settings.core.BasePreferenceController; +// LINT.IfChange public class SimpleBuildNumberPreferenceController extends BasePreferenceController { public SimpleBuildNumberPreferenceController(Context context, @@ -39,3 +40,4 @@ public class SimpleBuildNumberPreferenceController extends BasePreferenceControl return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY); } } +// LINT.ThenChange(SimpleBuildNumberPreference.kt) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java index 3f050db6ab4..4b7dfc5f749 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java @@ -29,6 +29,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +// LINT.IfChange @RunWith(RobolectricTestRunner.class) public class SimpleBuildNumberPreferenceControllerTest { @@ -48,3 +49,4 @@ public class SimpleBuildNumberPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); } } +// LINT.ThenChange(SimpleBuildNumberPreferenceTest.kt) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceTest.kt b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceTest.kt new file mode 100644 index 00000000000..9c9dd710b14 --- /dev/null +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceTest.kt @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo.firmwareversion + +import android.content.Context +import android.os.Build +import android.text.BidiFormatter +import androidx.test.core.app.ApplicationProvider +import com.google.common.truth.Truth.assertThat +import java.util.Locale +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +// LINT.IfChange +@RunWith(RobolectricTestRunner::class) +class SimpleBuildNumberPreferenceTest { + private val context: Context = ApplicationProvider.getApplicationContext() + + private val simpleBuildNumberPreference = SimpleBuildNumberPreference() + + @Test + fun isIndexable() { + assertThat(simpleBuildNumberPreference.isIndexable(context)).isFalse() + } + + @Test + fun getSummary_ltr() { + context.resources.configuration.setLayoutDirection(Locale.ENGLISH) + assertThat(simpleBuildNumberPreference.getSummary(context)) + .isEqualTo(BidiFormatter.getInstance(false).unicodeWrap(Build.DISPLAY)) + } + + @Test + fun getSummary_rtl() { + context.resources.configuration.setLayoutDirection(Locale("ar")) + assertThat(simpleBuildNumberPreference.getSummary(context)) + .isEqualTo(BidiFormatter.getInstance(true).unicodeWrap(Build.DISPLAY)) + } +} +// LINT.ThenChange(SimpleBuildNumberPreferenceControllerTest.java)