diff --git a/quickstep/src/com/android/launcher3/proxy/ProxyActivityStarter.java b/quickstep/src/com/android/launcher3/proxy/ProxyActivityStarter.java index 4d7cc85ed1..6d90b03533 100644 --- a/quickstep/src/com/android/launcher3/proxy/ProxyActivityStarter.java +++ b/quickstep/src/com/android/launcher3/proxy/ProxyActivityStarter.java @@ -24,6 +24,8 @@ import android.content.IntentSender.SendIntentException; import android.os.Bundle; import android.util.Log; +import com.android.launcher3.util.StartActivityParams; + public class ProxyActivityStarter extends Activity { private static final String TAG = "ProxyActivityStarter"; diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 582b7955eb..1ba11fd01d 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -120,7 +120,6 @@ import com.android.launcher3.model.WellbeingModel; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.popup.SystemShortcut; import com.android.launcher3.proxy.ProxyActivityStarter; -import com.android.launcher3.proxy.StartActivityParams; import com.android.launcher3.statehandlers.DepthController; import com.android.launcher3.statehandlers.DesktopVisibilityController; import com.android.launcher3.statemanager.StateManager.AtomicAnimationFactory; @@ -152,6 +151,7 @@ import com.android.launcher3.util.RunnableList; import com.android.launcher3.util.SplitConfigurationOptions; import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption; import com.android.launcher3.util.SplitConfigurationOptions.SplitSelectSource; +import com.android.launcher3.util.StartActivityParams; import com.android.launcher3.util.TouchController; import com.android.launcher3.widget.LauncherWidgetHolder; import com.android.quickstep.OverviewCommandHelper; diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 7e4300282d..66c76ca597 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1407,8 +1407,7 @@ public class Launcher extends StatefulActivity */ protected void completeAddShortcut(Intent data, int container, int screenId, int cellX, int cellY, PendingRequestArgs args) { - if (args.getRequestCode() != REQUEST_CREATE_SHORTCUT - || args.getPendingIntent().getComponent() == null) { + if (args.getRequestCode() != REQUEST_CREATE_SHORTCUT) { return; } @@ -1916,16 +1915,10 @@ public class Launcher extends StatefulActivity info.spanX = spanX; info.spanY = spanY; - switch (info.itemType) { - case LauncherSettings.Favorites.ITEM_TYPE_CUSTOM_APPWIDGET: - case LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET: - addAppWidgetFromDrop((PendingAddWidgetInfo) info); - break; - case LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT: - processShortcutFromDrop((PendingAddShortcutInfo) info); - break; - default: - throw new IllegalStateException("Unknown item type: " + info.itemType); + if (info instanceof PendingAddWidgetInfo) { + addAppWidgetFromDrop((PendingAddWidgetInfo) info); + } else { // info can only be PendingAddShortcutInfo + processShortcutFromDrop((PendingAddShortcutInfo) info); } } diff --git a/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java b/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java index 7bdec1cfde..0f3cad66a2 100644 --- a/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java +++ b/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java @@ -16,6 +16,8 @@ package com.android.launcher3.dragndrop; +import static android.content.pm.LauncherApps.EXTRA_PIN_ITEM_REQUEST; + import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY; import static com.android.launcher3.LauncherState.EDIT_MODE; import static com.android.launcher3.LauncherState.SPRING_LOADED; @@ -25,6 +27,7 @@ import android.annotation.TargetApi; import android.app.Activity; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.pm.LauncherApps; import android.content.pm.LauncherApps.PinItemRequest; import android.content.pm.PackageManager; @@ -41,6 +44,7 @@ import com.android.launcher3.icons.IconCache; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.pm.PinRequestHelper; import com.android.launcher3.pm.ShortcutConfigActivityInfo; +import com.android.launcher3.util.StartActivityParams; import java.util.function.Supplier; @@ -105,7 +109,11 @@ public class PinShortcutRequestActivityInfo extends ShortcutConfigActivityInfo { @Override public boolean startConfigActivity(Activity activity, int requestCode) { - return false; + new StartActivityParams(activity, requestCode).deliverResult( + activity, + Activity.RESULT_OK, + new Intent().putExtra(EXTRA_PIN_ITEM_REQUEST, mRequestSupplier.get())); + return true; } @Override diff --git a/quickstep/src/com/android/launcher3/proxy/StartActivityParams.java b/src/com/android/launcher3/util/StartActivityParams.java similarity index 95% rename from quickstep/src/com/android/launcher3/proxy/StartActivityParams.java rename to src/com/android/launcher3/util/StartActivityParams.java index 4d0bee6c4e..b48562f2d8 100644 --- a/quickstep/src/com/android/launcher3/proxy/StartActivityParams.java +++ b/src/com/android/launcher3/util/StartActivityParams.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.launcher3.proxy; +package com.android.launcher3.util; import static android.app.PendingIntent.FLAG_MUTABLE; import static android.app.PendingIntent.FLAG_ONE_SHOT; @@ -34,6 +34,9 @@ import android.os.Parcel; import android.os.Parcelable; import android.util.Log; +/** + * Wrapper class for parameters to start an activity. + */ public class StartActivityParams implements Parcelable { private static final String TAG = "StartActivityParams"; @@ -93,6 +96,7 @@ public class StartActivityParams implements Parcelable { parcel.writeBundle(options); } + /** Perform the operation on the pendingIntent. */ public void deliverResult(Context context, int resultCode, Intent data) { ActivityOptions options = allowBGLaunch(ActivityOptions.makeBasic()); try { @@ -105,7 +109,7 @@ public class StartActivityParams implements Parcelable { } public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { + new Parcelable.Creator<>() { public StartActivityParams createFromParcel(Parcel source) { return new StartActivityParams(source); }