Merge "Fix potential null error in clearEvents." into sc-dev

This commit is contained in:
TreeHugger Robot
2021-06-21 02:31:00 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 9 deletions

View File

@@ -341,12 +341,8 @@ public abstract class ContentCaptureSession implements AutoCloseable {
} }
} }
try {
flush(FLUSH_REASON_SESSION_FINISHED);
} finally {
onDestroy(); onDestroy();
} }
}
abstract void onDestroy(); abstract void onDestroy();

View File

@@ -263,7 +263,13 @@ public final class MainContentCaptureSession extends ContentCaptureSession {
@Override @Override
void onDestroy() { void onDestroy() {
mHandler.removeMessages(MSG_FLUSH); mHandler.removeMessages(MSG_FLUSH);
mHandler.post(() -> destroySession()); mHandler.post(() -> {
try {
flush(FLUSH_REASON_SESSION_FINISHED);
} finally {
destroySession();
}
});
} }
/** /**
@@ -571,9 +577,11 @@ public final class MainContentCaptureSession extends ContentCaptureSession {
private ParceledListSlice<ContentCaptureEvent> clearEvents() { private ParceledListSlice<ContentCaptureEvent> clearEvents() {
// NOTE: we must save a reference to the current mEvents and then set it to to null, // NOTE: we must save a reference to the current mEvents and then set it to to null,
// otherwise clearing it would clear it in the receiving side if the service is also local. // otherwise clearing it would clear it in the receiving side if the service is also local.
final List<ContentCaptureEvent> events = mEvents == null if (mEvents == null) {
? Collections.EMPTY_LIST return new ParceledListSlice<>(Collections.EMPTY_LIST);
: new ArrayList<>(mEvents); }
final List<ContentCaptureEvent> events = new ArrayList<>(mEvents);
mEvents.clear(); mEvents.clear();
return new ParceledListSlice<>(events); return new ParceledListSlice<>(events);
} }