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:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user