Return to Launcher Home after wallpaper/grid apply

Video: https://drive.google.com/file/d/13CTn7f8PJVgBQYzznsf9jYoiKhCz0xSs/view?usp=sharing&resourcekey=0-qZbJpbFCDmI0lvkBZHJrQg

Bug: 188361386
Test: manual
Change-Id: Ia7b8fad1a1d56e4280d92468eed89e7628dc00a9
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java
index ab381ee..b0802cf 100644
--- a/src/com/android/customization/picker/grid/GridFragment.java
+++ b/src/com/android/customization/picker/grid/GridFragment.java
@@ -44,6 +44,7 @@
 import com.android.customization.module.ThemesUserEventLogger;
 import com.android.customization.picker.ViewOnlyFullPreviewActivity;
 import com.android.customization.picker.WallpaperPreviewer;
+import com.android.customization.util.LaunchUtils;
 import com.android.customization.widget.OptionSelectorController;
 import com.android.wallpaper.R;
 import com.android.wallpaper.model.WallpaperInfo;
@@ -93,6 +94,9 @@
             Toast.makeText(getContext(), R.string.applied_grid_msg, Toast.LENGTH_SHORT).show();
             getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
             getActivity().finish();
+
+            // Go back to launcher home
+            LaunchUtils.launchHome(getContext());
         }
 
         @Override
diff --git a/src/com/android/customization/util/LaunchUtils.java b/src/com/android/customization/util/LaunchUtils.java
new file mode 100644
index 0000000..5779168
--- /dev/null
+++ b/src/com/android/customization/util/LaunchUtils.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.customization.util;
+
+import android.content.Context;
+import android.content.Intent;
+
+/** Util class for launching activity. */
+public class LaunchUtils {
+
+    /** Goes to Launcher's Home. */
+    public static void launchHome(Context context) {
+        Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
+        launcherIntent.addCategory(Intent.CATEGORY_HOME);
+        launcherIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        context.startActivity(launcherIntent);
+    }
+}