Loading src/com/android/settings/SettingsActivity.java +23 −9 Original line number Diff line number Diff line Loading @@ -934,6 +934,19 @@ public class SettingsActivity extends Activity */ public void startPreferencePanelAsUser(String fragmentClass, Bundle args, int titleRes, CharSequence titleText, UserHandle userHandle) { // This is a workaround. // // Calling startWithFragmentAsUser() without specifying FLAG_ACTIVITY_NEW_TASK to the intent // starting the fragment could cause a native stack corruption. See b/17523189. However, // adding that flag and start the preference panel with the same UserHandler will make it // impossible to use back button to return to the previous screen. See b/20042570. // // We work around this issue by adding FLAG_ACTIVITY_NEW_TASK to the intent, while doing // another check here to call startPreferencePanel() instead of startWithFragmentAsUser() // when we're calling it as the same user. if (userHandle.getIdentifier() == UserHandle.myUserId()) { startPreferencePanel(fragmentClass, args, titleRes, titleText, null, 0); } else { String title = null; if (titleRes < 0) { if (titleText != null) { Loading @@ -946,6 +959,7 @@ public class SettingsActivity extends Activity Utils.startWithFragmentAsUser(this, fragmentClass, args, titleRes, title, mIsShortcut, userHandle); } } /** * Called by a preference panel fragment to finish itself. Loading src/com/android/settings/fuelgauge/PowerUsageDetail.java +2 −8 Original line number Diff line number Diff line Loading @@ -260,15 +260,9 @@ public class PowerUsageDetail extends InstrumentedFragment implements Button.OnC args.putIntArray(PowerUsageDetail.EXTRA_DETAIL_TYPES, types); args.putDoubleArray(PowerUsageDetail.EXTRA_DETAIL_VALUES, values); // 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; public static final int ACTION_WIFI_SETTINGS = 2; Loading Loading
src/com/android/settings/SettingsActivity.java +23 −9 Original line number Diff line number Diff line Loading @@ -934,6 +934,19 @@ public class SettingsActivity extends Activity */ public void startPreferencePanelAsUser(String fragmentClass, Bundle args, int titleRes, CharSequence titleText, UserHandle userHandle) { // This is a workaround. // // Calling startWithFragmentAsUser() without specifying FLAG_ACTIVITY_NEW_TASK to the intent // starting the fragment could cause a native stack corruption. See b/17523189. However, // adding that flag and start the preference panel with the same UserHandler will make it // impossible to use back button to return to the previous screen. See b/20042570. // // We work around this issue by adding FLAG_ACTIVITY_NEW_TASK to the intent, while doing // another check here to call startPreferencePanel() instead of startWithFragmentAsUser() // when we're calling it as the same user. if (userHandle.getIdentifier() == UserHandle.myUserId()) { startPreferencePanel(fragmentClass, args, titleRes, titleText, null, 0); } else { String title = null; if (titleRes < 0) { if (titleText != null) { Loading @@ -946,6 +959,7 @@ public class SettingsActivity extends Activity Utils.startWithFragmentAsUser(this, fragmentClass, args, titleRes, title, mIsShortcut, userHandle); } } /** * Called by a preference panel fragment to finish itself. Loading
src/com/android/settings/fuelgauge/PowerUsageDetail.java +2 −8 Original line number Diff line number Diff line Loading @@ -260,15 +260,9 @@ public class PowerUsageDetail extends InstrumentedFragment implements Button.OnC args.putIntArray(PowerUsageDetail.EXTRA_DETAIL_TYPES, types); args.putDoubleArray(PowerUsageDetail.EXTRA_DETAIL_VALUES, values); // 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; public static final int ACTION_WIFI_SETTINGS = 2; Loading