Merge "[a11y] Fix crash when using talkback to add to home screen." into udc-qpr-dev am: 18e0e1e50a

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23849395

Change-Id: I677a0e430b79b13a85f955a85421d78c5a166969
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Holly Jiuyu Sun
2023-06-30 18:27:19 +00:00
committed by Automerger Merge Worker
5 changed files with 23 additions and 16 deletions
@@ -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";
@@ -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;
+5 -12
View File
@@ -1407,8 +1407,7 @@ public class Launcher extends StatefulActivity<LauncherState>
*/
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<LauncherState>
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);
}
}
@@ -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
@@ -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<StartActivityParams> CREATOR =
new Parcelable.Creator<StartActivityParams>() {
new Parcelable.Creator<>() {
public StartActivityParams createFromParcel(Parcel source) {
return new StartActivityParams(source);
}