diff options
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.java | 107 |
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); - } - } - } -} |