diff --git a/res/values/strings.xml b/res/values/strings.xml index d72a7bd87af..dda89ee30ba 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5680,6 +5680,8 @@ Battery usage History details + + View battery usage Battery usage diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml index 005ce17f36d..a9819fd1311 100644 --- a/res/xml/power_usage_summary.xml +++ b/res/xml/power_usage_summary.xml @@ -28,6 +28,13 @@ android:layout="@layout/battery_header" settings:controller="com.android.settings.fuelgauge.BatteryHeaderPreferenceController" /> + + - - - - - - + + settings:searchable="false" + settings:allowDividerAbove="true" /> diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 57949db473c..735f43d7218 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -26,9 +26,6 @@ import android.os.Bundle; import android.os.Handler; import android.provider.Settings.Global; import android.text.format.Formatter; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.TextView; @@ -41,16 +38,13 @@ import androidx.loader.content.Loader; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.Utils; -import com.android.settings.core.SubSettingLauncher; import com.android.settings.fuelgauge.batterytip.BatteryTipLoader; import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settingslib.fuelgauge.EstimateKt; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.utils.PowerUtil; -import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.LayoutPreference; import java.util.List; @@ -67,21 +61,12 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList private static final String KEY_BATTERY_HEADER = "battery_header"; - private static final String KEY_SCREEN_USAGE = "screen_usage"; - private static final String KEY_TIME_SINCE_LAST_FULL_CHARGE = "last_full_charge"; - @VisibleForTesting static final int BATTERY_INFO_LOADER = 1; @VisibleForTesting static final int BATTERY_TIP_LOADER = 2; - @VisibleForTesting - static final int MENU_ADVANCED_BATTERY = Menu.FIRST + 1; public static final int DEBUG_INFO_LOADER = 3; - @VisibleForTesting - PowerGaugePreference mScreenUsagePref; - @VisibleForTesting - PowerGaugePreference mLastFullChargePref; @VisibleForTesting PowerUsageFeatureProvider mPowerFeatureProvider; @VisibleForTesting @@ -119,7 +104,6 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList public void onLoadFinished(Loader loader, BatteryInfo batteryInfo) { mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo); mBatteryInfo = batteryInfo; - updateLastFullChargePreference(); } @Override @@ -215,9 +199,6 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList initFeatureProvider(); mBatteryLayoutPref = (LayoutPreference) findPreference(KEY_BATTERY_HEADER); - mScreenUsagePref = (PowerGaugePreference) findPreference(KEY_SCREEN_USAGE); - mLastFullChargePref = (PowerGaugePreference) findPreference( - KEY_TIME_SINCE_LAST_FULL_CHARGE); mBatteryUtils = BatteryUtils.getInstance(getContext()); if (Utils.isBatteryPresent(getContext())) { @@ -257,33 +238,11 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList return R.xml.power_usage_summary; } - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - menu.add(Menu.NONE, MENU_ADVANCED_BATTERY, Menu.NONE, R.string.advanced_battery_title); - - super.onCreateOptionsMenu(menu, inflater); - } - @Override public int getHelpResource() { return R.string.help_url_battery; } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case MENU_ADVANCED_BATTERY: - new SubSettingLauncher(getContext()) - .setDestination(PowerUsageAdvanced.class.getName()) - .setSourceMetricsCategory(getMetricsCategory()) - .setTitleRes(R.string.advanced_battery_title) - .launch(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - protected void refreshUi(@BatteryUpdateType int refreshType) { final Context context = getContext(); if (context == null) { @@ -303,9 +262,6 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList } // reload BatteryInfo and updateUI restartBatteryInfoLoader(); - updateLastFullChargePreference(); - mScreenUsagePref.setSubtitle(StringUtil.formatElapsedTime(getContext(), - mBatteryUtils.calculateScreenUsageTime(mStatsHelper), false)); } @VisibleForTesting @@ -318,24 +274,6 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList mBatteryLayoutPref = layoutPreference; } - @VisibleForTesting - void updateLastFullChargePreference() { - if (mBatteryInfo != null && mBatteryInfo.averageTimeToDischarge - != EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN) { - mLastFullChargePref.setTitle(R.string.battery_full_charge_last); - mLastFullChargePref.setSubtitle( - StringUtil.formatElapsedTime(getContext(), mBatteryInfo.averageTimeToDischarge, - false /* withSeconds */)); - } else { - final long lastFullChargeTime = mBatteryUtils.calculateLastFullChargeTime(mStatsHelper, - System.currentTimeMillis()); - mLastFullChargePref.setTitle(R.string.battery_last_full_charge); - mLastFullChargePref.setSubtitle( - StringUtil.formatRelativeTime(getContext(), lastFullChargeTime, - false /* withSeconds */)); - } - } - @VisibleForTesting void showBothEstimates() { final Context context = getContext(); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index 1cc4dca7d6e..cf278f6b2cb 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -16,7 +16,6 @@ package com.android.settings.fuelgauge; import static com.android.settings.fuelgauge.PowerUsageSummary.BATTERY_INFO_LOADER; -import static com.android.settings.fuelgauge.PowerUsageSummary.MENU_ADVANCED_BATTERY; import static com.google.common.truth.Truth.assertThat; @@ -39,9 +38,6 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.provider.Settings; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import android.widget.TextView; @@ -117,12 +113,6 @@ public class PowerUsageSummaryTest { private SettingsActivity mSettingsActivity; @Mock private LoaderManager mLoaderManager; - @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private Menu mMenu; - @Mock - private MenuInflater mMenuInflater; - @Mock - private MenuItem mAdvancedPageMenu; @Mock private BatteryInfo mBatteryInfo; @Mock @@ -139,8 +129,6 @@ public class PowerUsageSummaryTest { private TestFragment mFragment; private FakeFeatureFactory mFeatureFactory; private BatteryMeterView mBatteryMeterView; - private PowerGaugePreference mScreenUsagePref; - private PowerGaugePreference mLastFullChargePref; private Intent mIntent; @Before @@ -149,15 +137,12 @@ public class PowerUsageSummaryTest { mRealContext = spy(RuntimeEnvironment.application); mFeatureFactory = FakeFeatureFactory.setupForTest(); - mScreenUsagePref = new PowerGaugePreference(mRealContext); - mLastFullChargePref = new PowerGaugePreference(mRealContext); mFragment = spy(new TestFragment(mRealContext)); mFragment.initFeatureProvider(); mBatteryMeterView = new BatteryMeterView(mRealContext); mBatteryMeterView.mDrawable = new BatteryMeterView.BatteryMeterDrawable(mRealContext, 0); doNothing().when(mFragment).restartBatteryStatsLoader(anyInt()); doReturn(mock(LoaderManager.class)).when(mFragment).getLoaderManager(); - doReturn(MENU_ADVANCED_BATTERY).when(mAdvancedPageMenu).getItemId(); when(mFragment.getActivity()).thenReturn(mSettingsActivity); when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent()) @@ -189,8 +174,6 @@ public class PowerUsageSummaryTest { mFragment.mStatsHelper = mBatteryHelper; when(mBatteryHelper.getUsageList()).thenReturn(mUsageList); - mFragment.mScreenUsagePref = mScreenUsagePref; - mFragment.mLastFullChargePref = mLastFullChargePref; mFragment.mBatteryUtils = spy(new BatteryUtils(mRealContext)); ReflectionHelpers.setField(mFragment, "mVisibilityLoggerMixin", mVisibilityLoggerMixin); ReflectionHelpers.setField(mFragment, "mBatteryBroadcastReceiver", @@ -199,31 +182,6 @@ public class PowerUsageSummaryTest { when(mFragment.getContentResolver()).thenReturn(mContentResolver); } - @Test - public void updateLastFullChargePreference_noAverageTime_showLastFullChargeSummary() { - mFragment.mBatteryInfo = null; - when(mFragment.getContext()).thenReturn(mRealContext); - doReturn(TIME_SINCE_LAST_FULL_CHARGE_MS).when( - mFragment.mBatteryUtils).calculateLastFullChargeTime(any(), anyLong()); - - mFragment.updateLastFullChargePreference(); - - assertThat(mLastFullChargePref.getTitle()).isEqualTo("Last full charge"); - assertThat(mLastFullChargePref.getSubtitle()).isEqualTo("2 hours ago"); - } - - @Test - public void updateLastFullChargePreference_hasAverageTime_showFullChargeLastSummary() { - mFragment.mBatteryInfo = mBatteryInfo; - mBatteryInfo.averageTimeToDischarge = TIME_SINCE_LAST_FULL_CHARGE_MS; - when(mFragment.getContext()).thenReturn(mRealContext); - - mFragment.updateLastFullChargePreference(); - - assertThat(mLastFullChargePref.getTitle()).isEqualTo("Full charge lasts about"); - assertThat(mLastFullChargePref.getSubtitle().toString()).isEqualTo("2 hr"); - } - @Test @Config(shadows = ShadowUtils.class) public void nonIndexableKeys_MatchPreferenceKeys() { @@ -293,35 +251,6 @@ public class PowerUsageSummaryTest { verify(mSummary1, times(2)).setOnLongClickListener(any(View.OnLongClickListener.class)); } - @Test - public void optionsMenu_advancedPageEnabled() { - when(mFeatureFactory.powerUsageFeatureProvider.isPowerAccountingToggleEnabled()) - .thenReturn(true); - - mFragment.onCreateOptionsMenu(mMenu, mMenuInflater); - - verify(mMenu).add(Menu.NONE, MENU_ADVANCED_BATTERY, Menu.NONE, - R.string.advanced_battery_title); - } - - @Test - public void optionsMenu_clickAdvancedPage_fireIntent() { - final ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); - doAnswer(invocation -> { - // Get the intent in which it has the app info bundle - mIntent = captor.getValue(); - return true; - }).when(mRealContext).startActivity(captor.capture()); - - mFragment.onOptionsItemSelected(mAdvancedPageMenu); - - assertThat(mIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo( - PowerUsageAdvanced.class.getName()); - assertThat( - mIntent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0)).isEqualTo( - R.string.advanced_battery_title); - } - @Test public void refreshUi_deviceRotate_doNotUpdateBatteryTip() { mFragment.mBatteryTipPreferenceController = mock(BatteryTipPreferenceController.class);