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

Commit ba7cf0dc authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing potential ANR when fetching for wallpaper info

Bug: 214581894
Test: Manual
Change-Id: I616b34b0ce6c96ed360073b2e8ff4eed81190add
parent 9ef75227
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ import android.os.SystemClock;
import android.util.Log;
import android.view.animation.Interpolator;

import androidx.annotation.AnyThread;

import com.android.launcher3.Utilities;
import com.android.launcher3.Workspace;
import com.android.launcher3.anim.Interpolators;
@@ -182,6 +184,7 @@ public class WallpaperOffsetInterpolator extends BroadcastReceiver {
        }
    }

    @AnyThread
    private void updateOffset() {
        Message.obtain(mHandler, MSG_SET_NUM_PARALLAX, getNumPagesForWallpaperParallax(), 0,
                mWindowToken).sendToTarget();
@@ -206,9 +209,12 @@ public class WallpaperOffsetInterpolator extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        UI_HELPER_EXECUTOR.execute(() -> {
            // Updating the boolean on a background thread is fine as the assignments are atomic
            mWallpaperIsLiveWallpaper =
                WallpaperManager.getInstance(mWorkspace.getContext()).getWallpaperInfo() != null;
                    WallpaperManager.getInstance(context).getWallpaperInfo() != null;
            updateOffset();
        });
    }

    private static final int MSG_START_ANIMATION = 1;