Merge "Update editor menu options" into ub-contactsdialer-h-dev
diff --git a/res/menu/edit_contact.xml b/res/menu/edit_contact.xml
index 9bf067f..a62acc8 100644
--- a/res/menu/edit_contact.xml
+++ b/res/menu/edit_contact.xml
@@ -34,15 +34,6 @@
android:title="@string/menu_deleteContact" />
<item
- android:id="@+id/menu_set_ringtone"
- android:title="@string/menu_set_ring_tone" />
-
- <item
- android:id="@+id/menu_send_to_voicemail"
- android:checkable="true"
- android:title="@string/menu_redirect_calls_to_vm" />
-
- <item
android:id="@+id/menu_help"
android:title="@string/menu_help" />
</menu>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index d3c4966..c6542fb 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -26,14 +26,6 @@
the overlay will fill this in during build time. -->
<string name="help_url_people_main"></string>
- <!-- Help URL pointing to adding contacts in People. This is intentionally empty because
- the overlay will fill this in during build time. -->
- <string name="help_url_people_add"></string>
-
- <!-- Help URL pointing to editing contacts in People. This is intentionally empty because
- the overlay will fill this in during build time. -->
- <string name="help_url_people_edit"></string>
-
<!-- File Authority for the photo picker -->
<string name="photo_file_provider_authority">com.android.contacts.files</string>
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 455d9ae..9f55551 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -20,7 +20,6 @@
import android.app.Activity;
import android.app.Fragment;
import android.app.LoaderManager;
-import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
@@ -30,7 +29,6 @@
import android.content.Loader;
import android.database.Cursor;
import android.graphics.Bitmap;
-import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
@@ -60,9 +58,9 @@
import com.android.contacts.ContactSaveService;
import com.android.contacts.GroupMetaDataLoader;
import com.android.contacts.R;
+import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
import com.android.contacts.activities.ContactEditorActivity;
import com.android.contacts.activities.ContactEditorActivity.ContactEditor;
-import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
import com.android.contacts.activities.ContactSelectionActivity;
import com.android.contacts.common.Experiments;
import com.android.contacts.common.logging.ScreenEvent.ScreenType;
@@ -86,9 +84,8 @@
import com.android.contacts.quickcontact.InvisibleContactUtil;
import com.android.contacts.quickcontact.QuickContactActivity;
import com.android.contacts.util.ContactPhotoUtils;
-import com.android.contacts.util.HelpUtils;
-import com.android.contacts.util.PhoneCapabilityTester;
import com.android.contacts.util.UiClosables;
+import com.android.contactsbind.HelpUtils;
import com.android.contactsbind.ObjectFactory;
import com.android.contactsbind.experiments.Flags;
@@ -146,11 +143,6 @@
private static final String KEY_IS_EDIT = "isEdit";
private static final String KEY_EXISTING_CONTACT_READY = "existingContactDataReady";
- // Phone option menus
- private static final String KEY_SEND_TO_VOICE_MAIL_STATE = "sendToVoicemailState";
- private static final String KEY_ARE_PHONE_OPTIONS_CHANGEABLE = "arePhoneOptionsChangable";
- private static final String KEY_CUSTOM_RINGTONE = "customRingtone";
-
private static final String KEY_IS_USER_PROFILE = "isUserProfile";
private static final String KEY_ENABLED = "enabled";
@@ -167,7 +159,6 @@
protected static final int REQUEST_CODE_JOIN = 0;
protected static final int REQUEST_CODE_ACCOUNTS_CHANGED = 1;
- protected static final int REQUEST_CODE_PICK_RINGTONE = 2;
private static final int CURRENT_API_VERSION = android.os.Build.VERSION.SDK_INT;
@@ -365,11 +356,6 @@
// Whether we are editing the "me" profile
protected boolean mIsUserProfile;
- // Phone specific option menu items
- private boolean mSendToVoicemailState;
- private boolean mArePhoneOptionsChangable;
- private String mCustomRingtone;
-
// Whether editor views and options menu items should be enabled
private boolean mEnabled = true;
@@ -415,7 +401,6 @@
mLookupUri = contact.getLookupUri();
final long setDataStartTime = SystemClock.elapsedRealtime();
setState(contact);
- setStateForPhoneMenuItems(contact);
final long setDataEndTime = SystemClock.elapsedRealtime();
Log.v(TAG, "Time needed for setting UI: " + (setDataEndTime - setDataStartTime));
@@ -506,11 +491,6 @@
mIsUserProfile = savedState.getBoolean(KEY_IS_USER_PROFILE);
- // Phone specific options menus
- mSendToVoicemailState = savedState.getBoolean(KEY_SEND_TO_VOICE_MAIL_STATE);
- mArePhoneOptionsChangable = savedState.getBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE);
- mCustomRingtone = savedState.getString(KEY_CUSTOM_RINGTONE);
-
mEnabled = savedState.getBoolean(KEY_ENABLED);
// Aggregation PopupWindow
@@ -627,11 +607,6 @@
outState.putBoolean(KEY_IS_USER_PROFILE, mIsUserProfile);
- // Phone specific options
- outState.putBoolean(KEY_SEND_TO_VOICE_MAIL_STATE, mSendToVoicemailState);
- outState.putBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE, mArePhoneOptionsChangable);
- outState.putString(KEY_CUSTOM_RINGTONE, mCustomRingtone);
-
outState.putBoolean(KEY_ENABLED, mEnabled);
// Aggregation PopupWindow
@@ -704,37 +679,13 @@
createContact();
break;
}
- case REQUEST_CODE_PICK_RINGTONE: {
- if (data != null) {
- final Uri pickedUri = data.getParcelableExtra(
- RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- onRingtonePicked(pickedUri);
- }
- break;
- }
}
}
- private void onRingtonePicked(Uri pickedUri) {
- mCustomRingtone = EditorUiUtils.getRingtoneStringFromUri(pickedUri, CURRENT_API_VERSION);
- Intent intent = ContactSaveService.createSetRingtone(
- mContext, mLookupUri, mCustomRingtone);
- mContext.startService(intent);
- }
-
//
// Options menu
//
- private void setStateForPhoneMenuItems(Contact contact) {
- if (contact != null) {
- mSendToVoicemailState = contact.isSendToVoicemail();
- mCustomRingtone = contact.getCustomRingtone();
- mArePhoneOptionsChangable = !contact.isDirectoryEntry()
- && PhoneCapabilityTester.isPhone(mContext);
- }
- }
-
@Override
public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.edit_contact, menu);
@@ -748,22 +699,8 @@
final MenuItem saveMenu = menu.findItem(R.id.menu_save);
final MenuItem splitMenu = menu.findItem(R.id.menu_split);
final MenuItem joinMenu = menu.findItem(R.id.menu_join);
- final MenuItem helpMenu = menu.findItem(R.id.menu_help);
- final MenuItem sendToVoiceMailMenu = menu.findItem(R.id.menu_send_to_voicemail);
- final MenuItem ringToneMenu = menu.findItem(R.id.menu_set_ringtone);
final MenuItem deleteMenu = menu.findItem(R.id.menu_delete);
- // Set visibility of menus
-
- // help menu depending on whether this is inserting or editing
- if (Intent.ACTION_INSERT.equals(mAction)) {
- HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_add);
- } else if (Intent.ACTION_EDIT.equals(mAction)) {
- HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_edit);
- } else {
- // something else, so don't show the help menu
- helpMenu.setVisible(false);
- }
// TODO: b/30771904, b/31827701, temporarily disable these items until we get them to work
// on a raw contact level.
joinMenu.setVisible(false);
@@ -781,17 +718,6 @@
});
}
- if (mIsUserProfile) {
- sendToVoiceMailMenu.setVisible(false);
- ringToneMenu.setVisible(false);
- } else {
- // Hide telephony-related settings (ringtone, send to voicemail)
- // if we don't have a telephone or are editing a new contact.
- sendToVoiceMailMenu.setChecked(mSendToVoicemailState);
- sendToVoiceMailMenu.setVisible(mArePhoneOptionsChangable);
- ringToneMenu.setVisible(mArePhoneOptionsChangable);
- }
-
int size = menu.size();
for (int i = 0; i < size; i++) {
menu.getItem(i).setEnabled(mEnabled);
@@ -821,16 +747,8 @@
return doSplitContactAction();
case R.id.menu_join:
return doJoinContactAction();
- case R.id.menu_set_ringtone:
- doPickRingtone();
- return true;
- case R.id.menu_send_to_voicemail:
- // Update state and save
- mSendToVoicemailState = !mSendToVoicemailState;
- item.setChecked(mSendToVoicemailState);
- final Intent intent = ContactSaveService.createSetSendToVoicemail(
- mContext, mLookupUri, mSendToVoicemailState);
- mContext.startService(intent);
+ case R.id.menu_help:
+ HelpUtils.launchHelpAndFeedbackForContactScreen(getActivity());
return true;
}
@@ -912,29 +830,6 @@
doSaveAction(SaveMode.JOIN, joinContactId);
}
- private void doPickRingtone() {
- final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
- // Allow user to pick 'Default'
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
- // Show only ringtones
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
- // Allow the user to pick a silent ringtone
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
-
- final Uri ringtoneUri = EditorUiUtils.getRingtoneUriFromString(mCustomRingtone,
- CURRENT_API_VERSION);
-
- // Put checkmark next to the current ringtone for this contact
- intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
-
- // Launch!
- try {
- startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
- } catch (ActivityNotFoundException ex) {
- Toast.makeText(mContext, R.string.missing_app, Toast.LENGTH_SHORT).show();
- }
- }
-
@Override
public boolean save(int saveMode) {
if (!hasValidState() || mStatus != Status.EDITING) {
@@ -1047,8 +942,7 @@
final ContentValues original = before.getBefore();
final ContentValues pending = after.getAfter();
if (original != null && pending != null) {
- final String beforeDisplayName = original.getAsString(
- StructuredName.DISPLAY_NAME);
+ final String beforeDisplayName = original.getAsString(StructuredName.DISPLAY_NAME);
final String afterDisplayName = pending.getAsString(StructuredName.DISPLAY_NAME);
if (!TextUtils.equals(beforeDisplayName, afterDisplayName)) return false;
@@ -1498,18 +1392,20 @@
final Cursor cursor = resolver.query(contactUri, new String[]{
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.DISPLAY_NAME_ALTERNATIVE}, null, null, null);
- try {
- if (cursor.moveToFirst()) {
- final String displayName = cursor.getString(0);
- final String displayNameAlt = cursor.getString(1);
- cursor.close();
- return ContactDisplayUtils.getPreferredDisplayName(displayName, displayNameAlt,
- new ContactsPreferences(mContext));
- }
- } finally {
- cursor.close();
- }
+ if (cursor != null) {
+ try {
+ if (cursor.moveToFirst()) {
+ final String displayName = cursor.getString(0);
+ final String displayNameAlt = cursor.getString(1);
+ cursor.close();
+ return ContactDisplayUtils.getPreferredDisplayName(displayName, displayNameAlt,
+ new ContactsPreferences(mContext));
+ }
+ } finally {
+ cursor.close();
+ }
+ }
return null;
}