Merge "[a11y] Fix crash when using talkback to add to home screen." into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
18e0e1e50a
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
+6
-2
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user