Merge "Import translations. DO NOT MERGE" into ub-contactsdialer-f-dev
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 5f70b14..e4eef51 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -224,7 +224,7 @@
clearCheckedMenus();
mIdMenuMap.get(R.id.nav_find_duplicates).setCheckable(true);
mIdMenuMap.get(R.id.nav_find_duplicates).setChecked(true);
- updateScrollPosition(DUPLICATES_POSITION);
+ maybeUpdateScrollPosition(DUPLICATES_POSITION);
}
if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
@@ -233,7 +233,11 @@
}
}
- private void updateScrollPosition(int position) {
+ private void maybeUpdateScrollPosition(int position) {
+ if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+ if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Don't scroll menu when drawer open");
+ return;
+ }
final RecyclerView recyclerView = (RecyclerView) mNavigationView.getChildAt(0);
final LinearLayoutManager layoutManager =
(LinearLayoutManager) recyclerView.getLayoutManager();
@@ -416,7 +420,7 @@
&& mGroupMenuMap.get(groupMetadata.groupId) != null) {
mGroupMenuMap.get(groupMetadata.groupId).setCheckable(true);
mGroupMenuMap.get(groupMetadata.groupId).setChecked(true);
- updateScrollPosition(mGroupMenuMap.get(groupMetadata.groupId).getOrder());
+ maybeUpdateScrollPosition(mGroupMenuMap.get(groupMetadata.groupId).getOrder());
}
}
@@ -520,13 +524,13 @@
if (mIdMenuMap != null && mIdMenuMap.get(R.id.nav_all_contacts) != null) {
mIdMenuMap.get(R.id.nav_all_contacts).setCheckable(true);
mIdMenuMap.get(R.id.nav_all_contacts).setChecked(true);
- updateScrollPosition(ALL_CONTACTS_POSITION);
+ maybeUpdateScrollPosition(ALL_CONTACTS_POSITION);
}
} else {
if (mFilterMenuMap != null && mFilterMenuMap.get(filter) != null) {
mFilterMenuMap.get(filter).setCheckable(true);
mFilterMenuMap.get(filter).setChecked(true);
- updateScrollPosition(mFilterMenuMap.get(filter).getOrder());
+ maybeUpdateScrollPosition(mFilterMenuMap.get(filter).getOrder());
}
}
}
diff --git a/src/com/android/contacts/group/GroupListItem.java b/src/com/android/contacts/group/GroupListItem.java
index 3bfcdd3..f2359b6 100644
--- a/src/com/android/contacts/group/GroupListItem.java
+++ b/src/com/android/contacts/group/GroupListItem.java
@@ -15,8 +15,6 @@
*/
package com.android.contacts.group;
-import java.util.Objects;
-
/**
* Meta-data for a contact group. We load all groups associated with the contact's
* constituent accounts.
@@ -85,36 +83,4 @@
public String getSystemId() {
return mSystemId;
}
-
- @Override
- public int hashCode() {
- return Objects.hash(mAccountName, mAccountType, mDataSet, mGroupId, mTitle,
- mIsFirstGroupInAccount, mMemberCount, mIsReadOnly, mSystemId);
- }
-
- @Override
- public boolean equals(Object other) {
- if (this == other) {
- return true;
- }
-
- if (!(other instanceof GroupListItem)) {
- return false;
- }
-
- final GroupListItem otherGroup = (GroupListItem) other;
- if (!Objects.equals(mAccountName, otherGroup.getAccountName())
- || !Objects.equals(mAccountType, otherGroup.getAccountType())
- || !Objects.equals(mDataSet, otherGroup.getDataSet())
- || !(mGroupId == otherGroup.getGroupId())
- || !Objects.equals(mTitle, otherGroup.getTitle())
- || !(mIsFirstGroupInAccount == otherGroup.isFirstGroupInAccount())
- || !(mMemberCount == otherGroup.getMemberCount())
- || !(mIsReadOnly == otherGroup.isReadOnly())
- || !Objects.equals(mSystemId, otherGroup.getSystemId())) {
- return false;
- }
-
- return true;
- }
}
\ No newline at end of file
diff --git a/src/com/android/contacts/group/GroupsFragment.java b/src/com/android/contacts/group/GroupsFragment.java
index 4c9e251..be1b44a 100644
--- a/src/com/android/contacts/group/GroupsFragment.java
+++ b/src/com/android/contacts/group/GroupsFragment.java
@@ -18,11 +18,11 @@
import android.app.Fragment;
import android.app.LoaderManager;
+import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
-import android.util.Log;
import com.android.contacts.GroupListLoader;
@@ -34,8 +34,6 @@
*/
public final class GroupsFragment extends Fragment {
- private static final String TAG = GroupsFragment.class.getSimpleName();
-
private static final int LOADER_GROUPS = 1;
/**
@@ -59,26 +57,12 @@
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
- final List<GroupListItem> newGroupListItems = new ArrayList<>();
+ mGroupListItems.clear();
for (int i = 0; i < data.getCount(); i++) {
if (data.moveToNext()) {
- newGroupListItems.add(GroupUtil.getGroupListItem(data, i));
+ mGroupListItems.add(GroupUtil.getGroupListItem(data, i));
}
}
-
- if (mGroupListItems.equals(newGroupListItems)) {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "The same groups loaded, returning.");
- }
- return;
- }
-
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "New group(s) loaded.");
- }
-
- mGroupListItems.clear();
- mGroupListItems.addAll(newGroupListItems);
if (mListener != null) {
mListener.onGroupsLoaded(mGroupListItems);
}
diff --git a/src/com/android/contacts/list/MultiSelectContactsListFragment.java b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
index 8b55047..f5c6d34 100644
--- a/src/com/android/contacts/list/MultiSelectContactsListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
@@ -330,7 +330,13 @@
if (accountFilterContainer == null) {
return;
}
- if (firstVisibleItem == 0) {
+
+ int firstCompletelyVisibleItem = firstVisibleItem;
+ if (view != null && view.getChildAt(0) != null && view.getChildAt(0).getTop() < 0) {
+ firstCompletelyVisibleItem++;
+ }
+
+ if (firstCompletelyVisibleItem == 0) {
ViewCompat.setElevation(accountFilterContainer, 0);
} else {
ViewCompat.setElevation(accountFilterContainer,
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
index 39d5007..6ea984f 100644
--- a/src/com/android/contacts/list/UiIntentActions.java
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -29,6 +29,12 @@
"com.android.contacts.action.LIST_DEFAULT";
/**
+ * The action for contacts list tab.
+ */
+ public static final String LIST_CONTACTS =
+ "com.android.contacts.action.LIST_CONTACTS";
+
+ /**
* The action for the contacts list tab.
*/
public static final String LIST_GROUP_ACTION =
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
index 3c3e5cc..8f43dbf 100644
--- a/tests/res/values/donottranslate_strings.xml
+++ b/tests/res/values/donottranslate_strings.xml
@@ -19,7 +19,6 @@
<string-array name="allIntents">
<!-- List modes -->
- <item>VIEW (content uri without any id)</item>
<item>ACTION_PICK: contact</item>
<item>ACTION_PICK: contact (legacy)</item>
<item>ACTION_PICK: phone</item>
@@ -44,6 +43,7 @@
<item>ACTION_SEARCH: contact</item>
<item>ACTION_SEARCH: email</item>
<item>ACTION_SEARCH: phone</item>
+ <item>ACTION_SEARCH: general</item>
<item>SEARCH_SUGGESTION_CLICKED: contact</item>
<!-- Edit -->
@@ -61,6 +61,8 @@
<item>EDIT (group)</item>
<!-- View -->
+ <item>VIEW (content uri without any id)</item>
+ <item>VIEW PERSON (content uri without any id)</item>
<item>VIEW (content uri with only id)</item>
<item>VIEW (lookup uri without id)</item>
<item>VIEW (lookup uri)</item>
@@ -70,6 +72,15 @@
<!-- Various ways to start Contacts -->
<item>QuickContactTestsActivity</item>
+
+ <!-- Intents accepted by PeopleActivity -->
+ <item>LIST_DEFAULT</item>
+ <item>LIST_CONTACTS</item>
+ <item>LIST_ALL_CONTACTS</item>
+ <item>LIST_CONTACTS_WITH_PHONES</item>
+ <item>LIST_STARRED</item>
+ <item>LIST_FREQUENT</item>
+ <item>LIST_STREQUENT</item>
</string-array>
<string name="pickContact">Pick contact</string>
diff --git a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
index 926f75e..4a93364 100644
--- a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
+++ b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
@@ -45,6 +45,7 @@
import android.widget.Toast;
import com.android.contacts.GroupListLoader;
+import com.android.contacts.list.UiIntentActions;
import com.android.contacts.tests.R;
import com.android.contacts.tests.quickcontact.QuickContactTestsActivity;
@@ -67,7 +68,6 @@
"com.android.contacts.activities.PeopleActivity";
public enum ContactsIntent {
- VIEW_CONTACT_WITHOUT_ID,
ACTION_PICK_CONTACT,
ACTION_PICK_CONTACT_LEGACY,
ACTION_PICK_PHONE,
@@ -92,6 +92,7 @@
ACTION_SEARCH_CONTACT,
ACTION_SEARCH_EMAIL,
ACTION_SEARCH_PHONE,
+ ACTION_SEARCH_GENERAL,
SEARCH_SUGGESTION_CLICKED_CONTACT,
EDIT_CONTACT,
EDIT_CONTACT_LOOKUP,
@@ -105,13 +106,22 @@
EDIT_NEW_RAW_CONTACT,
EDIT_NEW_LEGACY,
EDIT_GROUP,
+ VIEW_CONTACT_WITHOUT_ID,
+ VIEW_PERSON_WITHOUT_ID,
VIEW_CONTACT,
VIEW_CONTACT_LOOKUP,
VIEW_CONTACT_LOOKUP_ID,
VIEW_RAW_CONTACT,
VIEW_LEGACY,
VIEW_GROUP,
- QUICK_CONTACT_TESTS_ACTIVITY;
+ QUICK_CONTACT_TESTS_ACTIVITY,
+ LIST_DEFAULT,
+ LIST_CONTACTS,
+ LIST_ALL_CONTACTS,
+ LIST_CONTACTS_WITH_PHONES,
+ LIST_STARRED,
+ LIST_FREQUENT,
+ LIST_STREQUENT;
public static ContactsIntent get(int ordinal) {
return values()[ordinal];
@@ -275,6 +285,12 @@
startSearchResultActivity(intent);
break;
}
+ case ACTION_SEARCH_GENERAL: {
+ Intent intent = new Intent(Intent.ACTION_SEARCH);
+ intent.putExtra(SearchManager.QUERY, "a");
+ startSearchResultActivity(intent);
+ break;
+ }
case SEARCH_SUGGESTION_CLICKED_CONTACT: {
long contactId = findArbitraryContactWithPhoneNumber();
if (contactId != -1) {
@@ -389,6 +405,12 @@
startActivity(new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI));
break;
}
+ case VIEW_PERSON_WITHOUT_ID: {
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setType("vnd.android.cursor.dir/person");
+ startActivity(intent);
+ break;
+ }
case VIEW_CONTACT_LOOKUP: {
final long contactId = findArbitraryContactWithPhoneNumber();
if (contactId != -1) {
@@ -449,6 +471,34 @@
startActivity(new Intent(this, QuickContactTestsActivity.class));
break;
}
+ case LIST_DEFAULT: {
+ startActivity(new Intent(UiIntentActions.LIST_DEFAULT));
+ break;
+ }
+ case LIST_CONTACTS: {
+ startActivity(new Intent(UiIntentActions.LIST_CONTACTS));
+ break;
+ }
+ case LIST_ALL_CONTACTS: {
+ startActivity(new Intent(UiIntentActions.LIST_ALL_CONTACTS_ACTION));
+ break;
+ }
+ case LIST_CONTACTS_WITH_PHONES: {
+ startActivity(new Intent(UiIntentActions.LIST_CONTACTS_WITH_PHONES_ACTION));
+ break;
+ }
+ case LIST_STARRED: {
+ startActivity(new Intent(UiIntentActions.LIST_STARRED_ACTION));
+ break;
+ }
+ case LIST_FREQUENT: {
+ startActivity(new Intent(UiIntentActions.LIST_FREQUENT_ACTION));
+ break;
+ }
+ case LIST_STREQUENT: {
+ startActivity(new Intent(UiIntentActions.LIST_STREQUENT_ACTION));
+ break;
+ }
default: {
Toast.makeText(this, "Sorry, we forgot to write this...", Toast.LENGTH_LONG).show();