From 3f1bd6d0f1c409375dfecc1c4922b2f6fc7769c9 Mon Sep 17 00:00:00 2001 From: kaiyiz Date: Mon, 9 Jun 2014 18:18:22 +0800 Subject: 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 --- src/com/android/contacts/common/list/ContactEntryListFragment.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 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) { -- cgit v1.2.3