diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 13de470976..1b888c9b6e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -20,10 +20,11 @@ import static android.os.Trace.TRACE_TAG_APP; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPTIMIZE_MEASURE; import static android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED; +import static com.android.launcher3.LauncherSettings.Animation.DEFAULT_NO_ICON; +import static com.android.launcher3.LauncherSettings.Animation.VIEW_BACKGROUND; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT; -import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_SEARCH_ACTION; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; @@ -1068,7 +1069,8 @@ public class QuickstepLauncher extends Launcher { activityOptions.options.setSourceInfo(ActivityOptions.SourceInfo.TYPE_LAUNCHER, mLastTouchUpTime); } - if (item != null && item.itemType == ITEM_TYPE_SEARCH_ACTION) { + if (item != null && (item.animationType == DEFAULT_NO_ICON + || item.animationType == VIEW_BACKGROUND)) { activityOptions.options.setSplashScreenStyle( SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR); } else { diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java index cef00d9e7d..6e3e96ca93 100644 --- a/src/com/android/launcher3/LauncherSettings.java +++ b/src/com/android/launcher3/LauncherSettings.java @@ -41,6 +41,10 @@ public class LauncherSettings { * An animation using the view's background. */ public static final int VIEW_BACKGROUND = 1; + /** + * The default animation for a given view/item info type, but without the splash icon. + */ + public static final int DEFAULT_NO_ICON = 2; } /** diff --git a/src/com/android/launcher3/views/ActivityContext.java b/src/com/android/launcher3/views/ActivityContext.java index b6f622359e..10f40b7124 100644 --- a/src/com/android/launcher3/views/ActivityContext.java +++ b/src/com/android/launcher3/views/ActivityContext.java @@ -45,6 +45,7 @@ import android.view.WindowInsets; import android.view.WindowInsetsController; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; +import android.window.SplashScreen; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -320,7 +321,14 @@ public interface ActivityContext { return false; } - Bundle optsBundle = (v != null) ? getActivityLaunchOptions(v, item).toBundle() : null; + Bundle optsBundle = null; + if (v != null) { + optsBundle = getActivityLaunchOptions(v, item).toBundle(); + } else if (item != null && item.animationType == LauncherSettings.Animation.DEFAULT_NO_ICON + && Utilities.ATLEAST_T) { + optsBundle = ActivityOptions.makeBasic() + .setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR).toBundle(); + } UserHandle user = item == null ? null : item.user; // Prepare intent