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

Commit a381ebd2 authored by Ahan Wu's avatar Ahan Wu Committed by Wu Ahan
Browse files

Use longer timeout for reportShown call

If the system is under somewhat pressure, the one second timeout might
not be enough, let's use a longer timeout to mitigate it.

Bug: 194080642
Test: see b/199700573#comment10
Change-Id: I8b9f40b332138b771d0892917b3f737caa2311a0
parent 977ab888
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -548,12 +548,16 @@ public abstract class WallpaperService extends Service {
         */
        public void reportEngineShown(boolean waitForEngineShown) {
            if (mIWallpaperEngine.mShownReported) return;
            Message message = mCaller.obtainMessage(MSG_REPORT_SHOWN);
            if (!waitForEngineShown) {
                Message message = mCaller.obtainMessage(MSG_REPORT_SHOWN);
                mCaller.removeMessages(MSG_REPORT_SHOWN);
                mCaller.sendMessage(message);
            } else {
                mCaller.sendMessageDelayed(message, TimeUnit.SECONDS.toMillis(1));
                // if we are already waiting, no need to reset the timeout.
                if (!mCaller.hasMessages(MSG_REPORT_SHOWN)) {
                    Message message = mCaller.obtainMessage(MSG_REPORT_SHOWN);
                    mCaller.sendMessageDelayed(message, TimeUnit.SECONDS.toMillis(5));
                }
            }
        }

@@ -2078,6 +2082,8 @@ public abstract class WallpaperService extends Service {
                mShownReported = true;
                try {
                    mConnection.engineShown(this);
                    Log.d(TAG, "Wallpaper has updated the surface:"
                            + mWallpaperManager.getWallpaperInfo());
                } catch (RemoteException e) {
                    Log.w(TAG, "Wallpaper host disappeared", e);
                    return;