From 706b900f178da9b248fdbd4a00ce63f6ab1a506c Mon Sep 17 00:00:00 2001 From: Sharon Su Date: Fri, 1 Sep 2023 02:05:02 +0000 Subject: Invoke the correct callback for TOO_MANY_REQUESTS and PENDING responses. Bug: 298536057 Test: atest CtsWallpaperEffectsGenerationServiceTestCases Change-Id: I09ae35f7f61db8f5e99f2dccab8191d1ea7294c0 --- .../WallpaperEffectsGenerationPerUserService.java | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/services/wallpapereffectsgeneration/java/com/android/server/wallpapereffectsgeneration/WallpaperEffectsGenerationPerUserService.java b/services/wallpapereffectsgeneration/java/com/android/server/wallpapereffectsgeneration/WallpaperEffectsGenerationPerUserService.java index 3870dfd17d50..4f99f14e4dc1 100644 --- a/services/wallpapereffectsgeneration/java/com/android/server/wallpapereffectsgeneration/WallpaperEffectsGenerationPerUserService.java +++ b/services/wallpapereffectsgeneration/java/com/android/server/wallpapereffectsgeneration/WallpaperEffectsGenerationPerUserService.java @@ -95,21 +95,29 @@ public class WallpaperEffectsGenerationPerUserService extends String newTaskId = cinematicEffectRequest.getTaskId(); // Previous request is still being processed. if (mCinematicEffectListenerWrapper != null) { + CinematicEffectResponse cinematicEffectResponse; if (mCinematicEffectListenerWrapper.mTaskId.equals(newTaskId)) { - invokeCinematicListenerAndCleanup( - new CinematicEffectResponse.Builder( - CinematicEffectResponse.CINEMATIC_EFFECT_STATUS_PENDING, newTaskId) - .build() - ); + cinematicEffectResponse = new CinematicEffectResponse.Builder( + CinematicEffectResponse.CINEMATIC_EFFECT_STATUS_PENDING, newTaskId) + .build(); } else { - invokeCinematicListenerAndCleanup( - new CinematicEffectResponse.Builder( - CinematicEffectResponse.CINEMATIC_EFFECT_STATUS_TOO_MANY_REQUESTS, - newTaskId).build() - ); + cinematicEffectResponse = new CinematicEffectResponse.Builder( + CinematicEffectResponse.CINEMATIC_EFFECT_STATUS_TOO_MANY_REQUESTS, + newTaskId) + .build(); + } + try { + cinematicEffectListener.onCinematicEffectGenerated(cinematicEffectResponse); + return; + } catch (RemoteException e) { + if (isDebug()) { + Slog.w(TAG, "RemoteException invoking cinematic effect listener for task[" + + mCinematicEffectListenerWrapper.mTaskId + "]"); + } + return; } - return; } + RemoteWallpaperEffectsGenerationService remoteService = ensureRemoteServiceLocked(); if (remoteService != null) { remoteService.executeOnResolvedService( -- cgit v1.2.3-59-g8ed1b