Make removeOnAccountsUpdateListener cope with null handlers.
Previously, if callers registered OnAccountsUpdateListeners with a null handler,
removeOnAccountsUpdateListener would fail attempting to remove the listener.
Change-Id: If9906d3711f816e60c4b491b7f33671f089ac00f
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java
index 1ee7f60..2979072 100644
--- a/core/java/android/accounts/AccountManager.java
+++ b/core/java/android/accounts/AccountManager.java
@@ -859,9 +859,10 @@
throw new IllegalArgumentException("the listener is null");
}
synchronized (mAccountsUpdatedListeners) {
- if (mAccountsUpdatedListeners.remove(listener) == null) {
+ if (!mAccountsUpdatedListeners.containsKey(listener)) {
throw new IllegalStateException("this listener was not previously added");
}
+ mAccountsUpdatedListeners.remove(listener);
if (mAccountsUpdatedListeners.isEmpty()) {
mContext.unregisterReceiver(mAccountsChangedBroadcastReceiver);
}