summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2014-06-09 18:18:22 +0800
committerRoman Birg <roman@cyngn.com>2014-09-02 14:06:13 -0700
commit3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9 (patch)
treef9435e39a3345d4b4e374130e79fb2ab41c0714e
parentb438bc1b86f28db3a3bd221aeaa624827eb2352e (diff)
downloadandroid_packages_apps_ContactsCommon-3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9.tar.gz
android_packages_apps_ContactsCommon-3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9.tar.bz2
android_packages_apps_ContactsCommon-3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9.zip
ContactsCommon: Do not pass a negetive param to getPartition(int) method
When ContactListAdapter#changeCursor(int partitionIndex, Cursor cursor) is called, partitionIndex equals to -1 if loader.getId() == -1. And then getPartition(-1) will be called, and that will cause an ArrayIndexOutOfBoundsException. Call mAdapter#changeCursor(null) from onLoaderReset() method when (partitionIndex < 0), do not pass a negative param to getPartition(int) method. CRs-Fixed: 677184 Change-Id: If877157df527498b3d8d54d2f62fd169da9c3c91
-rw-r--r--src/com/android/contacts/common/list/ContactEntryListFragment.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/com/android/contacts/common/list/ContactEntryListFragment.java b/src/com/android/contacts/common/list/ContactEntryListFragment.java
index 70ae34d9..cad4ae69 100644
--- a/src/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -424,7 +424,11 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter
}
public void onLoaderReset(Loader<Cursor> loader) {
- mAdapter.changeCursor(loader.getId(), null);
+ if (loader.getId() >= 0) {
+ mAdapter.changeCursor(loader.getId(), null);
+ } else {
+ mAdapter.changeCursor(null);
+ }
}
protected void onPartitionLoaded(int partitionIndex, Cursor data) {