diff options
Diffstat (limited to 'src/com/android/contacts/multipicker')
-rwxr-xr-x | src/com/android/contacts/multipicker/CallLogFragment.java | 5 | ||||
-rwxr-xr-x | src/com/android/contacts/multipicker/ContactsFragment.java | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | src/com/android/contacts/multipicker/DelCallLogFragment.java | 4 | ||||
-rwxr-xr-x | src/com/android/contacts/multipicker/GroupsFragment.java | 22 |
4 files changed, 32 insertions, 2 deletions
diff --git a/src/com/android/contacts/multipicker/CallLogFragment.java b/src/com/android/contacts/multipicker/CallLogFragment.java index 77779fe20..23b7765ea 100755 --- a/src/com/android/contacts/multipicker/CallLogFragment.java +++ b/src/com/android/contacts/multipicker/CallLogFragment.java @@ -55,6 +55,7 @@ import android.widget.AbsListView; import android.widget.TextView; import com.android.contacts.R; +import com.android.contacts.activities.MultiPickContactsActivity; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.util.UriUtils; @@ -175,6 +176,10 @@ public class CallLogFragment extends ListFragment { resolver = mContext.getContentResolver(); resolver.registerContentObserver(Calls.CONTENT_URI, true, mCallLogObserver); + if (mCheckListListener == null) { + mCheckListListener = ((MultiPickContactsActivity) getActivity()) + .createListener(); + } if (mCallLogListAdapter == null) { mCallLogListAdapter = new CallLogItemListAdapter(mContext); mContactsCheckedList = new ArrayList<String>(); diff --git a/src/com/android/contacts/multipicker/ContactsFragment.java b/src/com/android/contacts/multipicker/ContactsFragment.java index 4f1049b05..b77bdf703 100755 --- a/src/com/android/contacts/multipicker/ContactsFragment.java +++ b/src/com/android/contacts/multipicker/ContactsFragment.java @@ -254,6 +254,9 @@ public class ContactsFragment extends ListFragment { checkedList = new ArrayList<String>(); } } + if (mCheckListListener == null) + mCheckListListener = ((MultiPickContactsActivity) getActivity()) + .createListener(); mHeaderView = new View(mContext); AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( AbsListView.LayoutParams.MATCH_PARENT, diff --git a/src/com/android/contacts/multipicker/DelCallLogFragment.java b/src/com/android/contacts/multipicker/DelCallLogFragment.java index d5997c81f..8abf5b8a4 100644..100755 --- a/src/com/android/contacts/multipicker/DelCallLogFragment.java +++ b/src/com/android/contacts/multipicker/DelCallLogFragment.java @@ -42,6 +42,7 @@ import android.widget.ListView; import android.widget.AbsListView; import com.android.contacts.R; +import com.android.contacts.activities.MultiPickContactsActivity; import com.android.contacts.list.OnCheckListActionListener; public class DelCallLogFragment extends ListFragment @@ -95,6 +96,9 @@ public class DelCallLogFragment extends ListFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + if (mCheckListListener == null) + mCheckListListener = ((MultiPickContactsActivity) getActivity()) + .createListener(); if (mDelCallLogAdapter == null) { mDelCallLogAdapter = new DelCallLogAdapter(mContext); mDelCallLogAdapter.setCheckListListener(mCheckListListener); diff --git a/src/com/android/contacts/multipicker/GroupsFragment.java b/src/com/android/contacts/multipicker/GroupsFragment.java index a41600d68..1f38ca608 100755 --- a/src/com/android/contacts/multipicker/GroupsFragment.java +++ b/src/com/android/contacts/multipicker/GroupsFragment.java @@ -187,6 +187,10 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli mList.setOnGroupClickListener(this); mList.setOnChildClickListener(this); mList.setDivider(null); + if (mCheckListListener == null) { + mCheckListListener = ((MultiPickContactsActivity) getActivity()) + .createListener(); + } if (mAdapter == null) { if (mAllContactsCurosrMap == null) { mAllContactsCurosrMap = new HashMap<Long, String[]>(); @@ -221,6 +225,12 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli } @Override + public void onResume() { + super.onResume(); + fillAllContactsCursorMap(); + } + + @Override public void onDestroy() { mAdapter.getQueryHandler().removeCallbacksAndMessages(QUERY_TOKEN); @@ -228,6 +238,9 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli mAdapter.getCursor().close(); } + if(allContactsInGroups!=null) + allContactsInGroups.close(); + if (mAllContactsCurosrMap != null) { mAllContactsCurosrMap.clear(); } @@ -776,7 +789,10 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli @Override protected Cursor getChildrenCursor(Cursor groupCursor) { long groupId = groupCursor.getLong(GROUP_ID); - return getContactsDetailCursor(groupId); + Cursor c = getContactsDetailCursor(groupId); + if (c != null) + getActivity().startManagingCursor(c); + return c; } @Override @@ -787,6 +803,7 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli super.changeCursor(cursor); } } + } /** * all contacts cursor fill to map @@ -794,6 +811,8 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli private void fillAllContactsCursorMap() { mAllContactsCurosrMap.clear(); Cursor cursor = null; + if (mGroupsCursor == null) + return; for (int groupPosition = 0; groupPosition < mGroupsCursor.getCount(); groupPosition++) { mGroupsCursor.moveToPosition(groupPosition); long groupCacheId = mGroupsCursor.getLong(GROUP_ID); @@ -816,7 +835,6 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli if (cursor != null) { cursor.close(); } - } } @Override |