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>
This commit is contained in:
Treehugger Robot
2023-03-07 03:09:06 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 2 deletions

View File

@@ -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();
}

View File

@@ -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;
}