am fe8eacdf: (-s ours) Import translations. DO NOT MERGE
* commit 'fe8eacdff5132421e7c25b1394584c913160d6a8':
Import translations. DO NOT MERGE
diff --git a/proguard.flags b/proguard.flags
index 3991a14..05071df 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -10,10 +10,10 @@
}
# Any class or method annotated with NeededForTesting or NeededForReflection.
--keep @com.android.contacts.common.test.NeededForTesting class *
+-keep @com.android.contacts.common.testing.NeededForTesting class *
-keep @com.android.contacts.test.NeededForReflection class *
-keepclassmembers class * {
-@com.android.contacts.common.test.NeededForTesting *;
+@com.android.contacts.common.testing.NeededForTesting *;
@com.android.contacts.test.NeededForReflection *;
}
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index b94a237..82d1f98 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -26,7 +26,7 @@
import android.view.View;
import com.android.contacts.common.activity.TransactionSafeActivity;
-import com.android.contacts.common.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
/**
* A common superclass for Contacts activities that handles application-wide services.
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 95fad48..2d2a782 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -32,7 +32,7 @@
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.list.ContactListFilterController;
import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
import com.android.contacts.common.util.Constants;
import com.google.common.annotations.VisibleForTesting;
diff --git a/src/com/android/contacts/activities/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
index 25c23e0..4c4d4dc 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -16,6 +16,7 @@
package com.android.contacts.activities;
+import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.Loader;
@@ -30,9 +31,11 @@
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.DisplayPhoto;
import android.util.Log;
+import android.widget.Toast;
import com.android.contacts.ContactSaveService;
import com.android.contacts.ContactsActivity;
+import com.android.contacts.R;
import com.android.contacts.common.model.Contact;
import com.android.contacts.common.model.ContactLoader;
import com.android.contacts.common.model.RawContactDelta;
@@ -152,7 +155,12 @@
ContactPhotoUtils.addPhotoPickerExtras(intent, mCroppedPhotoUri);
ContactPhotoUtils.addCropExtras(intent, mPhotoDim != 0 ? mPhotoDim : mDefaultPhotoDim);
- startActivityForResult(intent, REQUEST_CROP_PHOTO);
+ try {
+ startActivityForResult(intent, REQUEST_CROP_PHOTO);
+ } catch (ActivityNotFoundException ex) {
+ Toast.makeText(this, R.string.missing_app, Toast.LENGTH_SHORT).show();
+ return;
+ }
mContactUri = result.getData();
diff --git a/src/com/android/contacts/datepicker/DatePicker.java b/src/com/android/contacts/datepicker/DatePicker.java
index fde265a..d662c3a 100644
--- a/src/com/android/contacts/datepicker/DatePicker.java
+++ b/src/com/android/contacts/datepicker/DatePicker.java
@@ -221,7 +221,7 @@
// We use numeric spinners for year and day, but textual months. Ask icu4c what
// order the user's locale uses for that combination. http://b/7207103.
String skeleton = mHasYear ? "yyyyMMMdd" : "MMMdd";
- String pattern = ICU.getBestDateTimePattern(skeleton, Locale.getDefault().toString());
+ String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), skeleton);
char[] order = ICU.getDateFormatOrder(pattern);
/* Remove the 3 pickers from their parent and then add them back in the
diff --git a/src/com/android/contacts/detail/ContactLoaderFragment.java b/src/com/android/contacts/detail/ContactLoaderFragment.java
index 0b420f7..1288cf7 100644
--- a/src/com/android/contacts/detail/ContactLoaderFragment.java
+++ b/src/com/android/contacts/detail/ContactLoaderFragment.java
@@ -439,7 +439,11 @@
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
// Launch!
- startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
+ try {
+ startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
+ } catch (ActivityNotFoundException ex) {
+ Toast.makeText(mContext, R.string.missing_app, Toast.LENGTH_SHORT).show();
+ }
}
@Override
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
index f121605..91df272 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionEngine.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -335,25 +335,24 @@
}
}
- private boolean updateSuggestedContactIds(Cursor cursor) {
- int count = cursor.getCount();
+ private boolean updateSuggestedContactIds(final Cursor cursor) {
+ final int count = cursor.getCount();
boolean changed = count != mSuggestedContactIds.length;
- if (!changed) {
- while (cursor.moveToNext()) {
- long contactId = cursor.getLong(0);
- if (Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
- changed = true;
- break;
- }
+ final ArrayList<Long> newIds = new ArrayList<Long>(count);
+ while (cursor.moveToNext()) {
+ final long contactId = cursor.getLong(0);
+ if (!changed &&
+ Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
+ changed = true;
}
+ newIds.add(contactId);
}
if (changed) {
- mSuggestedContactIds = new long[count];
- cursor.moveToPosition(-1);
- for (int i = 0; i < count; i++) {
- cursor.moveToNext();
- mSuggestedContactIds[i] = cursor.getLong(0);
+ mSuggestedContactIds = new long[newIds.size()];
+ int i = 0;
+ for (final Long newId : newIds) {
+ mSuggestedContactIds[i++] = newId;
}
Arrays.sort(mSuggestedContactIds);
}
diff --git a/src/com/android/contacts/editor/ContactEditorUtils.java b/src/com/android/contacts/editor/ContactEditorUtils.java
index e93d3c8..b132217 100644
--- a/src/com/android/contacts/editor/ContactEditorUtils.java
+++ b/src/com/android/contacts/editor/ContactEditorUtils.java
@@ -26,7 +26,7 @@
import android.text.TextUtils;
import android.util.Log;
-import com.android.contacts.common.test.NeededForTesting;
+import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index e950fcb..db3a341 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -710,6 +710,9 @@
@Override
public void onPageSelected(int position) {
final CheckableImageView actionView = getActionViewAt(position);
+ if (actionView == null) {
+ return;
+ }
mTrackScroller.requestChildRectangleOnScreen(actionView,
new Rect(0, 0, actionView.getWidth(), actionView.getHeight()), false);
// Don't render rectangle if we are currently scrolling to prevent it from flickering
diff --git a/src/com/android/contacts/widget/CompositeListAdapter.java b/src/com/android/contacts/widget/CompositeListAdapter.java
index d83246a..4c72ee8 100644
--- a/src/com/android/contacts/widget/CompositeListAdapter.java
+++ b/src/com/android/contacts/widget/CompositeListAdapter.java
@@ -21,7 +21,7 @@
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
-import com.android.contacts.common.test.NeededForTesting;
+import com.android.contacts.common.testing.NeededForTesting;
import com.google.common.annotations.VisibleForTesting;
/**
diff --git a/tests/src/com/android/contacts/activities/PeopleActivityTest.java b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
index d882da7..592b606 100644
--- a/tests/src/com/android/contacts/activities/PeopleActivityTest.java
+++ b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
@@ -16,6 +16,7 @@
package com.android.contacts.activities;
+import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Intent;
import android.content.Loader;
@@ -35,6 +36,7 @@
import com.android.contacts.ContactsApplication;
import com.android.contacts.R;
import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.testing.InjectedServices;
import com.android.contacts.common.test.mocks.ContactsMockContext;
import com.android.contacts.common.test.mocks.MockContentProvider;
import com.android.contacts.common.test.mocks.MockContentProvider.Query;
@@ -45,7 +47,6 @@
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.model.account.BaseAccountType;
-import com.android.contacts.common.test.InjectedServices;
import com.android.contacts.common.test.mocks.MockAccountTypeManager;
import com.android.contacts.common.test.mocks.MockContactPhotoManager;
import com.android.contacts.common.test.mocks.MockSharedPreferences;
@@ -88,6 +89,10 @@
public void setUp() {
mContext = new ContactsMockContext(getInstrumentation().getTargetContext());
mContactsProvider = mContext.getContactsProvider();
+ // The ContactsApplication performs this getType query to warm up the provider - see
+ // ContactsApplication#DelayedInitialization.doInBackground
+ mContactsProvider.expectTypeQuery(ContentUris.withAppendedId(Contacts.CONTENT_URI, 1),
+ Contacts.CONTENT_ITEM_TYPE);
mSettingsProvider = mContext.getSettingsProvider();
InjectedServices services = new InjectedServices();
services.setContentResolver(mContext.getContentResolver());
diff --git a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
index bcaa398..5932c87 100644
--- a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -34,7 +34,7 @@
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.BaseAccountType;
-import com.android.contacts.common.test.InjectedServices;
+import com.android.contacts.common.testing.InjectedServices;
import com.android.contacts.common.test.mocks.MockAccountTypeManager;
/**