diff options
author | kaiyiz <kaiyiz@codeaurora.org> | 2014-06-09 18:18:22 +0800 |
---|---|---|
committer | Roman Birg <roman@cyngn.com> | 2014-09-02 14:06:13 -0700 |
commit | 3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9 (patch) | |
tree | f9435e39a3345d4b4e374130e79fb2ab41c0714e | |
parent | b438bc1b86f28db3a3bd221aeaa624827eb2352e (diff) | |
download | android_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.java | 6 |
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) { |