mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Merge "Delay the PinItemRequest#accept() call until the drop animation is finished." into ub-launcher3-dorval
This commit is contained in:
committed by
Android (Google) Code Review
commit
4a907d0f9d
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user