diff options
author | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-09-22 17:14:08 +0100 |
---|---|---|
committer | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-09-24 12:33:33 +0100 |
commit | d50c7a887873cf4860498de37bddbfce0816ecf4 (patch) | |
tree | f9bf82ceb1191514898aec64ae6a5e7efa687a89 /src | |
parent | 2bfd4a5f2cb7e92331f9a4f44f1b70105cc2cb79 (diff) | |
download | packages_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.java | 2 | ||||
-rw-r--r-- | src/com/android/settings/fuelgauge/PowerUsageDetail.java | 10 |
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; |