summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-09-23 01:11:06 -0600
committerLinux Build Service Account <lnxbuild@localhost>2016-09-23 01:11:06 -0600
commita1d3fbe04a9ab81e6493694c314a48d6c53d98a9 (patch)
tree99340122e9d0d65eafa9523a144f015f378cd485
parent81e450c558a942613bfc0e1e814cf228fb398762 (diff)
parentb455173307ffe850aeeb3db67bc582ea69db1f24 (diff)
downloadpackages_apps_Contacts-a1d3fbe04a9ab81e6493694c314a48d6c53d98a9.tar.gz
packages_apps_Contacts-a1d3fbe04a9ab81e6493694c314a48d6c53d98a9.tar.bz2
packages_apps_Contacts-a1d3fbe04a9ab81e6493694c314a48d6c53d98a9.zip
Promotion of android_ui.lnx.2.1-00011.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1065034 I36f195318607ec4942d08027cd7b722c2ed17e53 Fix group member refresh double problem 1064995 Id0aaf4e8a4db0cebcc0bb661f4b84529b7282a09 Fix unnecessary update command send to sim card 1066586 I1ae6c401deb0e92423f941fda0dc65f8bce4b4b0 Fix FC when add group as reciepients 1068255 I8c189b42d0c46837269ad27c9100415b65227060 Fix FC when rotate in group edit screen Change-Id: Ieb4098245a7bf2cb621dc50cc3cb7088bdb639b2 CRs-Fixed: 1065034, 1068255, 1066586, 1064995
-rwxr-xr-xsrc/com/android/contacts/activities/MergeContactActivity.java11
-rwxr-xr-xsrc/com/android/contacts/group/GroupEditorFragment.java32
-rwxr-xr-xsrc/com/android/contacts/multipicker/GroupsFragment.java18
3 files changed, 52 insertions, 9 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/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/GroupsFragment.java b/src/com/android/contacts/multipicker/GroupsFragment.java
index a41600d68..e19a28437 100755
--- a/src/com/android/contacts/multipicker/GroupsFragment.java
+++ b/src/com/android/contacts/multipicker/GroupsFragment.java
@@ -221,6 +221,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 +234,9 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli
mAdapter.getCursor().close();
}
+ if(allContactsInGroups!=null)
+ allContactsInGroups.close();
+
if (mAllContactsCurosrMap != null) {
mAllContactsCurosrMap.clear();
}
@@ -776,7 +785,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 +799,7 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli
super.changeCursor(cursor);
}
}
+ }
/**
* all contacts cursor fill to map
@@ -794,6 +807,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 +831,6 @@ public class GroupsFragment extends ExpandableListFragment implements OnGroupCli
if (cursor != null) {
cursor.close();
}
- }
}
@Override