diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java index 972fda140f8..4f19785482b 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java @@ -66,8 +66,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll @VisibleForTesting PreferenceGroup mAppListPrefGroup; @VisibleForTesting BatteryChartView mBatteryChartView; @VisibleForTesting ExpandDividerPreference mExpandDividerPreference; - @VisibleForTesting CategoryTitleType mCategoryTitleType = - CategoryTitleType.TYPE_UNKNOWN; @VisibleForTesting int[] mBatteryHistoryLevels; @VisibleForTesting long[] mBatteryHistoryKeys; @@ -87,14 +85,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll @VisibleForTesting final List mSystemEntries = new ArrayList<>(); - /** Which component data will be shown in the screen. */ - enum CategoryTitleType { - TYPE_UNKNOWN, - TYPE_APP_COMPONENT, - TYPE_SYSTEM_COMPONENT, - TYPE_ALL_COMPONENTS - } - public BatteryChartPreferenceController( Context context, String preferenceKey, Lifecycle lifecycle, SettingsActivity activity, @@ -283,7 +273,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll } private void addAllPreferences() { - mCategoryTitleType = CategoryTitleType.TYPE_UNKNOWN; final List entries = mBatteryIndexedMap.get(Integer.valueOf(mTrapezoidIndex)); if (entries == null) { @@ -312,10 +301,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll // Adds app entries to the list if it is not empty. if (!appEntries.isEmpty()) { addPreferenceToScreen(appEntries); - mCategoryTitleType = CategoryTitleType.TYPE_APP_COMPONENT; } - // Adds the expabable divider if we have two sections data. - if (!appEntries.isEmpty() && !mSystemEntries.isEmpty()) { + // Adds the expabable divider if we have system entries data. + if (!mSystemEntries.isEmpty()) { if (mExpandDividerPreference == null) { mExpandDividerPreference = new ExpandDividerPreference(mPrefContext); mExpandDividerPreference.setOnExpandListener(this); @@ -323,9 +311,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mExpandDividerPreference.setOrder( mAppListPrefGroup.getPreferenceCount()); mAppListPrefGroup.addPreference(mExpandDividerPreference); - mCategoryTitleType = CategoryTitleType.TYPE_ALL_COMPONENTS; - } else if (appEntries.isEmpty() && !mSystemEntries.isEmpty()) { - mCategoryTitleType = CategoryTitleType.TYPE_SYSTEM_COMPONENT; } refreshExpandUi(); } @@ -408,38 +393,14 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll @VisibleForTesting void refreshCategoryTitle() { final String slotInformation = getSlotInformation(); - Log.d(TAG, String.format("refreshCategoryTitle:%s slotInfo:%s", - mCategoryTitleType, slotInformation)); - refreshPreferenceCategoryTitle(slotInformation); - refreshExpandableDividerTitle(slotInformation); - } - - private void refreshExpandableDividerTitle(String slotInformation) { - if (mExpandDividerPreference == null) { - return; + Log.d(TAG, String.format("refreshCategoryTitle:%s", slotInformation)); + if (mAppListPrefGroup != null) { + mAppListPrefGroup.setTitle( + getSlotInformation(/*isApp=*/ true, slotInformation)); } - mExpandDividerPreference.setTitle( - mCategoryTitleType == CategoryTitleType.TYPE_ALL_COMPONENTS - ? getSlotInformation(/*isApp=*/ false, slotInformation) - : null); - } - - private void refreshPreferenceCategoryTitle(String slotInformation) { - if (mAppListPrefGroup == null) { - return; - } - switch (mCategoryTitleType) { - case TYPE_APP_COMPONENT: - case TYPE_ALL_COMPONENTS: - mAppListPrefGroup.setTitle( - getSlotInformation(/*isApp=*/ true, slotInformation)); - break; - case TYPE_SYSTEM_COMPONENT: - mAppListPrefGroup.setTitle( - getSlotInformation(/*isApp=*/ false, slotInformation)); - break; - default: - mAppListPrefGroup.setTitle(R.string.battery_app_usage_for_past_24); + if (mExpandDividerPreference != null) { + mExpandDividerPreference.setTitle( + getSlotInformation(/*isApp=*/ false, slotInformation)); } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java index 35e3276f922..4e1d16ca4e5 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java @@ -33,6 +33,7 @@ import android.graphics.drawable.Drawable; import android.text.format.DateUtils; import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import com.android.settings.R; @@ -482,52 +483,13 @@ public final class BatteryChartPreferenceControllerTest { } @Test - public void testRefreshCategoryTitle_appComponent_setHourIntoPreferenceTitle() { + public void testRefreshCategoryTitle_setHourIntoBothTitleTextView() { + mBatteryChartPreferenceController = createController(); setUpBatteryHistoryKeys(); - mBatteryChartPreferenceController.mCategoryTitleType = - BatteryChartPreferenceController.CategoryTitleType.TYPE_APP_COMPONENT; + mBatteryChartPreferenceController.mAppListPrefGroup = + spy(new PreferenceCategory(mContext)); mBatteryChartPreferenceController.mExpandDividerPreference = - mExpandDividerPreference; - // Simulates select the first slot. - mBatteryChartPreferenceController.mTrapezoidIndex = 0; - - mBatteryChartPreferenceController.refreshCategoryTitle(); - - final ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - // Verifies the title in the preference group. - verify(mAppListGroup).setTitle(captor.capture()); - assertThat(captor.getValue()) - .isEqualTo("App usage for 4 pm-7 am"); - verify(mExpandDividerPreference).setTitle(null); - } - - @Test - public void testRefreshCategoryTitle_systemComponent_setHourIntoPreferenceTitle() { - setUpBatteryHistoryKeys(); - mBatteryChartPreferenceController.mCategoryTitleType = - BatteryChartPreferenceController.CategoryTitleType.TYPE_SYSTEM_COMPONENT; - mBatteryChartPreferenceController.mExpandDividerPreference = - mExpandDividerPreference; - // Simulates select the first slot. - mBatteryChartPreferenceController.mTrapezoidIndex = 0; - - mBatteryChartPreferenceController.refreshCategoryTitle(); - - final ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - // Verifies the title in the preference group. - verify(mAppListGroup).setTitle(captor.capture()); - assertThat(captor.getValue()) - .isEqualTo("System usage for 4 pm-7 am"); - verify(mExpandDividerPreference).setTitle(null); - } - - @Test - public void testRefreshCategoryTitle_allComponents_setHourIntoBothTitleTextView() { - setUpBatteryHistoryKeys(); - mBatteryChartPreferenceController.mCategoryTitleType = - BatteryChartPreferenceController.CategoryTitleType.TYPE_ALL_COMPONENTS; - mBatteryChartPreferenceController.mExpandDividerPreference = - mExpandDividerPreference; + spy(new ExpandDividerPreference(mContext)); // Simulates select the first slot. mBatteryChartPreferenceController.mTrapezoidIndex = 0; @@ -535,22 +497,25 @@ public final class BatteryChartPreferenceControllerTest { ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); // Verifies the title in the preference group. - verify(mAppListGroup).setTitle(captor.capture()); + verify(mBatteryChartPreferenceController.mAppListPrefGroup) + .setTitle(captor.capture()); assertThat(captor.getValue()) .isEqualTo("App usage for 4 pm-7 am"); // Verifies the title in the expandable divider. captor = ArgumentCaptor.forClass(String.class); - verify(mExpandDividerPreference).setTitle(captor.capture()); + verify(mBatteryChartPreferenceController.mExpandDividerPreference) + .setTitle(captor.capture()); assertThat(captor.getValue()) .isEqualTo("System usage for 4 pm-7 am"); } @Test - public void testRefreshCategoryTitle_allComponents_setLast24HrIntoBothTitleTextView() { - mBatteryChartPreferenceController.mCategoryTitleType = - BatteryChartPreferenceController.CategoryTitleType.TYPE_ALL_COMPONENTS; + public void testRefreshCategoryTitle_setLast24HrIntoBothTitleTextView() { + mBatteryChartPreferenceController = createController(); + mBatteryChartPreferenceController.mAppListPrefGroup = + spy(new PreferenceCategory(mContext)); mBatteryChartPreferenceController.mExpandDividerPreference = - mExpandDividerPreference; + spy(new ExpandDividerPreference(mContext)); // Simulates select all condition. mBatteryChartPreferenceController.mTrapezoidIndex = BatteryChartView.SELECTED_INDEX_ALL; @@ -559,12 +524,14 @@ public final class BatteryChartPreferenceControllerTest { ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); // Verifies the title in the preference group. - verify(mAppListGroup).setTitle(captor.capture()); + verify(mBatteryChartPreferenceController.mAppListPrefGroup) + .setTitle(captor.capture()); assertThat(captor.getValue()) .isEqualTo("App usage for past 24 hr"); // Verifies the title in the expandable divider. captor = ArgumentCaptor.forClass(String.class); - verify(mExpandDividerPreference).setTitle(captor.capture()); + verify(mBatteryChartPreferenceController.mExpandDividerPreference) + .setTitle(captor.capture()); assertThat(captor.getValue()) .isEqualTo("System usage for past 24 hr"); } @@ -643,8 +610,11 @@ public final class BatteryChartPreferenceControllerTest { } private BatteryChartPreferenceController createController() { - return new BatteryChartPreferenceController( - mContext, "app_list", /*lifecycle=*/ null, - mSettingsActivity, mFragment); + final BatteryChartPreferenceController controller = + new BatteryChartPreferenceController( + mContext, "app_list", /*lifecycle=*/ null, + mSettingsActivity, mFragment); + controller.mPrefContext = mContext; + return controller; } }