Merge "Don't animate addition of kind sections" into ub-contactsdialer-a-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c8cc042..6cb95fc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -172,8 +172,11 @@
<!-- Toast shown after two contacts have been linked by a user action. [CHAR LIMIT=NONE] -->
<string name="contactsJoinedMessage">Contacts linked</string>
- <!-- Toast shown after contacts that the user has selected are deleted by a user action. [CHAR LIMIT=NONE] -->
- <string name="contacts_deleted_toast">Contacts deleted</string>
+ <!-- Toast shown after contacts that the user has selected are deleted by a user action. [CHAR LIMIT=30] -->
+ <plurals name="contacts_deleted_toast">
+ <item quantity="one">Contact deleted</item>
+ <item quantity="other">Contacts deleted</item>
+ </plurals>
<!-- Menu item that opens the Options activity for a given contact [CHAR LIMIT=15] -->
<string name="menu_set_ring_tone">Set ringtone</string>
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index 1989606..fd117a4 100755
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -1012,7 +1012,15 @@
final Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
getContentResolver().delete(contactUri, null, null);
}
- showToast(R.string.contacts_deleted_toast);
+ final String deleteToastMessage = getResources().getQuantityString(R.plurals
+ .contacts_deleted_toast, contactIds.length);
+ mMainHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(ContactSaveService.this, deleteToastMessage, Toast.LENGTH_LONG)
+ .show();
+ }
+ });
}
/**
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index d7c074e..f03f1eb 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -23,6 +23,8 @@
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
@@ -188,8 +190,7 @@
}
public boolean areContactsAvailable() {
- return (mProviderStatus != null)
- && mProviderStatus.equals(ProviderStatus.STATUS_NORMAL);
+ return (mProviderStatus != null) && mProviderStatus.equals(ProviderStatus.STATUS_NORMAL);
}
private boolean areContactWritableAccountsAvailable() {
@@ -1124,15 +1125,25 @@
&& mAllFragment.getSelectedContactIds().size() != 0;
makeMenuItemVisible(menu, R.id.menu_share, showSelectedContactOptions);
makeMenuItemVisible(menu, R.id.menu_delete, showSelectedContactOptions);
- makeMenuItemVisible(menu, R.id.menu_join, showSelectedContactOptions);
- makeMenuItemEnabled(menu, R.id.menu_join, mAllFragment.getSelectedContactIds().size() > 1);
+ final boolean showLinkContactsOptions = mActionBarAdapter.isSelectionMode()
+ && mAllFragment.getSelectedContactIds().size() > 1;
+ makeMenuItemVisible(menu, R.id.menu_join, showLinkContactsOptions);
// Debug options need to be visible even in search mode.
- makeMenuItemVisible(menu, R.id.export_database, mEnableDebugMenuOptions);
+ makeMenuItemVisible(menu, R.id.export_database, mEnableDebugMenuOptions &&
+ hasExportIntentHandler());
return true;
}
+ private boolean hasExportIntentHandler() {
+ final Intent intent = new Intent();
+ intent.setAction("com.android.providers.contacts.DUMP_DATABASE");
+ final List<ResolveInfo> receivers = getPackageManager().queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY);
+ return receivers != null && receivers.size() > 0;
+ }
+
/**
* Returns whether there are any frequently contacted people being displayed
* @return
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index a626ad0..5855788 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -34,6 +34,7 @@
import android.provider.ContactsContract.Contacts.Entity;
import android.text.TextUtils;
import android.util.Log;
+import android.widget.Toast;
import com.android.contacts.ContactSaveService;
import com.android.contacts.R;
@@ -333,6 +334,9 @@
if (isAdded() && mFinishActivityWhenDone) {
getActivity().setResult(RESULT_CODE_DELETED);
getActivity().finish();
+ final String deleteToastMessage = getResources().getQuantityString(R.plurals
+ .contacts_deleted_toast, /* quantity */ 1);
+ Toast.makeText(mContext, deleteToastMessage, Toast.LENGTH_LONG).show();
}
}
}