diff options
| author | 2023-03-04 06:55:37 +0000 | |
|---|---|---|
| committer | 2023-03-04 06:55:37 +0000 | |
| commit | 729033b51cf01727da93a521d0b5319841751b0a (patch) | |
| tree | 30c6ed4782015c6651bf94b0659b506ffbf709a2 | |
| parent | 7230f4cbbc1e2e91067321026ab7ecadebe13839 (diff) | |
| parent | a5cb050abb88482d32c458498ed0cecad086210a (diff) | |
Merge "Expose pending request to subclasses and ensure clean up" am: a5cb050abb
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2222361
Change-Id: I1f84bc5b548ad28c772329100413ea7750ed2fe2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java | 2 | ||||
| -rw-r--r-- | core/java/com/android/internal/infra/AbstractRemoteService.java | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java b/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java index 6c01780dac76..2a9025d35339 100644 --- a/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java @@ -61,7 +61,7 @@ public abstract class AbstractMultiplePendingRequestsRemoteService<S final int size = mPendingRequests.size(); if (mVerbose) Slog.v(mTag, "Sending " + size + " pending requests"); for (int i = 0; i < size; i++) { - mPendingRequests.get(i).run(); + handlePendingRequest(mPendingRequests.get(i)); } mPendingRequests.clear(); } diff --git a/core/java/com/android/internal/infra/AbstractRemoteService.java b/core/java/com/android/internal/infra/AbstractRemoteService.java index 0e1b7cb8090f..b6590c2c67fb 100644 --- a/core/java/com/android/internal/infra/AbstractRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractRemoteService.java @@ -106,7 +106,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I private int mServiceExitSubReason; /** Requests that have been scheduled, but that are not finished yet */ - private final ArrayList<BasePendingRequest<S, I>> mUnfinishedRequests = new ArrayList<>(); + protected final ArrayList<BasePendingRequest<S, I>> mUnfinishedRequests = new ArrayList<>(); /** * Callback called when the service dies. @@ -676,6 +676,11 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I mCancelled = true; } + S service = mWeakService.get(); + if (service != null) { + service.finishRequest(this); + } + onCancel(); return true; } |