Merge "Remove items from not allowed show summary list (legacy rule)" into sc-dev
diff --git a/res/layout/preference_battery_error.xml b/res/layout/preference_battery_error.xml
index 68ac6a2..05d842b 100644
--- a/res/layout/preference_battery_error.xml
+++ b/res/layout/preference_battery_error.xml
@@ -47,6 +47,7 @@
android:layout_marginTop="12dp"
android:layout_marginBottom="16dp"
android:text="@string/battery_missing_message"
+ android:textColor="@color/battery_info_error_color_black"
android:textAppearance="?android:attr/textAppearanceListItem" />
<TextView android:id="@+id/link_text"
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0fe4975..adee07c 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -210,4 +210,7 @@
<!-- Material inverse ripple color, useful for inverted backgrounds. -->
<color name="ripple_material_inverse">@*android:color/ripple_material_dark</color>
+
+ <!-- Battery error text color -->
+ <color name="battery_info_error_color_black">@*android:color/primary_text_default_material_light</color>
</resources>
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index 3c9cbaa..3bb8448 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -332,9 +332,12 @@
mTrapezoidIndex = trapezoidIndex;
mHandler.post(() -> {
+ final long start = System.currentTimeMillis();
removeAndCacheAllPrefs();
addAllPreferences();
refreshCategoryTitle();
+ Log.d(TAG, String.format("refreshUi is finished in %d/ms",
+ (System.currentTimeMillis() - start)));
});
return true;
}
diff --git a/src/com/android/settings/fuelgauge/BatteryEntry.java b/src/com/android/settings/fuelgauge/BatteryEntry.java
index 0478c8b..5c9d071 100644
--- a/src/com/android/settings/fuelgauge/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryEntry.java
@@ -572,7 +572,8 @@
name = context.getResources().getString(R.string.process_kernel_label);
} else if ("mediaserver".equals(name)) {
name = context.getResources().getString(R.string.process_mediaserver_label);
- } else if ("dex2oat".equals(name)) {
+ } else if ("dex2oat".equals(name) || "dex2oat32".equals(name) ||
+ "dex2oat64".equals(name)) {
name = context.getResources().getString(R.string.process_dex2oat_label);
}
return new NameAndIcon(name, icon, 0 /* iconId */);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
index 96f0ec7..c1b1761 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
@@ -22,6 +22,7 @@
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -36,6 +37,7 @@
import android.os.UserManager;
import com.android.settings.R;
+import com.android.settings.fuelgauge.BatteryEntry.NameAndIcon;
import org.junit.Before;
import org.junit.Rule;
@@ -64,6 +66,7 @@
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mMockContext;
+ private Context mContext;
@Mock private Handler mockHandler;
@Mock private PackageManager mockPackageManager;
@Mock private UserManager mockUserManager;
@@ -71,6 +74,7 @@
@Before
public void stubContextToReturnMockPackageManager() {
+ mContext = spy(RuntimeEnvironment.application);
when(mMockContext.getPackageManager()).thenReturn(mockPackageManager);
}
@@ -248,4 +252,77 @@
final String key = entry.getKey();
assertThat(key).isEqualTo("U|2");
}
+
+ @Test
+ public void getNameAndIconFromUserId_nullUserInfo_returnDefaultNameAndIcon() {
+ final int userId = 1001;
+ doReturn(mockUserManager).when(mContext).getSystemService(UserManager.class);
+ doReturn(null).when(mockUserManager).getUserInfo(userId);
+
+ final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUserId(
+ mContext, userId);
+ assertThat(nameAndIcon.name).isEqualTo(getString(
+ R.string.running_process_item_removed_user_label));
+ assertThat(nameAndIcon.icon).isNull();
+ }
+
+ @Test
+ public void getNameAndIconFromUid_rerturnExpectedName() {
+ final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
+ mContext, /* name */ null, /* uid */ 0);
+ assertThat(nameAndIcon.name).isEqualTo(getString(R.string.process_kernel_label));
+
+ assertNameAndIcon("mediaserver", R.string.process_mediaserver_label);
+ assertNameAndIcon("dex2oat32", R.string.process_dex2oat_label);
+ assertNameAndIcon("dex2oat64", R.string.process_dex2oat_label);
+ assertNameAndIcon("dex2oat", R.string.process_dex2oat_label);
+ }
+
+ @Test
+ public void getNameAndIconFromPowerComponent_rerturnExpectedNameAndIcon() {
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+ R.string.ambient_display_screen_title,
+ R.drawable.ic_settings_aod);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+ R.string.power_bluetooth,
+ com.android.internal.R.drawable.ic_settings_bluetooth);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CAMERA,
+ R.string.power_camera,
+ R.drawable.ic_settings_camera);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
+ R.string.power_cell,
+ R.drawable.ic_cellular_1_bar);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
+ R.string.power_flashlight,
+ R.drawable.ic_settings_display);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_PHONE,
+ R.string.power_phone,
+ R.drawable.ic_settings_voice_calls);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_SCREEN,
+ R.string.power_screen,
+ R.drawable.ic_settings_display);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_WIFI,
+ R.string.power_wifi,
+ R.drawable.ic_settings_wireless);
+ assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_IDLE,
+ R.string.power_idle,
+ R.drawable.ic_settings_phone_idle);
+ }
+
+ private void assertNameAndIcon(String name, int stringId) {
+ final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
+ mContext, name, /* uid */ 1000);
+ assertThat(nameAndIcon.name).isEqualTo(getString(stringId));
+ }
+
+ private void assertNameAndIcon(int powerComponentId, int stringId, int iconId) {
+ final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromPowerComponent(
+ mContext, powerComponentId);
+ assertThat(nameAndIcon.name).isEqualTo(getString(stringId));
+ assertThat(nameAndIcon.iconId).isEqualTo(iconId);
+ }
+
+ private String getString(int stringId) {
+ return mContext.getResources().getString(stringId);
+ }
}