summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorZoltan Szatmary-Ban <szatmz@google.com>2014-09-22 17:14:08 +0100
committerZoltan Szatmary-Ban <szatmz@google.com>2014-09-24 12:33:33 +0100
commitd50c7a887873cf4860498de37bddbfce0816ecf4 (patch)
treef9bf82ceb1191514898aec64ae6a5e7efa687a89 /src
parent2bfd4a5f2cb7e92331f9a4f44f1b70105cc2cb79 (diff)
downloadpackages_apps_Settings-d50c7a887873cf4860498de37bddbfce0816ecf4.zip
packages_apps_Settings-d50c7a887873cf4860498de37bddbfce0816ecf4.tar.gz
packages_apps_Settings-d50c7a887873cf4860498de37bddbfce0816ecf4.tar.bz2
Start PowerUsageDetails fragment in the correct activity
Make sure the stack does not get corrupted by running a fragment as a managed profile in an activity that runs as primary profile. Bug:17523189 Change-Id: I7a066a411c7995ffe44b73c6dc27b24eec85b5b3
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/Utils.java2
-rw-r--r--src/com/android/settings/fuelgauge/PowerUsageDetail.java10
2 files changed, 10 insertions, 2 deletions
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index de9fac7..08cfc58 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -613,6 +613,8 @@ public final class Utils {
int titleResId, CharSequence title, boolean isShortcut, UserHandle userHandle) {
Intent intent = onBuildStartFragmentIntent(context, fragmentName, args, titleResId,
title, isShortcut);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivityAsUser(intent, userHandle);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index 36a2444..3b8ecbe 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -259,8 +259,14 @@ public class PowerUsageDetail extends Fragment implements Button.OnClickListener
args.putIntArray(PowerUsageDetail.EXTRA_DETAIL_TYPES, types);
args.putDoubleArray(PowerUsageDetail.EXTRA_DETAIL_VALUES, values);
- caller.startPreferencePanelAsUser(PowerUsageDetail.class.getName(), args,
- R.string.details_title, null, new UserHandle(userId));
+ // This is a workaround, see b/17523189
+ if (userId == UserHandle.myUserId()) {
+ caller.startPreferencePanel(PowerUsageDetail.class.getName(), args,
+ R.string.details_title, null, null, 0);
+ } else {
+ caller.startPreferencePanelAsUser(PowerUsageDetail.class.getName(), args,
+ R.string.details_title, null, new UserHandle(userId));
+ }
}
public static final int ACTION_DISPLAY_SETTINGS = 1;