From af77327017dd352affdd6a8cf9847f3c9fd5ec76 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Fri, 22 Sep 2023 19:16:25 +0800 Subject: [PATCH] Update Battery preference for Instant Hotspot - Use the static battery full icon - Show charging status in Battery preference summary Bug: 300559036 Test: manual test atest -c WifiNetworkDetailsFragmentTest Change-Id: I89e811ba0d1b715d4fff23c96bc094cd4270fef7 --- res/drawable/ic_battery_full.xml | 25 +++++++++++++++++++ res/values/strings.xml | 2 ++ res/xml/wifi_network_details_fragment2.xml | 1 + .../details/WifiNetworkDetailsFragment.java | 23 +++-------------- .../WifiNetworkDetailsFragmentTest.java | 21 +++++----------- 5 files changed, 37 insertions(+), 35 deletions(-) create mode 100644 res/drawable/ic_battery_full.xml diff --git a/res/drawable/ic_battery_full.xml b/res/drawable/ic_battery_full.xml new file mode 100644 index 00000000000..8b1321f68ce --- /dev/null +++ b/res/drawable/ic_battery_full.xml @@ -0,0 +1,25 @@ + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 025bbf79958..646a3eea602 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2119,6 +2119,8 @@ Mobile data Ethernet + + %1$s \u2011 Charging Hotspot connection diff --git a/res/xml/wifi_network_details_fragment2.xml b/res/xml/wifi_network_details_fragment2.xml index e3464c215d7..00624749377 100644 --- a/res/xml/wifi_network_details_fragment2.xml +++ b/res/xml/wifi_network_details_fragment2.xml @@ -52,6 +52,7 @@ settings:enableCopying="true"/> diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java index 65f27052f89..0384f0d6c8c 100644 --- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java +++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java @@ -23,7 +23,6 @@ import android.app.Dialog; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.Context; -import android.graphics.ColorFilter; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; @@ -67,7 +66,6 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.graph.ThemedBatteryDrawable; import com.android.wifitrackerlib.NetworkDetailsTracker; import com.android.wifitrackerlib.WifiEntry; @@ -441,23 +439,8 @@ public class WifiNetworkDetailsFragment extends RestrictedDashboardFragment impl @VisibleForTesting void updateBattery(boolean isChanging, int percentage) { Preference battery = getPreferenceScreen().findPreference(KEY_HOTSPOT_DEVICE_BATTERY); - battery.setSummary(formatPercentage(percentage)); - ThemedBatteryDrawable drawable = getBatteryDrawable(); - if (drawable != null) { - drawable.setCharging(isChanging); - drawable.setBatteryLevel(percentage); - } - battery.setIcon(drawable); - } - - @VisibleForTesting - ThemedBatteryDrawable getBatteryDrawable() { - int frameColor = getContext() - .getColor(com.android.settingslib.R.color.meter_background_color); - ThemedBatteryDrawable drawable = new ThemedBatteryDrawable(getContext(), frameColor); - ColorFilter colorFilter = Utils.getAlphaInvariantColorFilterForColor( - Utils.getColorAttrDefaultColor(getContext(), android.R.attr.colorControlNormal)); - drawable.setColorFilter(colorFilter); - return drawable; + battery.setSummary((isChanging) + ? getString(R.string.hotspot_battery_charging_summary, formatPercentage(percentage)) + : formatPercentage(percentage)); } } diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java index ad4aebf5ceb..8f96e271494 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java @@ -58,7 +58,6 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.wifi.WifiUtils; import com.android.settings.wifi.details2.WifiDetailPreferenceController2; import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.graph.ThemedBatteryDrawable; import com.android.wifitrackerlib.NetworkDetailsTracker; import com.android.wifitrackerlib.WifiEntry; @@ -67,7 +66,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; @@ -112,8 +110,6 @@ public class WifiNetworkDetailsFragmentTest { FakeFragment mFragment; PreferenceScreen mScreen; - ArgumentCaptor mThemedBatteryDrawableCaptor = - ArgumentCaptor.forClass(ThemedBatteryDrawable.class); @Before public void setUp() { @@ -290,25 +286,20 @@ public class WifiNetworkDetailsFragmentTest { } @Test - public void updateBattery_hiPercentageNoCharging_setResourceCorrect() { + public void updateBattery_hiPercentageNoCharging_setSummaryCorrect() { mFragment.updateBattery(false /* isChanging */, BATTERY_PERCENTAGE_MAX); verify(mBattery).setSummary(formatPercentage(BATTERY_PERCENTAGE_MAX)); - verify(mBattery).setIcon(mThemedBatteryDrawableCaptor.capture()); - ThemedBatteryDrawable drawable = mThemedBatteryDrawableCaptor.getValue(); - assertThat(drawable.getCharging()).isFalse(); - assertThat(drawable.getBatteryLevel()).isEqualTo(BATTERY_PERCENTAGE_MAX); } @Test - public void updateBattery_lowPercentageWithCharging_setResourceCorrect() { + public void updateBattery_lowPercentageWithCharging_setSummaryCorrect() { + String summary = mContext.getString(R.string.hotspot_battery_charging_summary, + formatPercentage(0)); + mFragment.updateBattery(true /* isChanging */, 0 /* percentage */); - verify(mBattery).setSummary(formatPercentage(0)); - verify(mBattery).setIcon(mThemedBatteryDrawableCaptor.capture()); - ThemedBatteryDrawable drawable = mThemedBatteryDrawableCaptor.getValue(); - assertThat(drawable.getCharging()).isTrue(); - assertThat(drawable.getBatteryLevel()).isEqualTo(0); + verify(mBattery).setSummary(summary); } // Fake WifiNetworkDetailsFragment to override the protected method as public.