diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java index 370392be2d8..a0dac5a9ec5 100644 --- a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java +++ b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java @@ -23,6 +23,7 @@ import android.util.FeatureFlagUtils; import android.util.Log; import android.util.TypedValue; +import androidx.window.embedding.ActivityEmbeddingController; import androidx.window.embedding.SplitController; import com.android.settings.R; @@ -81,4 +82,13 @@ public class ActivityEmbeddingUtils { return dm.widthPixels >= (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, MIN_REGULAR_HOMEPAGE_LAYOUT_WIDTH_DP, dm); } + + /** + * Check if activity is already embedded + */ + public static boolean isAlreadyEmbedded(Activity activity) { + return ActivityEmbeddingController + .getInstance(activity) + .isActivityEmbedded(activity); + } } diff --git a/src/com/android/settings/search/SearchResultTrampoline.java b/src/com/android/settings/search/SearchResultTrampoline.java index bcd8ee0ccdf..6ba0338bfc9 100644 --- a/src/com/android/settings/search/SearchResultTrampoline.java +++ b/src/com/android/settings/search/SearchResultTrampoline.java @@ -102,7 +102,8 @@ public class SearchResultTrampoline extends Activity { intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); - if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { + if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) + || ActivityEmbeddingUtils.isAlreadyEmbedded(this)) { startActivity(intent); } else if (isSettingsIntelligence(callingActivity)) { if (FeatureFlagUtils.isEnabled(this, FeatureFlags.SETTINGS_SEARCH_ALWAYS_EXPAND)) {