diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-05 01:49:54 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-05 02:02:09 +0200 |
commit | 27072972ab944467bf7286afe4bfd89a4b795753 (patch) | |
tree | 54f8cba070fe72a4ba96d61bade23f434a894f98 /app/src/main/java/com/wireguard/android/util/Topic.java | |
parent | MainActivity: style (diff) | |
download | wireguard-android-27072972ab944467bf7286afe4bfd89a4b795753.tar.xz wireguard-android-27072972ab944467bf7286afe4bfd89a4b795753.zip |
DarkMode: move to shared preferences listener
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | app/src/main/java/com/wireguard/android/util/Topic.java | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/app/src/main/java/com/wireguard/android/util/Topic.java b/app/src/main/java/com/wireguard/android/util/Topic.java deleted file mode 100644 index 6d8080cf..00000000 --- a/app/src/main/java/com/wireguard/android/util/Topic.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright © 2017 John Wu <topjohnwu@gmail.com> - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -package com.wireguard.android.util; - -import java.lang.ref.WeakReference; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -public class Topic { - - private static final int NON_INIT = 0; - private static final int PENDING = 1; - private static final int PUBLISHED = 2; - - private int state = NON_INIT; - private List<WeakReference<Subscriber>> subscribers; - private Object[] results; - - public Topic() { - subscribers = new SyncArrayList<>(); - } - - public synchronized void subscribe(final Subscriber sub) { - subscribers.add(new WeakReference<>(sub)); - } - - public synchronized void unsubscribe() { - subscribers = new SyncArrayList<>(); - } - - public synchronized void unsubscribe(final Subscriber sub) { - List<WeakReference<Subscriber>> subs = subscribers; - subscribers = new ArrayList<>(); - for (final WeakReference<Subscriber> subscriber : subs) { - if (subscriber.get() != null && subscriber.get() != sub) - subscribers.add(subscriber); - } - } - - public void reset() { - state = NON_INIT; - results = null; - } - - public boolean isPublished() { - return state == PUBLISHED; - } - - public void publish() { - publish(true); - } - - public void publish(boolean record, Object... results) { - if (record) - state = PUBLISHED; - this.results = results; - // Snapshot - List<WeakReference<Subscriber>> subs = subscribers; - for (final WeakReference<Subscriber> subscriber : subs) { - if (subscriber != null && subscriber.get() != null) - subscriber.get().onTopicPublished(this); - } - } - - public Object[] getResults() { - return results; - } - - public boolean isPending() { - return state == PENDING; - } - - public void setPending() { - state = PENDING; - } - - public interface Subscriber { - default void subscribeTopics() { - for (final Topic topic : getSubscription()) { - if (topic.isPublished()) { - onTopicPublished(topic); - } - topic.subscribe(this); - } - } - default void unsubscribeTopics() { - for (final Topic event : getSubscription()) { - event.unsubscribe(this); - } - } - void onTopicPublished(Topic topic); - Topic[] getSubscription(); - } - - private static class SyncArrayList<E> extends ArrayList<E> { - @Override - public synchronized boolean add(final E e) { - return super.add(e); - } - } -} |