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

Commit 366209d9 authored by Alastair Breeze's avatar Alastair Breeze Committed by Android (Google) Code Review
Browse files

Merge "Launch injected location settings on same task" into sc-v2-dev

parents 22fb5df0 f1ba6081
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;
        }