From f40897d27e504faef2068d7a368668a5458337f6 Mon Sep 17 00:00:00 2001 From: Peter Wang Date: Fri, 9 Apr 2021 11:49:34 -0700 Subject: [PATCH 1/3] Fix intent String for starting profile management page in Manifest Bug: 170507492 Test: Local Change-Id: I6c3f36f1dd99eb4b380dce7218f85757d350bc42 Merged-In: I6c3f36f1dd99eb4b380dce7218f85757d350bc42 --- AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 952e29b9eb3..be7c811a1cb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -207,7 +207,7 @@ android:label="@string/network_settings_title"> - + Date: Sat, 10 Apr 2021 18:49:03 +0800 Subject: [PATCH 2/3] Avoid drawing the invalid levels in the chart view Bug: 183921876 Test: make SettingsRoboTests Test: make SettingsGoogleRoboTests Change-Id: Id540f35044beabe4d56ab5ce3af63271ac356f49 --- src/com/android/settings/fuelgauge/BatteryChartView.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/settings/fuelgauge/BatteryChartView.java b/src/com/android/settings/fuelgauge/BatteryChartView.java index d9a93b10ef3..5e4d9809aa9 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartView.java +++ b/src/com/android/settings/fuelgauge/BatteryChartView.java @@ -227,6 +227,10 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick // Draws all trapezoid shapes into the canvas. final Path trapezoidPath = new Path(); for (int index = 0; index < mTrapezoidCount; index++) { + // Not draws the trapezoid for corner or not initialization cases. + if (mLevels[index] == 0 || mLevels[index + 1] == 0) { + continue; + } // Configures the trapezoid paint color. mTrapezoidPaint.setColor( mSelectedIndex == index || mSelectedIndex == SELECTED_INDEX_ALL From f1ca264f69f9d126265ed2a4b1af835f8b37b95b Mon Sep 17 00:00:00 2001 From: "Wesley.CW Wang" Date: Fri, 9 Apr 2021 18:26:43 +0800 Subject: [PATCH 3/3] Refine battery settings layout - Add loading text to progress bar to prevent UI flaky - Setup enable/disable state for battery saver switch - Remove battery saver page divider Bug: 177964551 Bug: 177964753 Bug: 184626649 Test: make SettingsRoboTests, visually Change-Id: I8e05c0c0f02710729e1f59eff23fb3f425770de9 --- res/xml/battery_saver_settings.xml | 12 ------------ .../BatteryHeaderPreferenceController.java | 4 +++- .../BatterySaverButtonPreferenceController.java | 3 +++ .../BatteryHeaderPreferenceControllerTest.java | 8 ++++++++ ...BatterySaverButtonPreferenceControllerTest.java | 14 ++++++++++++++ 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml index 4f73fc727dc..55b2eee5737 100644 --- a/res/xml/battery_saver_settings.xml +++ b/res/xml/battery_saver_settings.xml @@ -37,26 +37,14 @@ android:key="battery_saver_sticky" android:title="@string/battery_saver_sticky_title_new" android:summary="@string/summary_placeholder" - settings:allowDividerBelow="true" settings:keywords="@string/keywords_battery_saver_sticky" settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/> - - - - - - - - - - diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index e5030b92bfb..5a92f53a17d 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -50,7 +50,6 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController BatteryPreferenceController { @VisibleForTesting static final String KEY_BATTERY_HEADER = "battery_header"; - private static final String ANNOTATION_URL = "url"; private static final int BATTERY_MAX_LEVEL = 100; @VisibleForTesting @@ -87,6 +86,9 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey()); + //Set up loading text first to prevent layout flaky before info loaded. + mBatteryUsageProgressBarPref.setBottomSummary( + mContext.getString(R.string.settings_license_activity_loading)); if (com.android.settings.Utils.isBatteryPresent(mContext)) { quickUpdateHeaderPreference(); diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java index 122e13ab05b..59a592c6c78 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java @@ -122,5 +122,8 @@ public class BatterySaverButtonPreferenceController extends @Override public void onBatteryChanged(boolean pluggedIn) { + if (mPreference != null) { + mPreference.setEnabled(!pluggedIn); + } } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java index 150838501d3..e36a8318c0a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java @@ -317,6 +317,14 @@ public class BatteryHeaderPreferenceControllerTest { assertThat(mBatteryUsageProgressBarPref.isVisible()).isFalse(); } + @Test + public void displayPreference_init_showLoading() { + mController.displayPreference(mPreferenceScreen); + + verify(mBatteryUsageProgressBarPref).setBottomSummary( + mContext.getString(R.string.settings_license_activity_loading)); + } + private CharSequence formatBatteryPercentageText() { return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate), NumberFormat.getIntegerInstance().format(BATTERY_LEVEL)); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java index 0d38514cbe8..f9ccff9ccc1 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java @@ -103,6 +103,20 @@ public class BatterySaverButtonPreferenceControllerTest { verify(mPowerManager).setPowerSaveModeEnabled(false); } + @Test + public void onBatteryChanged_pluggedIn_preferenceDisabled() { + mController.onBatteryChanged(/* pluggedIn */ true); + + assertThat(mPreference.isEnabled()).isFalse(); + } + + @Test + public void onBatteryChanged_unplugged_preferenceEnabled() { + mController.onBatteryChanged(/* pluggedIn */ false); + + assertThat(mPreference.isEnabled()).isTrue(); + } + @Test public void isPublicSlice_returnsTrue() { assertThat(mController.isPublicSlice()).isTrue();