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

Commit 0709c740 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix race condition while WallpaperMS rebinding service." into rvc-dev am: bb4af580

Change-Id: If21ba0be1196b76ffc32b0d6c6a9479032eb37a8
parents 895380d4 bb4af580
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -3501,8 +3501,11 @@ public final class ActiveServices {
                }
            }

            // If unbound while waiting to start, remove the pending service
            // If unbound while waiting to start and there is no connection left in this service,
            // remove the pending service
            if (s.getConnections().isEmpty()) {
                mPendingServices.remove(s);
            }

            if ((c.flags&Context.BIND_AUTO_CREATE) != 0) {
                boolean hasAutoCreate = s.hasAutoCreateConnections();
+6 −2
Original line number Diff line number Diff line
@@ -1173,6 +1173,10 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
            }
        };

        private Runnable mTryToRebindRunnable = () -> {
            tryToRebind();
        };

        WallpaperConnection(WallpaperInfo info, WallpaperData wallpaper, int clientUid) {
            mInfo = info;
            mWallpaper = wallpaper;
@@ -1279,7 +1283,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
                        saveSettingsLocked(mWallpaper.userId);
                    }
                    FgThread.getHandler().removeCallbacks(mResetRunnable);
                    mContext.getMainThreadHandler().removeCallbacks(this::tryToRebind);
                    mContext.getMainThreadHandler().removeCallbacks(mTryToRebindRunnable);
                }
            }
        }
@@ -1337,7 +1341,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
                        < WALLPAPER_RECONNECT_TIMEOUT_MS) {
                    // Bind fail without timeout, schedule rebind
                    Slog.w(TAG, "Rebind fail! Try again later");
                    mContext.getMainThreadHandler().postDelayed(this::tryToRebind, 1000);
                    mContext.getMainThreadHandler().postDelayed(mTryToRebindRunnable, 1000);
                } else {
                    // Timeout
                    Slog.w(TAG, "Reverting to built-in wallpaper!");