Merge "Import translations. DO NOT MERGE ANYWHERE" into sc-v2-dev
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
index ce7ad24..c4bef25 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
@@ -58,11 +58,25 @@
return admin;
}
admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN);
+ int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+
+ Bundle adminDetails = null;
+ if (admin.component == null) {
+ DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class);
+ adminDetails = devicePolicyManager.getEnforcingAdminAndUserDetails(userId,
+ getRestrictionFromIntent(intent));
+ if (adminDetails != null) {
+ admin.component = adminDetails.getParcelable(
+ DevicePolicyManager.EXTRA_DEVICE_ADMIN);
+ }
+ }
if (intent.hasExtra(Intent.EXTRA_USER)) {
admin.user = intent.getParcelableExtra(Intent.EXTRA_USER);
} else {
- int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ if (adminDetails != null) {
+ userId = adminDetails.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ }
if (userId == UserHandle.USER_NULL) {
admin.user = null;
} else {
diff --git a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
index 2eb7cf4..0947938 100644
--- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
@@ -30,6 +30,7 @@
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.utils.ThreadUtils;
import java.util.HashMap;
@@ -38,8 +39,9 @@
@VisibleForTesting
protected boolean mIsBatteryPresent = true;
+ @VisibleForTesting
+ Preference mPreference;
private final BatteryBroadcastReceiver mBatteryBroadcastReceiver;
- private Preference mPreference;
private BatteryInfo mBatteryInfo;
private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
@@ -140,14 +142,26 @@
}
if (batteryStatusUpdate) {
- if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
- mBatteryStatusLabel = null; // will generateLabel()
- }
+ setSummaryAsync(info);
}
return (mBatteryStatusLabel == null) ? generateLabel(info) : mBatteryStatusLabel;
}
+ private void setSummaryAsync(BatteryInfo info) {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ final boolean triggerBatteryStatusUpdate =
+ mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info);
+ ThreadUtils.postOnMainThread(() -> {
+ if (!triggerBatteryStatusUpdate) {
+ mBatteryStatusLabel = null; // will generateLabel()
+ }
+ mPreference.setSummary(
+ (mBatteryStatusLabel == null) ? generateLabel(info) : mBatteryStatusLabel);
+ });
+ });
+ }
+
private CharSequence generateLabel(BatteryInfo info) {
if (!info.discharging && info.chargeLabel != null) {
return info.chargeLabel;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
index 3201d82..eef6988 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
@@ -156,6 +156,7 @@
@Test
public void getDashboardLabel_returnsCorrectLabel() {
+ mController.mPreference = new Preference(mContext);
BatteryInfo info = new BatteryInfo();
info.batteryPercentString = "3%";
assertThat(mController.getDashboardLabel(mContext, info, true))