summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2023-03-07 03:09:06 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-03-07 03:09:06 +0000
commitb7d1ff47e6db85a49340fb93bc0355e7bcea35bd (patch)
tree3a3cb3d5445ef4b847890e7f2da83337d4c1c69d
parent1a889f945c6c77ecddcb3a246d7ec10250dd43df (diff)
parent490add2ee949cea8a7f615b7e247805e2fb66947 (diff)
Merge "Expose pending request to subclasses and ensure clean up" am: a5cb050abb am: 729033b51c am: 490add2ee9
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2222361 Change-Id: I9dd7af56afa185942eeef9600ba74601f8965ef4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/com/android/internal/infra/AbstractMultiplePendingRequestsRemoteService.java2
-rw-r--r--core/java/com/android/internal/infra/AbstractRemoteService.java7
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 d5f7ba57a694..18414cf93bc8 100644
--- a/core/java/com/android/internal/infra/AbstractRemoteService.java
+++ b/core/java/com/android/internal/infra/AbstractRemoteService.java
@@ -107,7 +107,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.
@@ -673,6 +673,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;
}