Merge "Updating the title of the Add to homescreen prompt to the requesting app instead of the Launcher name" into tm-qpr-dev am: 17c4741432

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

Change-Id: I96b1a2b01dfeef76bd3a9ba74599823dd76d30a6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-09-17 01:53:11 +00:00
committed by Automerger Merge Worker
@@ -31,6 +31,7 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipDescription; import android.content.ClipDescription;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.LauncherApps.PinItemRequest; import android.content.pm.LauncherApps.PinItemRequest;
import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutInfo;
import android.content.res.Configuration; import android.content.res.Configuration;
@@ -62,6 +63,8 @@ import com.android.launcher3.model.ItemInstallQueue;
import com.android.launcher3.model.WidgetItem; import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.pm.PinRequestHelper; import com.android.launcher3.pm.PinRequestHelper;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.SystemUiController; import com.android.launcher3.util.SystemUiController;
import com.android.launcher3.views.AbstractSlideInView; import com.android.launcher3.views.AbstractSlideInView;
import com.android.launcher3.views.BaseDragLayer; import com.android.launcher3.views.BaseDragLayer;
@@ -136,13 +139,25 @@ public class AddItemActivity extends BaseActivity
mAccessibilityManager = mAccessibilityManager =
getApplicationContext().getSystemService(AccessibilityManager.class); getApplicationContext().getSystemService(AccessibilityManager.class);
if (mRequest.getRequestType() == PinItemRequest.REQUEST_TYPE_SHORTCUT) { PackageUserKey targetApp = null;
setupShortcut(); switch (mRequest.getRequestType()) {
} else { case PinItemRequest.REQUEST_TYPE_SHORTCUT:
if (!setupWidget()) { targetApp = setupShortcut();
// TODO: show error toast? break;
finish(); case PinItemRequest.REQUEST_TYPE_APPWIDGET:
} targetApp = setupWidget();
break;
}
if (targetApp == null) {
// TODO: show error toast?
finish();
return;
}
ApplicationInfo info = new PackageManagerHelper(this)
.getApplicationInfo(targetApp.mPackageName, targetApp.mUser, 0);
if (info == null) {
finish();
return;
} }
WidgetCellPreview previewContainer = mWidgetCell.findViewById( WidgetCellPreview previewContainer = mWidgetCell.findViewById(
@@ -156,8 +171,10 @@ public class AddItemActivity extends BaseActivity
logCommand(LAUNCHER_ADD_EXTERNAL_ITEM_START); logCommand(LAUNCHER_ADD_EXTERNAL_ITEM_START);
} }
// Set the label synchronously instead of via IconCache as this is the first thing
// user sees
TextView widgetAppName = findViewById(R.id.widget_appName); TextView widgetAppName = findViewById(R.id.widget_appName);
widgetAppName.setText(getApplicationInfo().labelRes); widgetAppName.setText(info.loadLabel(getPackageManager()));
mSlideInView = findViewById(R.id.add_item_bottom_sheet); mSlideInView = findViewById(R.id.add_item_bottom_sheet);
mSlideInView.addOnCloseListener(this); mSlideInView.addOnCloseListener(this);
@@ -246,20 +263,23 @@ public class AddItemActivity extends BaseActivity
} }
} }
private void setupShortcut() { private PackageUserKey setupShortcut() {
PinShortcutRequestActivityInfo shortcutInfo = PinShortcutRequestActivityInfo shortcutInfo =
new PinShortcutRequestActivityInfo(mRequest, this); new PinShortcutRequestActivityInfo(mRequest, this);
mWidgetCell.getWidgetView().setTag(new PendingAddShortcutInfo(shortcutInfo)); mWidgetCell.getWidgetView().setTag(new PendingAddShortcutInfo(shortcutInfo));
applyWidgetItemAsync( applyWidgetItemAsync(
() -> new WidgetItem(shortcutInfo, mApp.getIconCache(), getPackageManager())); () -> new WidgetItem(shortcutInfo, mApp.getIconCache(), getPackageManager()));
return new PackageUserKey(
mRequest.getShortcutInfo().getPackage(),
mRequest.getShortcutInfo().getUserHandle());
} }
private boolean setupWidget() { private PackageUserKey setupWidget() {
LauncherAppWidgetProviderInfo widgetInfo = LauncherAppWidgetProviderInfo LauncherAppWidgetProviderInfo widgetInfo = LauncherAppWidgetProviderInfo
.fromProviderInfo(this, mRequest.getAppWidgetProviderInfo(this)); .fromProviderInfo(this, mRequest.getAppWidgetProviderInfo(this));
if (widgetInfo.minSpanX > mIdp.numColumns || widgetInfo.minSpanY > mIdp.numRows) { if (widgetInfo.minSpanX > mIdp.numColumns || widgetInfo.minSpanY > mIdp.numRows) {
// Cannot add widget // Cannot add widget
return false; return null;
} }
mWidgetCell.setRemoteViewsPreview(PinItemDragListener.getPreview(mRequest)); mWidgetCell.setRemoteViewsPreview(PinItemDragListener.getPreview(mRequest));
@@ -274,7 +294,7 @@ public class AddItemActivity extends BaseActivity
mWidgetCell.getWidgetView().setTag(pendingInfo); mWidgetCell.getWidgetView().setTag(pendingInfo);
applyWidgetItemAsync(() -> new WidgetItem(widgetInfo, mIdp, mApp.getIconCache())); applyWidgetItemAsync(() -> new WidgetItem(widgetInfo, mIdp, mApp.getIconCache()));
return true; return new PackageUserKey(widgetInfo.provider.getPackageName(), widgetInfo.getUser());
} }
private void applyWidgetItemAsync(final Supplier<WidgetItem> itemProvider) { private void applyWidgetItemAsync(final Supplier<WidgetItem> itemProvider) {