summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Haijie Hong <hahong@google.com> 2024-08-09 11:59:09 +0800
committer Haijie Hong <hahong@google.com> 2024-08-14 16:06:45 +0800
commit5641f2694abc3a36c08f1313500fd9e1f01ed8e0 (patch)
treef0f8fa00726596de3a52e7bab15829b9c76003e0
parent35cc593181b1cc9c49949d63381980edb65b833a (diff)
Rearrange bluetooth device details fragment according to config
BUG: 343317785 Test: atest DeviceSettingRepositoryTest Flag: com.android.settings.flags.enable_bluetooth_device_details_polish Change-Id: I1058b5807bc6d7155bb01bf23fc05279f78ef50f
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingItem.kt4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/data/repository/DeviceSettingRepository.kt16
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/shared/model/DeviceSettingConfigModel.kt19
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingsConfigTest.kt12
4 files changed, 35 insertions, 16 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingItem.kt b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingItem.kt
index 9ee33b0dbffe..a0fe5d275b36 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingItem.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingItem.kt
@@ -27,6 +27,7 @@ import android.os.Parcelable
* @property packageName The package name for service binding.
* @property className The class name for service binding.
* @property intentAction The intent action for service binding.
+ * @property preferenceKey The preference key if it's a built-in preference.
* @property extras Extra bundle
*/
data class DeviceSettingItem(
@@ -34,6 +35,7 @@ data class DeviceSettingItem(
val packageName: String,
val className: String,
val intentAction: String,
+ val preferenceKey: String? = null,
val extras: Bundle = Bundle.EMPTY,
) : Parcelable {
@@ -45,6 +47,7 @@ data class DeviceSettingItem(
writeString(packageName)
writeString(className)
writeString(intentAction)
+ writeString(preferenceKey)
writeBundle(extras)
}
}
@@ -60,6 +63,7 @@ data class DeviceSettingItem(
packageName = readString() ?: "",
className = readString() ?: "",
intentAction = readString() ?: "",
+ preferenceKey = readString() ?: "",
extras = readBundle((Bundle::class.java.classLoader)) ?: Bundle.EMPTY,
)
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/data/repository/DeviceSettingRepository.kt b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/data/repository/DeviceSettingRepository.kt
index 326bb31bdb9f..a599dd1cc5d8 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/data/repository/DeviceSettingRepository.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/data/repository/DeviceSettingRepository.kt
@@ -18,6 +18,7 @@ package com.android.settingslib.bluetooth.devicesettings.data.repository
import android.bluetooth.BluetoothAdapter
import android.content.Context
+import android.text.TextUtils
import com.android.settingslib.bluetooth.CachedBluetoothDevice
import com.android.settingslib.bluetooth.devicesettings.ActionSwitchPreference
import com.android.settingslib.bluetooth.devicesettings.DeviceSetting
@@ -76,8 +77,7 @@ class DeviceSettingRepositoryImpl(
coroutineScope,
backgroundCoroutineContext,
)
- }
- )
+ })
override suspend fun getDeviceSettingsConfig(
cachedDevice: CachedBluetoothDevice
@@ -96,11 +96,15 @@ class DeviceSettingRepositoryImpl(
DeviceSettingConfigModel(
mainItems = mainContentItems.map { it.toModel() },
moreSettingsItems = moreSettingsItems.map { it.toModel() },
- moreSettingsPageFooter = moreSettingsFooter
- )
+ moreSettingsPageFooter = moreSettingsFooter)
- private fun DeviceSettingItem.toModel(): DeviceSettingConfigItemModel =
- DeviceSettingConfigItemModel(settingId)
+ private fun DeviceSettingItem.toModel(): DeviceSettingConfigItemModel {
+ return if (!TextUtils.isEmpty(preferenceKey)) {
+ DeviceSettingConfigItemModel.BuiltinItem(settingId, preferenceKey!!)
+ } else {
+ DeviceSettingConfigItemModel.AppProvidedItem(settingId)
+ }
+ }
private fun DeviceSetting.toModel(
cachedDevice: CachedBluetoothDevice,
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/shared/model/DeviceSettingConfigModel.kt b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/shared/model/DeviceSettingConfigModel.kt
index cd597ee65bce..136abadc25e8 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/shared/model/DeviceSettingConfigModel.kt
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/devicesettings/shared/model/DeviceSettingConfigModel.kt
@@ -25,9 +25,20 @@ data class DeviceSettingConfigModel(
/** Items need to be shown in device details more settings page. */
val moreSettingsItems: List<DeviceSettingConfigItemModel>,
/** Footer text in more settings page. */
- val moreSettingsPageFooter: String)
+ val moreSettingsPageFooter: String
+)
/** Models a device setting item in config. */
-data class DeviceSettingConfigItemModel(
- @DeviceSettingId val settingId: Int,
-)
+sealed interface DeviceSettingConfigItemModel {
+ @DeviceSettingId val settingId: Int
+
+ /** A built-in item in Settings. */
+ data class BuiltinItem(
+ @DeviceSettingId override val settingId: Int,
+ val preferenceKey: String
+ ) : DeviceSettingConfigItemModel
+
+ /** A remote item provided by other apps. */
+ data class AppProvidedItem(@DeviceSettingId override val settingId: Int) :
+ DeviceSettingConfigItemModel
+}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingsConfigTest.kt b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingsConfigTest.kt
index 2b29a6ef5e5a..9568d66ac7db 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingsConfigTest.kt
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/devicesettings/DeviceSettingsConfigTest.kt
@@ -37,9 +37,9 @@ class DeviceSettingsConfigTest {
"package_name_1",
"class_name_1",
"intent_action_1",
- Bundle()
- )
- ),
+ null,
+ Bundle(),
+ )),
moreSettingsItems =
listOf(
DeviceSettingItem(
@@ -47,9 +47,9 @@ class DeviceSettingsConfigTest {
"package_name_2",
"class_name_2",
"intent_action_2",
- Bundle()
- )
- ),
+ null,
+ Bundle(),
+ )),
moreSettingsFooter = "footer",
extras = Bundle().apply { putString("key1", "value1") },
)