summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-10-17 21:57:05 -0700
committerSteve Kondik <steve@cyngn.com>2016-10-17 21:57:05 -0700
commit4700d940fcda23760dea46f175d52e5bc57599b2 (patch)
tree40af91de15cf8bd11aaf980e3a2d7ef4bfd6e362
parent8525d9d615ba2a75e93599bbddf8cbb0f5e4cf90 (diff)
parent5bede158fbdd5177075b6e132734f6f8e842d6c2 (diff)
downloadandroid_packages_apps_Contacts-cm-14.0.tar.gz
android_packages_apps_Contacts-cm-14.0.tar.bz2
android_packages_apps_Contacts-cm-14.0.zip
Merge tag 'LA.UM.5.5.r1-00900-8x96.0' of git://codeaurora.org/platform/packages/apps/Contacts into cm-14.0cm-14.0
"LA.UM.5.5.r1-00900-8x96.0"
-rwxr-xr-xsrc/com/android/contacts/activities/MergeContactActivity.java11
-rwxr-xr-xsrc/com/android/contacts/activities/MultiPickContactsActivity.java18
-rwxr-xr-xsrc/com/android/contacts/group/GroupEditorFragment.java32
-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
-rw-r--r--src/com/android/contacts/quickcontact/ExpandingEntryCardView.java4
8 files changed, 80 insertions, 19 deletions
diff --git a/src/com/android/contacts/activities/MergeContactActivity.java b/src/com/android/contacts/activities/MergeContactActivity.java
index 7604e8ec2..5402e565d 100755
--- a/src/com/android/contacts/activities/MergeContactActivity.java
+++ b/src/com/android/contacts/activities/MergeContactActivity.java
@@ -236,6 +236,7 @@ public class MergeContactActivity extends ListActivity {
List<String> simNumberList = new ArrayList<>();
List<String> simEmailList = new ArrayList<>();
+ boolean needUpdate = false;
int subscription = -1;
ArrayList<Long> delContactIds = new ArrayList<>();
HashMap<Long, ArrayList<Long>> delRawIdsMap = new HashMap<>();
@@ -309,6 +310,7 @@ public class MergeContactActivity extends ListActivity {
}
}
if (!containsNumber) {
+ needUpdate = true;
simNumberList.add(number);
}
}
@@ -326,6 +328,7 @@ public class MergeContactActivity extends ListActivity {
}
}
if (!containsAnr) {
+ needUpdate = true;
simNumberList.add(splitAnr[j]);
}
}
@@ -337,6 +340,7 @@ public class MergeContactActivity extends ListActivity {
for (int j = 0; j < splitEmail.length; j++) {
if (!TextUtils.isEmpty(splitEmail[j]) && !simEmailList
.contains(splitEmail[j])) {
+ needUpdate = true;
simEmailList.add(splitEmail[j]);
}
}
@@ -383,7 +387,9 @@ public class MergeContactActivity extends ListActivity {
sourceValues.remove(SimContactsConstants.ACCOUNT_TYPE);
sourceValues.remove(SimContactsConstants.ACCOUNT_NAME);
// update the contacts in sim.
- int simResult = mSimContactsOperation.update(sourceValues, subscription);
+ int simResult = 1;
+ if (needUpdate)
+ mSimContactsOperation.update(sourceValues, subscription);
// if update sim contacts fail, stop merging.
if (simResult <= 0) {
@@ -415,6 +421,9 @@ public class MergeContactActivity extends ListActivity {
.CONTENT_URI, String.valueOf(list.get(j)));
rawDelList.add(ContentProviderOperation.newDelete(uri).build());
}
+ } else {
+ Toast.makeText(MergeContactActivity.this, R.string.merge_fail,
+ Toast.LENGTH_SHORT).show();
}
}
return true;
diff --git a/src/com/android/contacts/activities/MultiPickContactsActivity.java b/src/com/android/contacts/activities/MultiPickContactsActivity.java
index 28ac8d49d..5229d94b1 100755
--- a/src/com/android/contacts/activities/MultiPickContactsActivity.java
+++ b/src/com/android/contacts/activities/MultiPickContactsActivity.java
@@ -246,7 +246,7 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP
// occur crash.
position = getRtlPosition(position);
- if (mAreTabsHiddenInViewPager || !mPickMode.isPickPhone()) {
+ if (!mPickMode.isPickPhone()) {
if (mPickMode.isPickCall()) {
mDelCallLogFragment = new DelCallLogFragment();
mDelCallLogFragment.setCheckListListener(new CheckListListener());
@@ -295,15 +295,15 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP
public Object instantiateItem(ViewGroup container, int position) {
Fragment f = (Fragment) super.instantiateItem(container, position);
- if (mAreTabsHiddenInViewPager || !mPickMode.isPickPhone()) {
+ if (!mPickMode.isPickPhone()) {
if (mPickMode.isPickCall()) {
- if (mDelCallLogFragment == null) {
+ if (mDelCallLogFragment == null && f instanceof DelCallLogFragment) {
mDelCallLogFragment = (DelCallLogFragment) f;
mDelCallLogFragment
.setCheckListListener(new CheckListListener());
}
} else {
- if (mContactsFragment == null) {
+ if (mContactsFragment == null && f instanceof ContactsFragment) {
mContactsFragment = (ContactsFragment) f;
mContactsFragment
.setCheckListListener(new CheckListListener());
@@ -312,21 +312,21 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP
} else {
switch (position) {
case TAB_INDEX_RECENT:
- if (mCallLogFragment == null) {
+ if (mCallLogFragment == null && f instanceof CallLogFragment) {
mCallLogFragment = (CallLogFragment) f;
mCallLogFragment
.setCheckListListener(new CheckListListener());
}
break;
case TAB_INDEX_CONTACTS:
- if (mContactsFragment == null) {
+ if (mContactsFragment == null && f instanceof ContactsFragment) {
mContactsFragment = (ContactsFragment) f;
mContactsFragment
.setCheckListListener(new CheckListListener());
}
break;
case TAB_INDEX_GROUP:
- if (mGroupFragment == null) {
+ if (mGroupFragment == null && f instanceof GroupsFragment) {
mGroupFragment = (GroupsFragment) f;
mGroupFragment
.setCheckListListener(new CheckListListener());
@@ -714,6 +714,10 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP
}
}
+ public CheckListListener createListener() {
+ return new CheckListListener();
+ }
+
private void configureSearchMode() {
TextView topDividerLine = (TextView) findViewById(R.id.multi_pick_top_divider);
if (mSearchUiVisible) {
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index 9c568b44e..6ae880d96 100755
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -106,6 +106,9 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
public static final int REQUEST_CODE_PICK_GROUP_MEM = 1001;
private static final int MAX_CACHE_MEMBER_SIZE = 500;
+ //when save completed,close activity directly,no need reload group member.
+ private boolean mClose = false;
+
public static interface Listener {
/**
* Group metadata was not found, close the fragment now.
@@ -239,7 +242,7 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
onRestoreInstanceState(savedInstanceState);
if (mStatus == Status.SELECTING_ACCOUNT) {
// Account select dialog is showing. Don't setup the editor yet.
- } else if (mStatus == Status.LOADING || getCacheSize() == 0) {
+ } else if (mStatus == Status.LOADING || mListToDisplay.size() == 0) {
startGroupMetaDataLoader();
} else {
setupEditorForAccount();
@@ -297,6 +300,12 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
mListMembersToRemove);
outState.putParcelableArrayList(KEY_MEMBERS_TO_DISPLAY,
mListToDisplay);
+ } else if (mListMembersToAdd.size() + mListMembersToRemove.size()
+ < MAX_CACHE_MEMBER_SIZE) {
+ outState.putParcelableArrayList(KEY_MEMBERS_TO_ADD,
+ mListMembersToAdd);
+ outState.putParcelableArrayList(KEY_MEMBERS_TO_REMOVE,
+ mListMembersToRemove);
}
}
@@ -316,6 +325,14 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
mListMembersToAdd = state.getParcelableArrayList(KEY_MEMBERS_TO_ADD);
mListMembersToRemove = state.getParcelableArrayList(KEY_MEMBERS_TO_REMOVE);
mListToDisplay = state.getParcelableArrayList(KEY_MEMBERS_TO_DISPLAY);
+
+ if (mListMembersToAdd == null)
+ mListMembersToAdd = new ArrayList<Member>();
+ if (mListMembersToRemove == null)
+ mListMembersToRemove = new ArrayList<Member>();
+ if (mListToDisplay == null)
+ mListToDisplay = new ArrayList<Member>();
+
}
private int getCacheSize() {
@@ -662,7 +679,7 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
}
return false;
}
-
+ mClose = true;
// If we are about to close the editor - there is no need to refresh the data
getLoaderManager().destroyLoader(LOADER_EXISTING_MEMBERS);
@@ -843,11 +860,14 @@ public class GroupEditorFragment extends Fragment implements SelectAccountDialog
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
- bindGroupMetaData(data);
+ if (!mClose) {
+ bindGroupMetaData(data);
- // Load existing members
- getLoaderManager().initLoader(LOADER_EXISTING_MEMBERS, null,
- mGroupMemberListLoaderListener);
+ // Load existing members
+ getLoaderManager().initLoader(LOADER_EXISTING_MEMBERS, null,
+ mGroupMemberListLoaderListener);
+ }
+ mClose = false;
}
@Override
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
diff --git a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
index c23476502..dd36fcffb 100644
--- a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -330,10 +330,8 @@ public class ExpandingEntryCardView extends CardView {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
- mEnable = isChecked ? CallUtil.ENABLE_VIDEO_CALLING:CallUtil.DISABLE_VIDEO_CALLING;
CallUtil.createVideoCallingDialog(isChecked, mContext);
- Settings.System.putInt(mContext.getContentResolver(),CallUtil.CONFIG_VIDEO_CALLING,
- mEnable);
+ CallUtil.saveVideoCallConfig(mContext,isChecked);
if (mVideoCallingCallback != null)
mVideoCallingCallback.updateContact();
}