Add vertical scrolling to Sticker Keyboard.

This commit is contained in:
Cody Henthorne
2021-06-28 17:18:04 -04:00
committed by Greyson Parrelli
parent aba5774446
commit d4a3b442f4
13 changed files with 565 additions and 82 deletions

View File

@@ -76,6 +76,7 @@ public abstract class Database {
}
protected void notifyStickerPackListeners() {
ApplicationDependencies.getDatabaseObserver().notifyStickerPackObservers();
context.getContentResolver().notifyChange(DatabaseContentProviders.StickerPack.CONTENT_URI, null);
}

View File

@@ -30,6 +30,7 @@ public final class DatabaseObserver {
private final Map<UUID, Set<Observer>> paymentObservers;
private final Set<Observer> allPaymentsObservers;
private final Set<Observer> chatColorsObservers;
private final Set<Observer> stickerPackObservers;
public DatabaseObserver(Application application) {
this.application = application;
@@ -40,6 +41,7 @@ public final class DatabaseObserver {
this.paymentObservers = new HashMap<>();
this.allPaymentsObservers = new HashSet<>();
this.chatColorsObservers = new HashSet<>();
this.stickerPackObservers = new HashSet<>();
}
public void registerConversationListObserver(@NonNull Observer listener) {
@@ -78,6 +80,12 @@ public final class DatabaseObserver {
});
}
public void registerStickerPackObserver(@NonNull Observer listener) {
executor.execute(() -> {
stickerPackObservers.add(listener);
});
}
public void unregisterObserver(@NonNull Observer listener) {
executor.execute(() -> {
conversationListObservers.remove(listener);
@@ -85,6 +93,7 @@ public final class DatabaseObserver {
unregisterMapped(verboseConversationObservers, listener);
unregisterMapped(paymentObservers, listener);
chatColorsObservers.remove(listener);
stickerPackObservers.remove(listener);
});
}
@@ -160,6 +169,12 @@ public final class DatabaseObserver {
});
}
public void notifyStickerPackObservers() {
executor.execute(() -> {
notifySet(stickerPackObservers);
});
}
private <K> void registerMapped(@NonNull Map<K, Set<Observer>> map, @NonNull K key, @NonNull Observer listener) {
Set<Observer> listeners = map.get(key);