summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts/multipicker
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/multipicker')
-rwxr-xr-xsrc/com/android/contacts/multipicker/CallLogFragment.java5
-rwxr-xr-xsrc/com/android/contacts/multipicker/ContactsFragment.java3
-rwxr-xr-x[-rw-r--r--]src/com/android/contacts/multipicker/DelCallLogFragment.java4
-rwxr-xr-xsrc/com/android/contacts/multipicker/GroupsFragment.java22
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