Merge "Add FLAG_ACTIVITY_SINGLE_TOP to shortcuts intent" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-06-24 02:38:54 +00:00
committed by Android (Google) Code Review

View File

@@ -46,6 +46,7 @@ import androidx.preference.PreferenceGroup;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.gestures.OneHandedSettingsUtils; import com.android.settings.gestures.OneHandedSettingsUtils;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -127,7 +128,7 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
return false; return false;
} }
final Intent shortcutIntent = createResultIntent( final Intent shortcutIntent = createResultIntent(
buildShortcutIntent(info), buildShortcutIntent(uiContext, info),
info, clickTarget.getTitle()); info, clickTarget.getTitle());
mHost.setResult(Activity.RESULT_OK, shortcutIntent); mHost.setResult(Activity.RESULT_OK, shortcutIntent);
logCreateShortcut(info); logCreateShortcut(info);
@@ -210,10 +211,14 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
info.activityInfo.name); info.activityInfo.name);
} }
private static Intent buildShortcutIntent(ResolveInfo info) { private static Intent buildShortcutIntent(Context context, ResolveInfo info) {
return new Intent(SHORTCUT_PROBE) Intent intent = new Intent(SHORTCUT_PROBE)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setClassName(info.activityInfo.packageName, info.activityInfo.name); .setClassName(info.activityInfo.packageName, info.activityInfo.name);
if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(context)) {
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
}
return intent;
} }
private static ShortcutInfo createShortcutInfo(Context context, Intent shortcutIntent, private static ShortcutInfo createShortcutInfo(Context context, Intent shortcutIntent,
@@ -277,8 +282,8 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
ResolveInfo ri = context.getPackageManager().resolveActivity(si.getIntent(), 0); ResolveInfo ri = context.getPackageManager().resolveActivity(si.getIntent(), 0);
if (ri != null) { if (ri != null) {
updatedShortcuts.add(createShortcutInfo(context, buildShortcutIntent(ri), ri, updatedShortcuts.add(createShortcutInfo(context,
si.getShortLabel())); buildShortcutIntent(context, ri), ri, si.getShortLabel()));
} }
} }
} }