aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java107
1 files changed, 0 insertions, 107 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java b/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java
deleted file mode 100644
index 6e09d533..00000000
--- a/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2012-2014 lacolaco.net
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package net.lacolaco.smileessence.twitter;
-
-import net.lacolaco.smileessence.Application;
-import net.lacolaco.smileessence.entity.DirectMessage;
-import net.lacolaco.smileessence.entity.Tweet;
-import net.lacolaco.smileessence.util.Consumer;
-import net.lacolaco.smileessence.viewmodel.EventViewModel;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-public class StatusFilter {
- private Map<Class<?>, Map<Object, Consumer<?>>> addHandlers = new HashMap<>();
- private Map<Class<?>, Map<Object, Consumer<Long>>> removeHandlers = new HashMap<>();
- private static StatusFilter instance = new StatusFilter();
-
- public static StatusFilter getInstance() {
- return instance;
- }
-
- public synchronized <T> void register(Object key, Class<T> klass, Consumer<T> addHandler, Consumer<Long> removeHandler) {
- Map<Object, Consumer<?>> addMap = addHandlers.get(klass);
- if (addMap == null) {
- addMap = new WeakHashMap<>();
- addHandlers.put(klass, addMap);
- }
- addMap.put(key, addHandler);
-
- if (removeHandler != null) {
- Map<Object, Consumer<Long>> removeMap = removeHandlers.get(klass);
- if (removeMap == null) {
- removeMap = new WeakHashMap<>();
- removeHandlers.put(klass, removeMap);
- }
- removeMap.put(key, removeHandler);
- }
- }
-
- public synchronized <T> void unregister(Object key) {
- for (Map<Object, ?> aMap : addHandlers.values()) {
- aMap.remove(key);
- }
- for (Map<Object, ?> rMap : removeHandlers.values()) {
- rMap.remove(key);
- }
- }
-
- // -------------------------- STATIC METHODS --------------------------
-
- public void filter(Tweet tweet) {
- if (!Application.getInstance().getCurrentAccount().isMutedUserListContains(tweet.getOriginalTweet().getUser().getId())) {
- filter(Tweet.class, tweet);
- }
- }
-
- public void filter(DirectMessage message) {
- filter(DirectMessage.class, message);
- }
-
- public void filter(EventViewModel event) {
- filter(EventViewModel.class, event);
- }
-
- public <T> void filter(Class<T> klass, T status) {
- Map<Object, Consumer<?>> map = addHandlers.get(klass);
- if (map != null) {
- for (Consumer f_ : map.values()) {
- //noinspection unchecked
- f_.accept(status);
- }
- }
- }
-
- public void remove(Class klass, long id) {
- Map<Object, Consumer<Long>> map = removeHandlers.get(klass);
- if (map != null) {
- for (Consumer<Long> f : map.values()) {
- f.accept(id);
- }
- }
- }
-}