Add Battery slice in Contextual Settings Homepage

- Add Battery card that implements CustomSliceable in Contextual
Settings Homepage.
- Add test case for Battery slice.
- Created a loadBatteryInfo method for BatterySlice.
- Add a map in CustomSliceManager to cache CustomSliceable instances,
let existing battery slice be able to update battery info.
- Use a flag to avoid triggering an infinite loop when calling
notifyChange in the callback function.

Bug: 114796623, 115971399
Test: manual, robotests
Change-Id: I4b785708bf8456c6c4de7cae4b44f8a060bccbae
This commit is contained in:
Mill Chen
2018-10-05 22:11:45 +08:00
parent d7a2569034
commit 60f6a25af8
7 changed files with 317 additions and 61 deletions

View File

@@ -20,6 +20,7 @@ import static android.provider.SettingsSlicesContract.KEY_WIFI;
import android.annotation.Nullable;
import com.android.settings.homepage.deviceinfo.BatterySlice;
import com.android.settings.homepage.deviceinfo.DataUsageSlice;
import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
import com.android.settings.homepage.deviceinfo.StorageSlice;
@@ -63,12 +64,18 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
.setSliceUri(EmergencyInfoSlice.EMERGENCY_INFO_CARD_URI.toString())
.setCardName(EmergencyInfoSlice.PATH_EMERGENCY_INFO_CARD)
.build();
final ContextualCard batteryInfoCard =
ContextualCard.newBuilder()
.setSliceUri(BatterySlice.BATTERY_CARD_URI.toSafeString())
.setCardName(BatterySlice.PATH_BATTERY_INFO)
.build();
final ContextualCardList cards = ContextualCardList.newBuilder()
.addCard(wifiCard)
.addCard(dataUsageCard)
.addCard(deviceInfoCard)
.addCard(storageInfoCard)
.addCard(emergencyInfoCard)
.addCard(batteryInfoCard)
.build();
return cards;