Fix possible data source invalidation loop.

fork-5.53.8
Greyson Parrelli 2020-05-19 15:07:46 -04:00 zatwierdzone przez Alex Hart
rodzic b80c339c5a
commit 8d3a91f3a4
1 zmienionych plików z 1 dodań i 8 usunięć

Wyświetl plik

@ -130,23 +130,16 @@ class ConversationDataSource extends PositionalDataSource<MessageRecord> {
} }
static class Invalidator { static class Invalidator {
private boolean invalidated;
private Runnable callback; private Runnable callback;
synchronized void invalidate() { synchronized void invalidate() {
invalidated = true;
if (callback != null) { if (callback != null) {
callback.run(); callback.run();
} }
} }
private synchronized void observe(@NonNull Runnable callback) { private synchronized void observe(@NonNull Runnable callback) {
if (invalidated) { this.callback = callback;
callback.run();
} else {
this.callback = callback;
}
} }
} }