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

Commit a8d4085e authored by Sunny Goyal's avatar Sunny Goyal Committed by android-build-merger
Browse files

Fix crash when launching some apps which require icons to be loaded on the model thread

am: 8be337b8

Change-Id: Id37f54a1374315a6c2d17ff3af029cfe75b5ed1d
parents d405653c 8be337b8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.view.View;
import com.android.launcher3.FastBitmapDrawable;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherModel;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager;
@@ -54,7 +55,6 @@ import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.icons.LauncherIcons;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.util.UiThreadHelper;

import java.util.Arrays;

@@ -210,7 +210,7 @@ public class DragView extends View implements LauncherStateManager.StateListener
            return;
        }
        // Load the adaptive icon on a background thread and add the view in ui thread.
        new Handler(UiThreadHelper.getBackgroundLooper()).postAtFrontOfQueue(new Runnable() {
        new Handler(LauncherModel.getWorkerLooper()).postAtFrontOfQueue(new Runnable() {
            @Override
            public void run() {
                Object[] outObj = new Object[1];
+1 −3
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.CancellationSignal;
import android.os.Handler;
import android.os.Looper;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -63,7 +62,6 @@ import com.android.launcher3.graphics.ShiftedBitmapDrawable;
import com.android.launcher3.icons.LauncherIcons;
import com.android.launcher3.popup.SystemShortcut;
import com.android.launcher3.shortcuts.DeepShortcutView;
import com.android.launcher3.util.UiThreadHelper;

import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
@@ -642,7 +640,7 @@ public class FloatingIconView extends View implements
                originalView.setVisibility(INVISIBLE);
            };
            CancellationSignal loadIconSignal = view.mLoadIconSignal;
            new Handler(UiThreadHelper.getBackgroundLooper()).postAtFrontOfQueue(() -> {
            new Handler(LauncherModel.getWorkerLooper()).postAtFrontOfQueue(() -> {
                view.getIcon(originalView, (ItemInfo) originalView.getTag(), isOpening,
                        onIconLoaded, loadIconSignal);
            });