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
This commit is contained in:
committed by
Wesley Wang
parent
6b603fc5e2
commit
0457af5347
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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<BatteryInfo> 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();
|
||||
|
@@ -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<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);
|
||||
|
Reference in New Issue
Block a user