Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4645ba0 authored by Alastair Breeze's avatar Alastair Breeze Committed by Automerger Merge Worker
Browse files

Merge "Launch injected location settings on same task" into sc-v2-dev am: 366209d9 am: 0b67c129

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15897407

Change-Id: Ic27865a035dd52599c6decce16fb11b4981bb259
parents 068f33f6 0b67c129
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -319,23 +319,11 @@ public class SettingsInjector {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            // Activity to start if they click on the preference. Must start in new task to ensure
            // that "android.settings.LOCATION_SOURCE_SETTINGS" brings user back to
            // Settings > Location.
            // Activity to start if they click on the preference.
            Intent settingIntent = new Intent();
            settingIntent.setClassName(mInfo.packageName, mInfo.settingsActivity);
            // No flags set to ensure the activity is launched within the same settings task.
            logPreferenceClick(settingIntent);
            // Sometimes the user may navigate back to "Settings" and launch another different
            // injected setting after one injected setting has been launched.
            //
            // FLAG_ACTIVITY_CLEAR_TOP allows multiple Activities to stack on each other. When
            // "back" button is clicked, the user will navigate through all the injected settings
            // launched before. Such behavior could be quite confusing sometimes.
            //
            // In order to avoid such confusion, we use FLAG_ACTIVITY_CLEAR_TASK, which always clear
            // up all existing injected settings and make sure that "back" button always brings the
            // user back to "Settings" directly.
            settingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            mContext.startActivityAsUser(settingIntent, mInfo.mUserHandle);
            return true;
        }