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

Commit f1ba6081 authored by Alastair Breeze's avatar Alastair Breeze
Browse files

Launch injected location settings on same task

Removes activity launch flags that cause the injected location settings
to launch in a new task. This improves animations and settings support
for different form factors.

Fixes: 197608838
Fixes: 197608555
Test: manual
Change-Id: If2deb44058f7d7786a27310d4430f2e83879baa9
parent b85da640
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;
        }