Loading res/xml/power_usage_summary.xml +0 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ android:title="@string/summary_placeholder" android:selectable="false" android:paddingBottom="0px" android:persistent="false" settings:controller="com.android.settings.fuelgauge.BatteryHeaderPreferenceController" /> <com.android.settings.fuelgauge.BatteryHeaderTextPreference Loading src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt +41 −10 Original line number Diff line number Diff line Loading @@ -22,21 +22,27 @@ import androidx.preference.Preference import com.android.settings.R import com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT import com.android.settingslib.Utils import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.fuelgauge.BatteryUtils import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceLifecycleContext import com.android.settingslib.metadata.PreferenceLifecycleProvider import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.RangeValue import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.preference.PreferenceBinding import com.android.settingslib.widget.UsageProgressBarPreference // LINT.IfChange class BatteryHeaderPreference : PersistentPreference<Int>, PreferenceMetadata, PreferenceBinding, PreferenceLifecycleProvider { PreferenceLifecycleProvider, RangeValue { @VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null @VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null override val key: String get() = KEY Loading @@ -58,7 +64,8 @@ class BatteryHeaderPreference : override fun onCreate(context: PreferenceLifecycleContext) { super.onCreate(context) batteryBroadcastReceiver = BatteryBroadcastReceiver(context).apply { batteryBroadcastReceiver = BatteryBroadcastReceiver(context).apply { setBatteryChangedListener { if (it != BATTERY_NOT_PRESENT) { context.notifyPreferenceChange(KEY) Loading @@ -69,14 +76,38 @@ class BatteryHeaderPreference : override fun onStart(context: PreferenceLifecycleContext) { super.onStart(context) batteryBroadcastReceiver?.register(); batteryBroadcastReceiver?.register() } override fun onStop(context: PreferenceLifecycleContext) { super.onStop(context) batteryBroadcastReceiver?.unRegister(); batteryBroadcastReceiver?.unRegister() } override fun storage(context: Context): KeyValueStore = object : NoOpKeyedObservable<String>(), KeyValueStore { override fun contains(key: String) = BatteryUtils.getBatteryIntent(context) != null @Suppress("UNCHECKED_CAST") override fun <T : Any> getValue(key: String, valueType: Class<T>): T? { val batteryIntent = BatteryUtils.getBatteryIntent(context) ?: return null return Utils.getBatteryLevel(batteryIntent) as T } override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) = throw UnsupportedOperationException() } override fun getMinValue(context: Context): Int = 0 override fun getMaxValue(context: Context): Int = 100 override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) = ReadWritePermit.ALLOW override fun getWritePermit(context: Context, value: Int?, myUid: Int, callingUid: Int) = ReadWritePermit.DISALLOW companion object { private const val KEY = "battery_header" private const val BATTERY_MAX_LEVEL: Long = 100L Loading Loading
res/xml/power_usage_summary.xml +0 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ android:title="@string/summary_placeholder" android:selectable="false" android:paddingBottom="0px" android:persistent="false" settings:controller="com.android.settings.fuelgauge.BatteryHeaderPreferenceController" /> <com.android.settings.fuelgauge.BatteryHeaderTextPreference Loading
src/com/android/settings/fuelgauge/BatteryHeaderPreference.kt +41 −10 Original line number Diff line number Diff line Loading @@ -22,21 +22,27 @@ import androidx.preference.Preference import com.android.settings.R import com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT import com.android.settingslib.Utils import com.android.settingslib.datastore.KeyValueStore import com.android.settingslib.datastore.NoOpKeyedObservable import com.android.settingslib.fuelgauge.BatteryUtils import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceLifecycleContext import com.android.settingslib.metadata.PreferenceLifecycleProvider import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.RangeValue import com.android.settingslib.metadata.ReadWritePermit import com.android.settingslib.preference.PreferenceBinding import com.android.settingslib.widget.UsageProgressBarPreference // LINT.IfChange class BatteryHeaderPreference : PersistentPreference<Int>, PreferenceMetadata, PreferenceBinding, PreferenceLifecycleProvider { PreferenceLifecycleProvider, RangeValue { @VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null @VisibleForTesting var batteryBroadcastReceiver: BatteryBroadcastReceiver? = null override val key: String get() = KEY Loading @@ -58,7 +64,8 @@ class BatteryHeaderPreference : override fun onCreate(context: PreferenceLifecycleContext) { super.onCreate(context) batteryBroadcastReceiver = BatteryBroadcastReceiver(context).apply { batteryBroadcastReceiver = BatteryBroadcastReceiver(context).apply { setBatteryChangedListener { if (it != BATTERY_NOT_PRESENT) { context.notifyPreferenceChange(KEY) Loading @@ -69,14 +76,38 @@ class BatteryHeaderPreference : override fun onStart(context: PreferenceLifecycleContext) { super.onStart(context) batteryBroadcastReceiver?.register(); batteryBroadcastReceiver?.register() } override fun onStop(context: PreferenceLifecycleContext) { super.onStop(context) batteryBroadcastReceiver?.unRegister(); batteryBroadcastReceiver?.unRegister() } override fun storage(context: Context): KeyValueStore = object : NoOpKeyedObservable<String>(), KeyValueStore { override fun contains(key: String) = BatteryUtils.getBatteryIntent(context) != null @Suppress("UNCHECKED_CAST") override fun <T : Any> getValue(key: String, valueType: Class<T>): T? { val batteryIntent = BatteryUtils.getBatteryIntent(context) ?: return null return Utils.getBatteryLevel(batteryIntent) as T } override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) = throw UnsupportedOperationException() } override fun getMinValue(context: Context): Int = 0 override fun getMaxValue(context: Context): Int = 100 override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) = ReadWritePermit.ALLOW override fun getWritePermit(context: Context, value: Int?, myUid: Int, callingUid: Int) = ReadWritePermit.DISALLOW companion object { private const val KEY = "battery_header" private const val BATTERY_MAX_LEVEL: Long = 100L Loading