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

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

Merge "Delay the PinItemRequest#accept() call until the drop animation is...

Merge "Delay the PinItemRequest#accept() call until the drop animation is finished." into ub-launcher3-dorval
parents d73fbb5f 8a39b42c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1455,7 +1455,7 @@ public class Launcher extends BaseActivity
        ShortcutInfo info = null;
        if (Utilities.isAtLeastO()) {
            info = LauncherAppsCompat.createShortcutInfoFromPinItemRequest(
                    this, PinItemRequestCompat.getPinItemRequest(data));
                    this, PinItemRequestCompat.getPinItemRequest(data), 0);
        }

        if (info == null) {
+26 −2
Original line number Diff line number Diff line
@@ -27,10 +27,12 @@ import android.os.UserHandle;
import android.support.annotation.Nullable;

import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherModel;
import com.android.launcher3.ShortcutInfo;
import com.android.launcher3.Utilities;
import com.android.launcher3.graphics.LauncherIcons;
import com.android.launcher3.shortcuts.ShortcutInfoCompat;
import com.android.launcher3.util.LooperExecuter;

import java.util.List;

@@ -100,10 +102,32 @@ public abstract class LauncherAppsCompat {
     */
    @Nullable
    public static ShortcutInfo createShortcutInfoFromPinItemRequest(
            Context context, PinItemRequestCompat request) {
            Context context, final PinItemRequestCompat request, final long acceptDelay) {
        if (request != null &&
                request.getRequestType() == PinItemRequestCompat.REQUEST_TYPE_SHORTCUT &&
                request.isValid() && request.accept()) {
                request.isValid()) {

            if (acceptDelay <= 0) {
                if (!request.accept()) {
                    return null;
                }
            } else {
                // Block the worker thread until the accept() is called.
                new LooperExecuter(LauncherModel.getWorkerLooper()).execute(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            Thread.sleep(acceptDelay);
                        } catch (InterruptedException e) {
                            // Ignore
                        }
                        if (request.isValid()) {
                            request.accept();
                        }
                    }
                });
            }

            ShortcutInfoCompat compat = new ShortcutInfoCompat(request.getShortcutInfo());
            ShortcutInfo info = new ShortcutInfo(compat, context);
            // Apply the unbadged icon and fetch the actual icon asynchronously.
+9 −1
Original line number Diff line number Diff line
@@ -26,8 +26,10 @@ import android.graphics.drawable.Drawable;
import android.os.Build;

import com.android.launcher3.IconCache;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.R;
import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.PinItemRequestCompat;
import com.android.launcher3.compat.ShortcutConfigActivityInfo;
@@ -73,7 +75,13 @@ class PinShortcutRequestActivityInfo extends ShortcutConfigActivityInfo {

    @Override
    public com.android.launcher3.ShortcutInfo createShortcutInfo() {
        return LauncherAppsCompat.createShortcutInfoFromPinItemRequest(mContext, mRequest);
        // Total duration for the drop animation to complete.
        long duration = mContext.getResources().getInteger(R.integer.config_dropAnimMaxDuration) +
                Launcher.EXIT_SPRINGLOADED_MODE_SHORT_TIMEOUT +
                mContext.getResources().getInteger(R.integer.config_overlayTransitionTime) / 2;
        // Delay the actual accept() call until the drop animation is complete.
        return LauncherAppsCompat.createShortcutInfoFromPinItemRequest(
                mContext, mRequest, duration);
    }

    @Override