Reorder Settings Battery main page index (1/2)
- Reorder battery page index
- Remove option menu
- Add battery usage preference
- Remove last full charge and screen usage preference
Screenshots:
https://screenshot.googleplex.com/7VMeSVKHGViZyRv.png
https://screenshot.googleplex.com/7v6wNL4qamfMAgM.png
Bug: 177407113
Test: make SettingsGoogleRoboTests -j40
Change-Id: I8a1fb30cdd3774840bf28d9c84017d946a4244df
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d72a7bd..dda89ee 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5680,6 +5680,8 @@
<string name="advanced_battery_title">Battery usage</string>
<!-- Activity title for battery usage history details [CHAR LIMIT=60] -->
<string name="history_details_title">History details</string>
+ <!-- Preference title for advanced battery usage [CHAR LIMIT=40] -->
+ <string name="advanced_battery_preference_title">View battery usage</string>
<!-- Activity title for battery usage details for an app. or power consumer -->
<string name="battery_details_title">Battery usage</string>
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 005ce17..a9819fd 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" />
+ <Preference
+ android:fragment="com.android.settings.fuelgauge.PowerUsageAdvanced"
+ android:key="battery_usage_summary"
+ android:title="@string/advanced_battery_preference_title"
+ android:icon="@drawable/ic_chevron_right_24dp"
+ settings:searchable="false" />
+
<com.android.settings.widget.CardPreference
android:key="battery_tip"
android:title="@string/summary_placeholder"
@@ -39,33 +46,22 @@
android:title="@string/battery_saver"
settings:controller="com.android.settings.fuelgauge.BatterySaverController" />
- <Preference
- android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
- android:key="smart_battery_manager"
- android:title="@string/smart_battery_manager_title"
- settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController" />
-
<SwitchPreference
android:key="battery_percentage"
android:title="@string/battery_percentage"
android:summary="@string/battery_percentage_description"
settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
-
- <com.android.settings.fuelgauge.PowerGaugePreference
- android:key="last_full_charge"
- android:title="@string/battery_last_full_charge"
- android:selectable="false"
- settings:allowDividerAbove="true" />
-
- <com.android.settings.fuelgauge.PowerGaugePreference
- android:key="screen_usage"
- android:title="@string/device_screen_usage"
- android:selectable="false" />
+ <Preference
+ android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
+ android:key="smart_battery_manager"
+ android:title="@string/smart_battery_manager_title"
+ settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController" />
<com.android.settingslib.widget.FooterPreference
android:key="power_usage_footer"
android:title="@string/battery_footer_summary"
android:selectable="false"
- settings:searchable="false"/>
+ settings:searchable="false"
+ settings:allowDividerAbove="true" />
</PreferenceScreen>
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 57949db..735f43d 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -26,9 +26,6 @@
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 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,22 +61,13 @@
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
BatteryUtils mBatteryUtils;
@@ -119,7 +104,6 @@
public void onLoadFinished(Loader<BatteryInfo> loader, BatteryInfo batteryInfo) {
mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo);
mBatteryInfo = batteryInfo;
- updateLastFullChargePreference();
}
@Override
@@ -215,9 +199,6 @@
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())) {
@@ -258,32 +239,10 @@
}
@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 @@
}
// reload BatteryInfo and updateUI
restartBatteryInfoLoader();
- updateLastFullChargePreference();
- mScreenUsagePref.setSubtitle(StringUtil.formatElapsedTime(getContext(),
- mBatteryUtils.calculateScreenUsageTime(mStatsHelper), false));
}
@VisibleForTesting
@@ -319,24 +275,6 @@
}
@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();
if (context == null
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 1cc4dca..cf278f6 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.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 @@
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 @@
private TestFragment mFragment;
private FakeFeatureFactory mFeatureFactory;
private BatteryMeterView mBatteryMeterView;
- private PowerGaugePreference mScreenUsagePref;
- private PowerGaugePreference mLastFullChargePref;
private Intent mIntent;
@Before
@@ -149,15 +137,12 @@
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 @@
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",
@@ -200,31 +183,6 @@
}
@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() {
final Context context = RuntimeEnvironment.application;
@@ -294,35 +252,6 @@
}
@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<Intent> 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);
when(mFragment.mBatteryTipPreferenceController.needUpdate()).thenReturn(false);