Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17c47414 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Updating the title of the Add to homescreen prompt to the requesting...

Merge "Updating the title of the Add to homescreen prompt to the requesting app instead of the Launcher name" into tm-qpr-dev
parents a6f9b4b7 bb5ebb7f
Loading
Loading
Loading
Loading
+32 −12
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.LauncherApps.PinItemRequest;
import android.content.pm.ShortcutInfo;
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.data.ItemInfo;
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.views.AbstractSlideInView;
import com.android.launcher3.views.BaseDragLayer;
@@ -136,13 +139,25 @@ public class AddItemActivity extends BaseActivity
        mAccessibilityManager =
                getApplicationContext().getSystemService(AccessibilityManager.class);

        if (mRequest.getRequestType() == PinItemRequest.REQUEST_TYPE_SHORTCUT) {
            setupShortcut();
        } else {
            if (!setupWidget()) {
        PackageUserKey targetApp = null;
        switch (mRequest.getRequestType()) {
            case PinItemRequest.REQUEST_TYPE_SHORTCUT:
                targetApp = setupShortcut();
                break;
            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(
@@ -156,8 +171,10 @@ public class AddItemActivity extends BaseActivity
            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);
        widgetAppName.setText(getApplicationInfo().labelRes);
        widgetAppName.setText(info.loadLabel(getPackageManager()));

        mSlideInView = findViewById(R.id.add_item_bottom_sheet);
        mSlideInView.addOnCloseListener(this);
@@ -246,20 +263,23 @@ public class AddItemActivity extends BaseActivity
        }
    }

    private void setupShortcut() {
    private PackageUserKey setupShortcut() {
        PinShortcutRequestActivityInfo shortcutInfo =
                new PinShortcutRequestActivityInfo(mRequest, this);
        mWidgetCell.getWidgetView().setTag(new PendingAddShortcutInfo(shortcutInfo));
        applyWidgetItemAsync(
                () -> new WidgetItem(shortcutInfo, mApp.getIconCache(), getPackageManager()));
        return new PackageUserKey(
                mRequest.getShortcutInfo().getPackage(),
                mRequest.getShortcutInfo().getUserHandle());
    }

    private boolean setupWidget() {
    private PackageUserKey setupWidget() {
        LauncherAppWidgetProviderInfo widgetInfo = LauncherAppWidgetProviderInfo
                .fromProviderInfo(this, mRequest.getAppWidgetProviderInfo(this));
        if (widgetInfo.minSpanX > mIdp.numColumns || widgetInfo.minSpanY > mIdp.numRows) {
            // Cannot add widget
            return false;
            return null;
        }
        mWidgetCell.setRemoteViewsPreview(PinItemDragListener.getPreview(mRequest));

@@ -274,7 +294,7 @@ public class AddItemActivity extends BaseActivity
        mWidgetCell.getWidgetView().setTag(pendingInfo);

        applyWidgetItemAsync(() -> new WidgetItem(widgetInfo, mIdp, mApp.getIconCache()));
        return true;
        return new PackageUserKey(widgetInfo.provider.getPackageName(), widgetInfo.getUser());
    }

    private void applyWidgetItemAsync(final Supplier<WidgetItem> itemProvider) {