Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96edde66 authored by Haijie Hong's avatar Haijie Hong
Browse files

Show highlight for device setting items

BUG: 343317785
Test: atest DeviceSettingsRepositoryTest
Flag: com.android.settings.flags.enable_bluetooth_device_details_polish
Change-Id: I23fbf6982239a37b6ed6e509a89f1afe0f204f35
parent fa07bc40
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ data class DeviceSettingItem(
    val className: String,
    val intentAction: String,
    val preferenceKey: String? = null,
    val highlighted: Boolean = false,
    val extras: Bundle = Bundle.EMPTY,
) : Parcelable {

@@ -47,6 +48,7 @@ data class DeviceSettingItem(
            writeString(packageName)
            writeString(className)
            writeString(intentAction)
            writeBoolean(highlighted)
            writeString(preferenceKey)
            writeBundle(extras)
        }
@@ -63,6 +65,7 @@ data class DeviceSettingItem(
                            packageName = readString() ?: "",
                            className = readString() ?: "",
                            intentAction = readString() ?: "",
                            highlighted = readBoolean(),
                            preferenceKey = readString() ?: "",
                            extras = readBundle((Bundle::class.java.classLoader)) ?: Bundle.EMPTY,
                        )
+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ public abstract class DeviceSettingPreference {
                return MultiTogglePreference.readFromParcel(in);
            case DeviceSettingType.DEVICE_SETTING_TYPE_FOOTER:
                return DeviceSettingFooterPreference.readFromParcel(in);
            case DeviceSettingType.DEVICE_SETTING_TYPE_HELP:
                return DeviceSettingHelpPreference.readFromParcel(in);
            default:
                return UNKNOWN;
        }
+3 −2
Original line number Diff line number Diff line
@@ -110,15 +110,16 @@ class DeviceSettingRepositoryImpl(
            if (settingId == DeviceSettingId.DEVICE_SETTING_ID_BLUETOOTH_PROFILES) {
                BluetoothProfilesItem(
                    settingId,
                    highlighted,
                    preferenceKey!!,
                    extras.getStringArrayList(DeviceSettingContract.INVISIBLE_PROFILES)
                        ?: emptyList()
                )
            } else {
                CommonBuiltinItem(settingId, preferenceKey!!)
                CommonBuiltinItem(settingId, highlighted, preferenceKey!!)
            }
        } else {
            AppProvidedItem(settingId)
            AppProvidedItem(settingId, highlighted)
        }
    }

+7 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ data class DeviceSettingConfigModel(
/** Models a device setting item in config. */
sealed interface DeviceSettingConfigItemModel {
    @DeviceSettingId val settingId: Int
    val highlighted: Boolean

    /** A built-in item in Settings. */
    sealed interface BuiltinItem : DeviceSettingConfigItemModel {
@@ -43,18 +44,22 @@ sealed interface DeviceSettingConfigItemModel {
        /** A general built-in item in Settings. */
        data class CommonBuiltinItem(
            @DeviceSettingId override val settingId: Int,
            override val highlighted: Boolean,
            override val preferenceKey: String,
        ) : BuiltinItem

        /** A bluetooth profiles in Settings. */
        data class BluetoothProfilesItem(
            @DeviceSettingId override val settingId: Int,
            override val highlighted: Boolean,
            override val preferenceKey: String,
            val invisibleProfiles: List<String>,
        ) : BuiltinItem
    }

    /** A remote item provided by other apps. */
    data class AppProvidedItem(@DeviceSettingId override val settingId: Int) :
        DeviceSettingConfigItemModel
    data class AppProvidedItem(
        @DeviceSettingId override val settingId: Int,
        override val highlighted: Boolean,
    ) : DeviceSettingConfigItemModel
}
+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@ class DeviceSettingItemTest {
                packageName = "package_name",
                className = "class_name",
                intentAction = "intent_action",
                preferenceKey = "key1",
                highlighted = true,
                extras = Bundle().apply { putString("key1", "value1") },
            )

@@ -43,6 +45,7 @@ class DeviceSettingItemTest {
        assertThat(fromParcel.packageName).isEqualTo(item.packageName)
        assertThat(fromParcel.className).isEqualTo(item.className)
        assertThat(fromParcel.intentAction).isEqualTo(item.intentAction)
        assertThat(fromParcel.preferenceKey).isEqualTo(item.preferenceKey)
        assertThat(fromParcel.extras.getString("key1")).isEqualTo(item.extras.getString("key1"))
    }

Loading