diff options
author | Rohit Yengisetty <rohit@cyngn.com> | 2016-02-23 15:22:56 -0800 |
---|---|---|
committer | Rohit Yengisetty <rohit@cyngn.com> | 2016-02-24 15:29:36 -0800 |
commit | bbab6eaf51a59e6079504b734b539a84e37704b1 (patch) | |
tree | 69bfee027c370451c8baab2b5be8ff3ad80a9980 /src | |
parent | 45827464ae305adc682ea6e3eeb0d579df8f5782 (diff) | |
download | android_packages_apps_Messaging-bbab6eaf51a59e6079504b734b539a84e37704b1.tar.gz android_packages_apps_Messaging-bbab6eaf51a59e6079504b734b539a84e37704b1.tar.bz2 android_packages_apps_Messaging-bbab6eaf51a59e6079504b734b539a84e37704b1.zip |
Use a hash set to manage listeners in LookupProvider Manager
Change-Id: I9ea01cde99ef49ff39271be455ac696ddf561600
Diffstat (limited to 'src')
-rw-r--r-- | src/com/cyanogenmod/messaging/lookup/LookupProviderManager.java | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/com/cyanogenmod/messaging/lookup/LookupProviderManager.java b/src/com/cyanogenmod/messaging/lookup/LookupProviderManager.java index 3adcd5c..b59ff04 100644 --- a/src/com/cyanogenmod/messaging/lookup/LookupProviderManager.java +++ b/src/com/cyanogenmod/messaging/lookup/LookupProviderManager.java @@ -30,6 +30,7 @@ import com.cyanogen.lookup.phonenumber.request.LookupRequest; import com.cyanogen.lookup.phonenumber.response.LookupResponse; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -53,7 +54,7 @@ public class LookupProviderManager implements Application.ActivityLifecycleCallb private static final Handler sHandler = new Handler(Looper.getMainLooper()); private Application mApplication; private ConcurrentHashMap<String, LookupResponse> mPhoneNumberLookupCache; - private ConcurrentHashMap<String, ArrayList<LookupProviderListener>> mLookupListeners; + private ConcurrentHashMap<String, HashSet<LookupProviderListener>> mLookupListeners; private LookupHandlerThread mLookupHandlerThread; private boolean mIsPhoneNumberLookupInitialized; private short mActivityCount = 0; @@ -69,7 +70,7 @@ public class LookupProviderManager implements Application.ActivityLifecycleCallb throw new IllegalArgumentException("'application' must not be null!"); } mPhoneNumberLookupCache = new ConcurrentHashMap<String, LookupResponse>(); - mLookupListeners = new ConcurrentHashMap<String, ArrayList<LookupProviderListener>>(); + mLookupListeners = new ConcurrentHashMap<String, HashSet<LookupProviderListener>>(); application.registerActivityLifecycleCallbacks(this); mApplication = application; } @@ -119,7 +120,7 @@ public class LookupProviderManager implements Application.ActivityLifecycleCallb return; } if (!mLookupListeners.contains(number)) { - mLookupListeners.put(number, new ArrayList<LookupProviderListener>()); + mLookupListeners.put(number, new HashSet<LookupProviderListener>()); } if (!mLookupListeners.get(number).contains(listener)) { // prevent adding same listener mLookupListeners.get(number).add(listener); @@ -137,12 +138,8 @@ public class LookupProviderManager implements Application.ActivityLifecycleCallb if (TextUtils.isEmpty(number)) { return; } - ArrayList<LookupProviderListener> tmpListenerList; if (mLookupListeners.containsKey(number)) { - tmpListenerList = mLookupListeners.get(number); - if (tmpListenerList != null) { - tmpListenerList.remove(listener); - } + mLookupListeners.get(number).remove(listener); } } |