Remove nested PreferenceCategory in Battery Usage page.
https://screenshot.googleplex.com/83LwysPKMCRoRoG Bug: 349652542 Test: atest BatteryUsageBreakdownControllerTest Flag: EXEMPT for simple fix Change-Id: If97b5e3de9757b814ad72aa47f6491d29106b8a3
This commit is contained in:
@@ -59,16 +59,15 @@
|
|||||||
|
|
||||||
<com.android.settingslib.widget.SettingsSpinnerPreference
|
<com.android.settingslib.widget.SettingsSpinnerPreference
|
||||||
android:key="battery_usage_spinner"
|
android:key="battery_usage_spinner"
|
||||||
|
android:order="0"
|
||||||
settings:isPreferenceVisible="false" />
|
settings:isPreferenceVisible="false" />
|
||||||
|
|
||||||
<PreferenceCategory
|
<!-- App usage preference list will be added here with the order in range [100, 1000). -->
|
||||||
android:key="app_list"
|
|
||||||
android:layout="@layout/preference_category_no_label"
|
|
||||||
settings:isPreferenceVisible="false" />
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:key="battery_usage_footer"
|
android:key="battery_usage_footer"
|
||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
|
android:order="1000"
|
||||||
settings:isPreferenceVisible="false"
|
settings:isPreferenceVisible="false"
|
||||||
settings:searchable="false" />
|
settings:searchable="false" />
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.fuelgauge.batteryusage;
|
package com.android.settings.fuelgauge.batteryusage;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -37,7 +38,7 @@ class AnomalyAppItemPreference extends PowerGaugePreference {
|
|||||||
setLayoutResource(R.layout.anomaly_app_item_preference);
|
setLayoutResource(R.layout.anomaly_app_item_preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setAnomalyHint(CharSequence anomalyHintText) {
|
void setAnomalyHint(@Nullable CharSequence anomalyHintText) {
|
||||||
if (!TextUtils.equals(mAnomalyHintText, anomalyHintText)) {
|
if (!TextUtils.equals(mAnomalyHintText, anomalyHintText)) {
|
||||||
mAnomalyHintText = anomalyHintText;
|
mAnomalyHintText = anomalyHintText;
|
||||||
notifyChanged();
|
notifyChanged();
|
||||||
|
@@ -31,7 +31,6 @@ import android.view.View;
|
|||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceCategory;
|
|
||||||
import androidx.preference.PreferenceGroup;
|
import androidx.preference.PreferenceGroup;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -68,11 +67,11 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
private static final String ROOT_PREFERENCE_KEY = "battery_usage_breakdown";
|
private static final String ROOT_PREFERENCE_KEY = "battery_usage_breakdown";
|
||||||
private static final String FOOTER_PREFERENCE_KEY = "battery_usage_footer";
|
private static final String FOOTER_PREFERENCE_KEY = "battery_usage_footer";
|
||||||
private static final String SPINNER_PREFERENCE_KEY = "battery_usage_spinner";
|
private static final String SPINNER_PREFERENCE_KEY = "battery_usage_spinner";
|
||||||
private static final String APP_LIST_PREFERENCE_KEY = "app_list";
|
|
||||||
private static final String PACKAGE_NAME_NONE = "none";
|
private static final String PACKAGE_NAME_NONE = "none";
|
||||||
private static final String SLOT_TIMESTAMP = "slot_timestamp";
|
private static final String SLOT_TIMESTAMP = "slot_timestamp";
|
||||||
private static final String ANOMALY_KEY = "anomaly_key";
|
private static final String ANOMALY_KEY = "anomaly_key";
|
||||||
private static final String KEY_SPINNER_POSITION = "spinner_position";
|
private static final String KEY_SPINNER_POSITION = "spinner_position";
|
||||||
|
private static final int ENTRY_PREF_ORDER_OFFSET = 100;
|
||||||
private static final List<BatteryDiffEntry> EMPTY_ENTRY_LIST = new ArrayList<>();
|
private static final List<BatteryDiffEntry> EMPTY_ENTRY_LIST = new ArrayList<>();
|
||||||
|
|
||||||
private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED;
|
private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED;
|
||||||
@@ -89,8 +88,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
private SettingsSpinnerAdapter<CharSequence> mSpinnerAdapter;
|
private SettingsSpinnerAdapter<CharSequence> mSpinnerAdapter;
|
||||||
|
|
||||||
@VisibleForTesting Context mPrefContext;
|
@VisibleForTesting Context mPrefContext;
|
||||||
@VisibleForTesting PreferenceCategory mRootPreference;
|
@VisibleForTesting PreferenceGroup mRootPreferenceGroup;
|
||||||
@VisibleForTesting PreferenceGroup mAppListPreferenceGroup;
|
|
||||||
@VisibleForTesting FooterPreference mFooterPreference;
|
@VisibleForTesting FooterPreference mFooterPreference;
|
||||||
@VisibleForTesting BatteryDiffData mBatteryDiffData;
|
@VisibleForTesting BatteryDiffData mBatteryDiffData;
|
||||||
@VisibleForTesting String mBatteryUsageBreakdownTitleLastFullChargeText;
|
@VisibleForTesting String mBatteryUsageBreakdownTitleLastFullChargeText;
|
||||||
@@ -143,7 +141,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
mHandler.removeCallbacksAndMessages(/* token= */ null);
|
mHandler.removeCallbacksAndMessages(/* token= */ null);
|
||||||
mPreferenceCache.clear();
|
mPreferenceCache.clear();
|
||||||
mAppListPreferenceGroup.removeAll();
|
mRootPreferenceGroup.removeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -226,9 +224,8 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
mPrefContext = screen.getContext();
|
mPrefContext = screen.getContext();
|
||||||
mRootPreference = screen.findPreference(ROOT_PREFERENCE_KEY);
|
mRootPreferenceGroup = screen.findPreference(ROOT_PREFERENCE_KEY);
|
||||||
mSpinnerPreference = screen.findPreference(SPINNER_PREFERENCE_KEY);
|
mSpinnerPreference = screen.findPreference(SPINNER_PREFERENCE_KEY);
|
||||||
mAppListPreferenceGroup = screen.findPreference(APP_LIST_PREFERENCE_KEY);
|
|
||||||
mFooterPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
|
mFooterPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
|
||||||
mBatteryUsageBreakdownTitleLastFullChargeText =
|
mBatteryUsageBreakdownTitleLastFullChargeText =
|
||||||
mPrefContext.getString(
|
mPrefContext.getString(
|
||||||
@@ -242,7 +239,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
R.string.battery_usage_less_than_percent_content_description,
|
R.string.battery_usage_less_than_percent_content_description,
|
||||||
formatPercentage);
|
formatPercentage);
|
||||||
|
|
||||||
mAppListPreferenceGroup.setOrderingAsAdded(false);
|
mRootPreferenceGroup.setOrderingAsAdded(false);
|
||||||
mSpinnerAdapter = new SettingsSpinnerAdapter<>(mPrefContext);
|
mSpinnerAdapter = new SettingsSpinnerAdapter<>(mPrefContext);
|
||||||
mSpinnerAdapter.addAll(
|
mSpinnerAdapter.addAll(
|
||||||
new String[] {
|
new String[] {
|
||||||
@@ -328,8 +325,9 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
: mPrefContext.getString(
|
: mPrefContext.getString(
|
||||||
R.string.battery_usage_breakdown_title_for_slot,
|
R.string.battery_usage_breakdown_title_for_slot,
|
||||||
accessibilitySlotTimestamp);
|
accessibilitySlotTimestamp);
|
||||||
mRootPreference.setTitle(Utils.createAccessibleSequence(displayTitle, accessibilityTitle));
|
mRootPreferenceGroup.setTitle(
|
||||||
mRootPreference.setVisible(true);
|
Utils.createAccessibleSequence(displayTitle, accessibilityTitle));
|
||||||
|
mRootPreferenceGroup.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showFooterPreference(boolean isAllBatteryUsageEmpty) {
|
private void showFooterPreference(boolean isAllBatteryUsageEmpty) {
|
||||||
@@ -350,7 +348,6 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mSpinnerPreference.setVisible(true);
|
mSpinnerPreference.setVisible(true);
|
||||||
mAppListPreferenceGroup.setVisible(true);
|
|
||||||
mHandler.post(
|
mHandler.post(
|
||||||
() -> {
|
() -> {
|
||||||
removeAndCacheAllUnusedPreferences();
|
removeAndCacheAllUnusedPreferences();
|
||||||
@@ -374,7 +371,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
}
|
}
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final List<BatteryDiffEntry> entries = getBatteryDiffEntries();
|
final List<BatteryDiffEntry> entries = getBatteryDiffEntries();
|
||||||
int prefIndex = mAppListPreferenceGroup.getPreferenceCount();
|
int preferenceOrder = ENTRY_PREF_ORDER_OFFSET;
|
||||||
for (BatteryDiffEntry entry : entries) {
|
for (BatteryDiffEntry entry : entries) {
|
||||||
boolean isAdded = false;
|
boolean isAdded = false;
|
||||||
final String appLabel = entry.getAppLabel();
|
final String appLabel = entry.getAppLabel();
|
||||||
@@ -384,33 +381,32 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String prefKey = entry.getKey();
|
final String prefKey = entry.getKey();
|
||||||
AnomalyAppItemPreference pref = mAppListPreferenceGroup.findPreference(prefKey);
|
AnomalyAppItemPreference preference = mRootPreferenceGroup.findPreference(prefKey);
|
||||||
if (pref != null) {
|
if (preference != null) {
|
||||||
isAdded = true;
|
isAdded = true;
|
||||||
} else {
|
} else {
|
||||||
pref = (AnomalyAppItemPreference) mPreferenceCache.get(prefKey);
|
preference = (AnomalyAppItemPreference) mPreferenceCache.get(prefKey);
|
||||||
}
|
}
|
||||||
// Creates new instance if cached preference is not found.
|
// Creates new instance if cached preference is not found.
|
||||||
if (pref == null) {
|
if (preference == null) {
|
||||||
pref = new AnomalyAppItemPreference(mPrefContext);
|
preference = new AnomalyAppItemPreference(mPrefContext);
|
||||||
pref.setKey(prefKey);
|
preference.setKey(prefKey);
|
||||||
mPreferenceCache.put(prefKey, pref);
|
mPreferenceCache.put(prefKey, preference);
|
||||||
}
|
}
|
||||||
pref.setIcon(appIcon);
|
preference.setIcon(appIcon);
|
||||||
pref.setTitle(appLabel);
|
preference.setTitle(appLabel);
|
||||||
pref.setOrder(prefIndex);
|
preference.setOrder(++preferenceOrder);
|
||||||
pref.setSingleLineTitle(true);
|
preference.setSingleLineTitle(true);
|
||||||
// Updates App item preference style
|
// Updates App item preference style
|
||||||
pref.setAnomalyHint(isAnomalyBatteryDiffEntry(entry) ? mAnomalyHintString : null);
|
preference.setAnomalyHint(isAnomalyBatteryDiffEntry(entry) ? mAnomalyHintString : null);
|
||||||
// Sets the BatteryDiffEntry to preference for launching detailed page.
|
// Sets the BatteryDiffEntry to preference for launching detailed page.
|
||||||
pref.setBatteryDiffEntry(entry);
|
preference.setBatteryDiffEntry(entry);
|
||||||
pref.setSelectable(entry.validForRestriction());
|
preference.setSelectable(entry.validForRestriction());
|
||||||
setPreferencePercentage(pref, entry);
|
setPreferencePercentage(preference, entry);
|
||||||
setPreferenceSummary(pref, entry);
|
setPreferenceSummary(preference, entry);
|
||||||
if (!isAdded) {
|
if (!isAdded) {
|
||||||
mAppListPreferenceGroup.addPreference(pref);
|
mRootPreferenceGroup.addPreference(preference);
|
||||||
}
|
}
|
||||||
prefIndex++;
|
|
||||||
}
|
}
|
||||||
Log.d(
|
Log.d(
|
||||||
TAG,
|
TAG,
|
||||||
@@ -424,17 +420,22 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
|||||||
List<BatteryDiffEntry> entries = getBatteryDiffEntries();
|
List<BatteryDiffEntry> entries = getBatteryDiffEntries();
|
||||||
Set<String> entryKeySet = new ArraySet<>(entries.size());
|
Set<String> entryKeySet = new ArraySet<>(entries.size());
|
||||||
entries.forEach(entry -> entryKeySet.add(entry.getKey()));
|
entries.forEach(entry -> entryKeySet.add(entry.getKey()));
|
||||||
final int prefsCount = mAppListPreferenceGroup.getPreferenceCount();
|
final int preferenceCount = mRootPreferenceGroup.getPreferenceCount();
|
||||||
for (int index = prefsCount - 1; index >= 0; index--) {
|
for (int index = preferenceCount - 1; index >= 0; index--) {
|
||||||
final Preference pref = mAppListPreferenceGroup.getPreference(index);
|
final Preference preference = mRootPreferenceGroup.getPreference(index);
|
||||||
if (entryKeySet.contains(pref.getKey())) {
|
if ((preference instanceof SettingsSpinnerPreference)
|
||||||
// The pref is still used, don't remove.
|
|| (preference instanceof FooterPreference)) {
|
||||||
|
// Consider the app preference only and skip others
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!TextUtils.isEmpty(pref.getKey())) {
|
if (entryKeySet.contains(preference.getKey())) {
|
||||||
mPreferenceCache.put(pref.getKey(), pref);
|
// Don't remove the preference if it is still in use
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
mAppListPreferenceGroup.removePreference(pref);
|
if (!TextUtils.isEmpty(preference.getKey())) {
|
||||||
|
mPreferenceCache.put(preference.getKey(), preference);
|
||||||
|
}
|
||||||
|
mRootPreferenceGroup.removePreference(preference);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -59,11 +59,12 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
private static final String PREF_KEY2 = "pref_key2";
|
private static final String PREF_KEY2 = "pref_key2";
|
||||||
private static final String PREF_SUMMARY = "fake preference summary";
|
private static final String PREF_SUMMARY = "fake preference summary";
|
||||||
private static final String KEY_SPINNER_POSITION = "spinner_position";
|
private static final String KEY_SPINNER_POSITION = "spinner_position";
|
||||||
private static final long TIME_LESS_THAN_HALF_MINUTE = DateUtils.MINUTE_IN_MILLIS / 2 - 1;
|
private static final int ENTRY_PREF_ORDER_OFFSET = 100;
|
||||||
|
private static final long TIME_LESS_THAN_HALF_MINUTE = DateUtils.MINUTE_IN_MILLIS / 2 - 1;
|
||||||
|
|
||||||
@Mock private InstrumentedPreferenceFragment mFragment;
|
@Mock private InstrumentedPreferenceFragment mFragment;
|
||||||
@Mock private SettingsActivity mSettingsActivity;
|
@Mock private SettingsActivity mSettingsActivity;
|
||||||
@Mock private PreferenceGroup mAppListPreferenceGroup;
|
@Mock private PreferenceGroup mRootPreferenceGroup;
|
||||||
@Mock private Drawable mDrawable;
|
@Mock private Drawable mDrawable;
|
||||||
@Mock private BatteryHistEntry mBatteryHistEntry;
|
@Mock private BatteryHistEntry mBatteryHistEntry;
|
||||||
@Mock private AnomalyAppItemPreference mAnomalyAppItemPreference;
|
@Mock private AnomalyAppItemPreference mAnomalyAppItemPreference;
|
||||||
@@ -90,7 +91,7 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
.when(mFeatureFactory.powerUsageFeatureProvider)
|
.when(mFeatureFactory.powerUsageFeatureProvider)
|
||||||
.getHideApplicationSet();
|
.getHideApplicationSet();
|
||||||
mBatteryUsageBreakdownController = createController();
|
mBatteryUsageBreakdownController = createController();
|
||||||
mBatteryUsageBreakdownController.mAppListPreferenceGroup = mAppListPreferenceGroup;
|
mBatteryUsageBreakdownController.mRootPreferenceGroup = mRootPreferenceGroup;
|
||||||
mBatteryDiffEntry =
|
mBatteryDiffEntry =
|
||||||
new BatteryDiffEntry(
|
new BatteryDiffEntry(
|
||||||
mContext,
|
mContext,
|
||||||
@@ -130,7 +131,7 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
BatteryDiffEntry.sResourceCache.put(
|
BatteryDiffEntry.sResourceCache.put(
|
||||||
"fakeBatteryDiffEntryKey",
|
"fakeBatteryDiffEntryKey",
|
||||||
new BatteryEntry.NameAndIcon("fakeName", /* icon= */ null, /* iconId= */ 1));
|
new BatteryEntry.NameAndIcon("fakeName", /* icon= */ null, /* iconId= */ 1));
|
||||||
doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
|
doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).findPreference(PREF_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -147,7 +148,7 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void onDestroy_removeAllPreferenceFromPreferenceGroup() {
|
public void onDestroy_removeAllPreferenceFromPreferenceGroup() {
|
||||||
mBatteryUsageBreakdownController.onDestroy();
|
mBatteryUsageBreakdownController.onDestroy();
|
||||||
verify(mAppListPreferenceGroup).removeAll();
|
verify(mRootPreferenceGroup).removeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -162,11 +163,11 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void addAllPreferences_addAllPreferences() {
|
public void addAllPreferences_addAllPreferences() {
|
||||||
final String appLabel = "fake app label";
|
final String appLabel = "fake app label";
|
||||||
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
|
doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
|
||||||
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
|
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
|
||||||
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
|
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
|
||||||
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
||||||
doReturn(null).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
|
doReturn(null).when(mRootPreferenceGroup).findPreference(PREF_KEY);
|
||||||
doReturn(false).when(mBatteryDiffEntry).validForRestriction();
|
doReturn(false).when(mBatteryDiffEntry).validForRestriction();
|
||||||
|
|
||||||
mBatteryUsageBreakdownController.addAllPreferences();
|
mBatteryUsageBreakdownController.addAllPreferences();
|
||||||
@@ -177,11 +178,11 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY);
|
mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY);
|
||||||
assertThat(pref).isNotNull();
|
assertThat(pref).isNotNull();
|
||||||
// Verifies the added preference configuration.
|
// Verifies the added preference configuration.
|
||||||
verify(mAppListPreferenceGroup).addPreference(pref);
|
verify(mRootPreferenceGroup).addPreference(pref);
|
||||||
assertThat(pref.getKey()).isEqualTo(PREF_KEY);
|
assertThat(pref.getKey()).isEqualTo(PREF_KEY);
|
||||||
assertThat(pref.getTitle().toString()).isEqualTo(appLabel);
|
assertThat(pref.getTitle().toString()).isEqualTo(appLabel);
|
||||||
assertThat(pref.getIcon()).isEqualTo(mDrawable);
|
assertThat(pref.getIcon()).isEqualTo(mDrawable);
|
||||||
assertThat(pref.getOrder()).isEqualTo(1);
|
assertThat(pref.getOrder()).isEqualTo(ENTRY_PREF_ORDER_OFFSET + 1);
|
||||||
assertThat(pref.getBatteryDiffEntry()).isSameInstanceAs(mBatteryDiffEntry);
|
assertThat(pref.getBatteryDiffEntry()).isSameInstanceAs(mBatteryDiffEntry);
|
||||||
assertThat(pref.isSingleLineTitle()).isTrue();
|
assertThat(pref.isSingleLineTitle()).isTrue();
|
||||||
assertThat(pref.isSelectable()).isFalse();
|
assertThat(pref.isSelectable()).isFalse();
|
||||||
@@ -190,20 +191,20 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void addPreferenceToScreen_alreadyInScreen_notAddPreferenceAgain() {
|
public void addPreferenceToScreen_alreadyInScreen_notAddPreferenceAgain() {
|
||||||
final String appLabel = "fake app label";
|
final String appLabel = "fake app label";
|
||||||
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
|
doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
|
||||||
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
|
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
|
||||||
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
|
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
|
||||||
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
||||||
|
|
||||||
mBatteryUsageBreakdownController.addAllPreferences();
|
mBatteryUsageBreakdownController.addAllPreferences();
|
||||||
|
|
||||||
verify(mAppListPreferenceGroup, never()).addPreference(any());
|
verify(mRootPreferenceGroup, never()).addPreference(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void removeAndCacheAllUnusedPreferences_removePref_buildCacheAndRemoveAllPreference() {
|
public void removeAndCacheAllUnusedPreferences_removePref_buildCacheAndRemoveAllPreference() {
|
||||||
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
|
doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
|
||||||
doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).getPreference(0);
|
doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).getPreference(0);
|
||||||
doReturn(PREF_KEY2).when(mBatteryHistEntry).getKey();
|
doReturn(PREF_KEY2).when(mBatteryHistEntry).getKey();
|
||||||
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
|
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
|
||||||
// Ensures the testing data is correct.
|
// Ensures the testing data is correct.
|
||||||
@@ -213,13 +214,13 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
|
|
||||||
assertThat(mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY))
|
assertThat(mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY))
|
||||||
.isEqualTo(mAnomalyAppItemPreference);
|
.isEqualTo(mAnomalyAppItemPreference);
|
||||||
verify(mAppListPreferenceGroup).removePreference(mAnomalyAppItemPreference);
|
verify(mRootPreferenceGroup).removePreference(mAnomalyAppItemPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() {
|
public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() {
|
||||||
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
|
doReturn(1).when(mRootPreferenceGroup).getPreferenceCount();
|
||||||
doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).getPreference(0);
|
doReturn(mAnomalyAppItemPreference).when(mRootPreferenceGroup).getPreference(0);
|
||||||
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
|
||||||
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
|
doReturn(PREF_KEY).when(mAnomalyAppItemPreference).getKey();
|
||||||
// Ensures the testing data is correct.
|
// Ensures the testing data is correct.
|
||||||
@@ -227,15 +228,13 @@ public final class BatteryUsageBreakdownControllerTest {
|
|||||||
|
|
||||||
mBatteryUsageBreakdownController.removeAndCacheAllUnusedPreferences();
|
mBatteryUsageBreakdownController.removeAndCacheAllUnusedPreferences();
|
||||||
|
|
||||||
verify(mAppListPreferenceGroup, never()).removePreference(any());
|
verify(mRootPreferenceGroup, never()).removePreference(any());
|
||||||
assertThat(mBatteryUsageBreakdownController.mPreferenceCache).isEmpty();
|
assertThat(mBatteryUsageBreakdownController.mPreferenceCache).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void handlePreferenceTreeClick_notPowerGaugePreference_returnFalse() {
|
public void handlePreferenceTreeClick_notPowerGaugePreference_returnFalse() {
|
||||||
assertThat(
|
assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(mRootPreferenceGroup))
|
||||||
mBatteryUsageBreakdownController.handlePreferenceTreeClick(
|
|
||||||
mAppListPreferenceGroup))
|
|
||||||
.isFalse();
|
.isFalse();
|
||||||
|
|
||||||
verify(mMetricsFeatureProvider, never())
|
verify(mMetricsFeatureProvider, never())
|
||||||
|
Reference in New Issue
Block a user