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
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user