Update Battery preference for Instant Hotspot am: ab895fdb9b

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24834492

Change-Id: If9568f609efa9fb0484697eceac1f7f9a136abff
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Weng Su
2023-09-22 18:06:51 +00:00
committed by Automerger Merge Worker
5 changed files with 37 additions and 34 deletions

View File

@@ -0,0 +1,25 @@
<!--
Copyright (C) 2023 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M320,880Q303,880 291.5,868.5Q280,857 280,840L280,200Q280,183 291.5,171.5Q303,160 320,160L400,160L400,80L560,80L560,160L640,160Q657,160 668.5,171.5Q680,183 680,200L680,840Q680,857 668.5,868.5Q657,880 640,880L320,880Z"/>
</vector>

View File

@@ -2003,6 +2003,8 @@
<string name="internet_source_mobile_data">Mobile data</string>
<!-- Ethernet summary in Internet source preference [CHAR LIMIT=NONE]-->
<string name="internet_source_ethernet">Ethernet</string>
<!-- Hotspot device details battery charging summary [CHAR LIMIT=NONE]-->
<string name="hotspot_battery_charging_summary"><xliff:g id="battery_percentage" example="80%">%s</xliff:g> \u2011 Charging</string>
<!-- Hotspot device details preference category title in Network details [CHAR LIMIT=NONE]-->
<string name="hotspot_connection_category">Hotspot connection</string>
<!-- Connection strength preference in Hotspot connection preference category [CHAR LIMIT=NONE]-->

View File

@@ -52,6 +52,7 @@
settings:enableCopying="true"/>
<Preference
android:key="hotspot_device_details_battery"
android:icon="@drawable/ic_battery_full"
android:title="@string/power_usage_summary_title"
android:selectable="false"
settings:enableCopying="true"/>

View File

@@ -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;
@@ -66,7 +65,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;
@@ -436,22 +434,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(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));
}
}

View File

@@ -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<ThemedBatteryDrawable> 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.