Replace switches on resources with if-else
This is necessary for the project to build as an Android library which
is planned for Google3.
Test: ran GoogleContactsTests
Bug 33782320
Change-Id: I62f15486b7e976bb20a6e9c631dc8404a4170dbb
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index ee4b726..654263b 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -172,18 +172,17 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- // Go back to previous screen, intending "cancel"
- setResult(RESULT_CANCELED);
- onBackPressed();
- return true;
- case R.id.menu_search:
- mIsSearchMode = !mIsSearchMode;
- configureSearchMode();
- return true;
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {// Go back to previous screen, intending "cancel"
+ setResult(RESULT_CANCELED);
+ onBackPressed();
+ } else if (id == R.id.menu_search) {
+ mIsSearchMode = !mIsSearchMode;
+ configureSearchMode();
+ } else {
+ return super.onOptionsItemSelected(item);
}
- return super.onOptionsItemSelected(item);
+ return true;
}
@Override
@@ -631,11 +630,9 @@
@Override
public void onFocusChange(View view, boolean hasFocus) {
- switch (view.getId()) {
- case R.id.search_view: {
- if (hasFocus) {
- mActionBarAdapter.setFocusOnSearchView();
- }
+ if (view.getId() == R.id.search_view) {
+ if (hasFocus) {
+ mActionBarAdapter.setFocusOnSearchView();
}
}
}
@@ -654,11 +651,8 @@
@Override
public void onClick(View view) {
- switch (view.getId()) {
- case R.id.floating_action_button: {
- startCreateNewContactActivity();
- break;
- }
+ if (view.getId() == R.id.floating_action_button) {
+ startCreateNewContactActivity();
}
}
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index c9153e1..27a355f 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -784,19 +784,19 @@
return true;
}
- switch (item.getItemId()) {
- case R.id.menu_save:
- return save(SaveMode.CLOSE);
- case R.id.menu_delete:
- if (mListener != null) mListener.onDeleteRequested(mLookupUri);
- return true;
- case R.id.menu_split:
- return doSplitContactAction();
- case R.id.menu_join:
- return doJoinContactAction();
- case R.id.menu_help:
- HelpUtils.launchHelpAndFeedbackForContactScreen(getActivity());
- return true;
+ final int id = item.getItemId();
+ if (id == R.id.menu_save) {
+ return save(SaveMode.CLOSE);
+ } else if (id == R.id.menu_delete) {
+ if (mListener != null) mListener.onDeleteRequested(mLookupUri);
+ return true;
+ } else if (id == R.id.menu_split) {
+ return doSplitContactAction();
+ } else if (id == R.id.menu_join) {
+ return doJoinContactAction();
+ } else if (id == R.id.menu_help) {
+ HelpUtils.launchHelpAndFeedbackForContactScreen(getActivity());
+ return true;
}
return false;
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index 4c29330..5d47d95 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -144,11 +144,10 @@
public Dialog createDialog(Bundle bundle) {
if (bundle == null) throw new IllegalArgumentException("bundle must not be null");
int dialogId = bundle.getInt(DIALOG_ID_KEY);
- switch (dialogId) {
- case R.id.dialog_event_date_picker:
- return createDatePickerDialog();
- default:
- return super.createDialog(bundle);
+ if (dialogId == R.id.dialog_event_date_picker) {
+ return createDatePickerDialog();
+ } else {
+ return super.createDialog(bundle);
}
}
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index ea7ab64..5ca1e9b 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -461,57 +461,43 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home: {
- mActivity.onBackPressed();
- return true;
- }
- case R.id.menu_add: {
- startGroupAddMemberActivity();
- return true;
- }
- case R.id.menu_multi_send_email: {
- final long[] ids = mActionBarAdapter.isSelectionMode()
- ? getAdapter().getSelectedContactIdsArray()
- : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
- sendToGroup(ids, ContactsUtils.SCHEME_MAILTO,
- getString(R.string.menu_sendEmailOption));
- return true;
- }
- case R.id.menu_multi_send_message: {
- final long[] ids = mActionBarAdapter.isSelectionMode()
- ? getAdapter().getSelectedContactIdsArray()
- : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
- sendToGroup(ids, ContactsUtils.SCHEME_SMSTO,
- getString(R.string.menu_sendMessageOption));
- return true;
- }
- case R.id.menu_rename_group: {
- GroupNameEditDialogFragment.newInstanceForUpdate(
- new AccountWithDataSet(mGroupMetaData.accountName,
- mGroupMetaData.accountType, mGroupMetaData.dataSet),
- GroupUtil.ACTION_UPDATE_GROUP, mGroupMetaData.groupId,
- mGroupMetaData.groupName).show(getFragmentManager(),
- TAG_GROUP_NAME_EDIT_DIALOG);
- return true;
- }
- case R.id.menu_delete_group: {
- deleteGroup();
- return true;
- }
- case R.id.menu_edit_group: {
- mIsEditMode = true;
- mActionBarAdapter.setSelectionMode(true);
- displayDeleteButtons(true);
- return true;
- }
- case R.id.menu_remove_from_group: {
- logListEvent();
- removeSelectedContacts();
- return true;
- }
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {
+ mActivity.onBackPressed();
+ } else if (id == R.id.menu_add) {
+ startGroupAddMemberActivity();
+ } else if (id == R.id.menu_multi_send_email) {
+ final long[] ids = mActionBarAdapter.isSelectionMode()
+ ? getAdapter().getSelectedContactIdsArray()
+ : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+ sendToGroup(ids, ContactsUtils.SCHEME_MAILTO,
+ getString(R.string.menu_sendEmailOption));
+ } else if (id == R.id.menu_multi_send_message) {
+ final long[] ids = mActionBarAdapter.isSelectionMode()
+ ? getAdapter().getSelectedContactIdsArray()
+ : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+ sendToGroup(ids, ContactsUtils.SCHEME_SMSTO,
+ getString(R.string.menu_sendMessageOption));
+ } else if (id == R.id.menu_rename_group) {
+ GroupNameEditDialogFragment.newInstanceForUpdate(
+ new AccountWithDataSet(mGroupMetaData.accountName,
+ mGroupMetaData.accountType, mGroupMetaData.dataSet),
+ GroupUtil.ACTION_UPDATE_GROUP, mGroupMetaData.groupId,
+ mGroupMetaData.groupName).show(getFragmentManager(),
+ TAG_GROUP_NAME_EDIT_DIALOG);
+ } else if (id == R.id.menu_delete_group) {
+ deleteGroup();
+ } else if (id == R.id.menu_edit_group) {
+ mIsEditMode = true;
+ mActionBarAdapter.setSelectionMode(true);
+ displayDeleteButtons(true);
+ } else if (id == R.id.menu_remove_from_group) {
+ logListEvent();
+ removeSelectedContacts();
+ } else {
+ return super.onOptionsItemSelected(item);
}
- return super.onOptionsItemSelected(item);
+ return true;
}
private void removeSelectedContacts() {
diff --git a/src/com/android/contacts/list/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
index 76f3935..c13e475 100644
--- a/src/com/android/contacts/list/ContactsUnavailableFragment.java
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -129,14 +129,14 @@
@Override
public void onClick(View v) {
- switch (v.getId()) {
- case R.id.add_account_button:
- final Intent intent = ImplicitIntentsUtil.getIntentForAddingGoogleAccount();
- ImplicitIntentsUtil.startActivityOutsideApp(getActivity(), intent);
- break;
- case R.id.import_contacts_button:
- ImportDialogFragment.show(getFragmentManager());
- break;
+ final int id = v.getId();
+ if (id == R.id.add_account_button) {
+ final Intent intent = ImplicitIntentsUtil.getIntentForAddingGoogleAccount();
+ ImplicitIntentsUtil.startActivityOutsideApp(getActivity(), intent);
+
+ } else if (id == R.id.import_contacts_button) {
+ ImportDialogFragment.show(getFragmentManager());
+
}
}
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index bbde17b..2fe9e12 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -934,15 +934,14 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- confirmFinish();
- return true;
- case R.id.menu_save:
- this.doSaveAction();
- return true;
- default:
- break;
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {
+ confirmFinish();
+ return true;
+ } else if (id == R.id.menu_save) {
+ this.doSaveAction();
+ return true;
+ } else {
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 079c5a5..855a530 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -1014,43 +1014,36 @@
return false;
}
- switch (item.getItemId()) {
- case android.R.id.home: {
- // The home icon on the action bar is pressed
- if (mActionBarAdapter.isUpShowing()) {
- // "UP" icon press -- should be treated as "back".
- mActivity.onBackPressed();
- }
- return true;
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {
+ if (mActionBarAdapter.isUpShowing()) {
+ // "UP" icon press -- should be treated as "back".
+ mActivity.onBackPressed();
}
- case R.id.menu_search: {
- if (!mActionBarAdapter.isSelectionMode()) {
- mActionBarAdapter.setSearchMode(true);
- }
- return true;
+ return true;
+ } else if (id == R.id.menu_search) {
+ if (!mActionBarAdapter.isSelectionMode()) {
+ mActionBarAdapter.setSearchMode(true);
}
- case R.id.menu_share: {
- shareSelectedContacts();
- return true;
- }
- case R.id.menu_join: {
- Logger.logListEvent(ListEvent.ActionType.LINK,
+ return true;
+ } else if (id == R.id.menu_share) {
+ shareSelectedContacts();
+ return true;
+ } else if (id == R.id.menu_join) {
+ Logger.logListEvent(ListEvent.ActionType.LINK,
/* listType */ getListTypeIncludingSearch(),
/* count */ getAdapter().getCount(), /* clickedIndex */ -1,
/* numSelected */ getAdapter().getSelectedContactIds().size());
- joinSelectedContacts();
- return true;
- }
- case R.id.menu_delete: {
- deleteSelectedContacts();
- return true;
- }
- case R.id.export_database: {
- final Intent intent = new Intent("com.android.providers.contacts.DUMP_DATABASE");
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
- ImplicitIntentsUtil.startActivityOutsideApp(getContext(), intent);
- return true;
- }
+ joinSelectedContacts();
+ return true;
+ } else if (id == R.id.menu_delete) {
+ deleteSelectedContacts();
+ return true;
+ } else if (id == R.id.export_database) {
+ final Intent intent = new Intent("com.android.providers.contacts.DUMP_DATABASE");
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ ImplicitIntentsUtil.startActivityOutsideApp(getContext(), intent);
+ return true;
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
index a554382..e94d73b 100644
--- a/src/com/android/contacts/list/GroupMemberPickerFragment.java
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -301,20 +301,18 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home: {
- final Activity activity = getActivity();
- if (activity != null) {
- activity.onBackPressed();
- }
- return true;
+ final int id = item.getItemId();
+ if (id == android.R.id.home) {
+ final Activity activity = getActivity();
+ if (activity != null) {
+ activity.onBackPressed();
}
- case R.id.menu_select: {
- if (mListener != null) {
- mListener.onSelectGroupMembers();
- }
- return true;
+ return true;
+ } else if (id == R.id.menu_select) {
+ if (mListener != null) {
+ mListener.onSelectGroupMembers();
}
+ return true;
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
index ec0bff6..6f6a3c7 100644
--- a/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
@@ -77,18 +77,16 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch(item.getItemId()) {
- case R.id.menu_send: {
- final String scheme = getActivity().getIntent().getStringExtra(
- UiIntentActions.SELECTION_SEND_SCHEME);
- final String title= getActivity().getIntent().getStringExtra(
- UiIntentActions.SELECTION_SEND_TITLE);
- final List<String> items = GroupUtil.getSendToDataForIds(
- getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
- final String list = TextUtils.join(",", items);
- GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
- return true;
- }
+ if (item.getItemId() == R.id.menu_send) {
+ final String scheme = getActivity().getIntent().getStringExtra(
+ UiIntentActions.SELECTION_SEND_SCHEME);
+ final String title = getActivity().getIntent().getStringExtra(
+ UiIntentActions.SELECTION_SEND_TITLE);
+ final List<String> items = GroupUtil.getSendToDataForIds(
+ getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
+ final String list = TextUtils.join(",", items);
+ GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
+ return true;
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
index 7d23182..2b7021e 100644
--- a/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
@@ -77,18 +77,16 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch(item.getItemId()) {
- case R.id.menu_send: {
- final String scheme = getActivity().getIntent().getStringExtra(
- UiIntentActions.SELECTION_SEND_SCHEME);
- final String title= getActivity().getIntent().getStringExtra(
- UiIntentActions.SELECTION_SEND_TITLE);
- final List<String> items = GroupUtil.getSendToDataForIds(
- getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
- final String list = TextUtils.join(",", items);
- GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
- return true;
- }
+ if (item.getItemId() == R.id.menu_send) {
+ final String scheme = getActivity().getIntent().getStringExtra(
+ UiIntentActions.SELECTION_SEND_SCHEME);
+ final String title = getActivity().getIntent().getStringExtra(
+ UiIntentActions.SELECTION_SEND_TITLE);
+ final List<String> items = GroupUtil.getSendToDataForIds(
+ getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
+ final String list = TextUtils.join(",", items);
+ GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
+ return true;
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 3c04f68..767b6c7 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -2757,137 +2757,128 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.menu_star:
- // Make sure there is a contact
- if (mContactData != null) {
- // Read the current starred value from the UI instead of using the last
- // loaded state. This allows rapid tapping without writing the same
- // value several times
- final boolean isStarred = item.isChecked();
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- isStarred ? ActionType.UNSTAR : ActionType.STAR,
+ final int id = item.getItemId();
+ if (id == R.id.menu_star) {// Make sure there is a contact
+ if (mContactData != null) {
+ // Read the current starred value from the UI instead of using the last
+ // loaded state. This allows rapid tapping without writing the same
+ // value several times
+ final boolean isStarred = item.isChecked();
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ isStarred ? ActionType.UNSTAR : ActionType.STAR,
/* thirdPartyAction */ null);
- toggleStar(item, isStarred);
- }
- return true;
- case R.id.menu_edit:
- if (DirectoryContactUtil.isDirectoryContact(mContactData)) {
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.ADD, /* thirdPartyAction */ null);
-
- // This action is used to launch the contact selector, with the option of
- // creating a new contact. Creating a new contact is an INSERT, while selecting
- // an exisiting one is an edit. The fields in the edit screen will be
- // prepopulated with data.
-
- final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
- intent.setType(Contacts.CONTENT_ITEM_TYPE);
-
- ArrayList<ContentValues> values = mContactData.getContentValues();
-
- // Only pre-fill the name field if the provided display name is an nickname
- // or better (e.g. structured name, nickname)
- if (mContactData.getDisplayNameSource() >= DisplayNameSources.NICKNAME) {
- intent.putExtra(Intents.Insert.NAME, mContactData.getDisplayName());
- } else if (mContactData.getDisplayNameSource()
- == DisplayNameSources.ORGANIZATION) {
- // This is probably an organization. Instead of copying the organization
- // name into a name entry, copy it into the organization entry. This
- // way we will still consider the contact an organization.
- final ContentValues organization = new ContentValues();
- organization.put(Organization.COMPANY, mContactData.getDisplayName());
- organization.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
- values.add(organization);
- }
-
- // Last time used and times used are aggregated values from the usage stat
- // table. They need to be removed from data values so the SQL table can insert
- // properly
- for (ContentValues value : values) {
- value.remove(Data.LAST_TIME_USED);
- value.remove(Data.TIMES_USED);
- }
- intent.putExtra(Intents.Insert.DATA, values);
-
- // If the contact can only export to the same account, add it to the intent.
- // Otherwise the ContactEditorFragment will show a dialog for selecting
- // an account.
- if (mContactData.getDirectoryExportSupport() ==
- Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY) {
- intent.putExtra(Intents.Insert.EXTRA_ACCOUNT,
- new Account(mContactData.getDirectoryAccountName(),
- mContactData.getDirectoryAccountType()));
- intent.putExtra(Intents.Insert.EXTRA_DATA_SET,
- mContactData.getRawContacts().get(0).getDataSet());
- }
-
- // Add this flag to disable the delete menu option on directory contact joins
- // with local contacts. The delete option is ambiguous when joining contacts.
- intent.putExtra(
- ContactEditorFragment.INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION,
- true);
-
- intent.setPackage(getPackageName());
- startActivityForResult(intent, REQUEST_CODE_CONTACT_SELECTION_ACTIVITY);
- } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.ADD, /* thirdPartyAction */ null);
- InvisibleContactUtil.addToDefaultGroup(mContactData, this);
- } else if (isContactEditable()) {
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.EDIT, /* thirdPartyAction */ null);
- editContact();
- }
- return true;
- case R.id.menu_join:
- return doJoinContactAction();
- case R.id.menu_linked_contacts:
- return showRawContactPickerDialog();
- case R.id.menu_delete:
+ toggleStar(item, isStarred);
+ }
+ } else if (id == R.id.menu_edit) {
+ if (DirectoryContactUtil.isDirectoryContact(mContactData)) {
Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.REMOVE, /* thirdPartyAction */ null);
- if (isContactEditable()) {
- deleteContact();
+ ActionType.ADD, /* thirdPartyAction */ null);
+
+ // This action is used to launch the contact selector, with the option of
+ // creating a new contact. Creating a new contact is an INSERT, while selecting
+ // an exisiting one is an edit. The fields in the edit screen will be
+ // prepopulated with data.
+
+ final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+ intent.setType(Contacts.CONTENT_ITEM_TYPE);
+
+ ArrayList<ContentValues> values = mContactData.getContentValues();
+
+ // Only pre-fill the name field if the provided display name is an nickname
+ // or better (e.g. structured name, nickname)
+ if (mContactData.getDisplayNameSource() >= DisplayNameSources.NICKNAME) {
+ intent.putExtra(Intents.Insert.NAME, mContactData.getDisplayName());
+ } else if (mContactData.getDisplayNameSource()
+ == DisplayNameSources.ORGANIZATION) {
+ // This is probably an organization. Instead of copying the organization
+ // name into a name entry, copy it into the organization entry. This
+ // way we will still consider the contact an organization.
+ final ContentValues organization = new ContentValues();
+ organization.put(Organization.COMPANY, mContactData.getDisplayName());
+ organization.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+ values.add(organization);
}
- return true;
- case R.id.menu_share:
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.SHARE, /* thirdPartyAction */ null);
- if (isContactShareable()) {
- shareContact();
+
+ // Last time used and times used are aggregated values from the usage stat
+ // table. They need to be removed from data values so the SQL table can insert
+ // properly
+ for (ContentValues value : values) {
+ value.remove(Data.LAST_TIME_USED);
+ value.remove(Data.TIMES_USED);
}
- return true;
- case R.id.menu_create_contact_shortcut:
- Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.SHORTCUT, /* thirdPartyAction */ null);
- if (isShortcutCreatable()) {
- createLauncherShortcutWithContact();
+ intent.putExtra(Intents.Insert.DATA, values);
+
+ // If the contact can only export to the same account, add it to the intent.
+ // Otherwise the ContactEditorFragment will show a dialog for selecting
+ // an account.
+ if (mContactData.getDirectoryExportSupport() ==
+ Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY) {
+ intent.putExtra(Intents.Insert.EXTRA_ACCOUNT,
+ new Account(mContactData.getDirectoryAccountName(),
+ mContactData.getDirectoryAccountType()));
+ intent.putExtra(Intents.Insert.EXTRA_DATA_SET,
+ mContactData.getRawContacts().get(0).getDataSet());
}
- return true;
- case R.id.menu_set_ringtone:
- doPickRingtone();
- return true;
- case R.id.menu_send_to_voicemail:
- // Update state and save
- mSendToVoicemailState = !mSendToVoicemailState;
- item.setTitle(mSendToVoicemailState
- ? R.string.menu_unredirect_calls_to_vm
- : R.string.menu_redirect_calls_to_vm);
- final Intent intent = ContactSaveService.createSetSendToVoicemail(
- this, mLookupUri, mSendToVoicemailState);
- this.startService(intent);
- return true;
- case R.id.menu_help:
+
+ // Add this flag to disable the delete menu option on directory contact joins
+ // with local contacts. The delete option is ambiguous when joining contacts.
+ intent.putExtra(
+ ContactEditorFragment.INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION,
+ true);
+
+ intent.setPackage(getPackageName());
+ startActivityForResult(intent, REQUEST_CODE_CONTACT_SELECTION_ACTIVITY);
+ } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.HELP, /* thirdPartyAction */ null);
- HelpUtils.launchHelpAndFeedbackForContactScreen(this);
- return true;
- default:
+ ActionType.ADD, /* thirdPartyAction */ null);
+ InvisibleContactUtil.addToDefaultGroup(mContactData, this);
+ } else if (isContactEditable()) {
Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
- ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
- return super.onOptionsItemSelected(item);
+ ActionType.EDIT, /* thirdPartyAction */ null);
+ editContact();
+ }
+ } else if (id == R.id.menu_join) {
+ return doJoinContactAction();
+ } else if (id == R.id.menu_linked_contacts) {
+ return showRawContactPickerDialog();
+ } else if (id == R.id.menu_delete) {
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ ActionType.REMOVE, /* thirdPartyAction */ null);
+ if (isContactEditable()) {
+ deleteContact();
+ }
+ } else if (id == R.id.menu_share) {
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ ActionType.SHARE, /* thirdPartyAction */ null);
+ if (isContactShareable()) {
+ shareContact();
+ }
+ } else if (id == R.id.menu_create_contact_shortcut) {
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ ActionType.SHORTCUT, /* thirdPartyAction */ null);
+ if (isShortcutCreatable()) {
+ createLauncherShortcutWithContact();
+ }
+ } else if (id == R.id.menu_set_ringtone) {
+ doPickRingtone();
+ } else if (id == R.id.menu_send_to_voicemail) {// Update state and save
+ mSendToVoicemailState = !mSendToVoicemailState;
+ item.setTitle(mSendToVoicemailState
+ ? R.string.menu_unredirect_calls_to_vm
+ : R.string.menu_redirect_calls_to_vm);
+ final Intent intent = ContactSaveService.createSetSendToVoicemail(
+ this, mLookupUri, mSendToVoicemailState);
+ this.startService(intent);
+ } else if (id == R.id.menu_help) {
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ ActionType.HELP, /* thirdPartyAction */ null);
+ HelpUtils.launchHelpAndFeedbackForContactScreen(this);
+ } else {
+ Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+ ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+ return super.onOptionsItemSelected(item);
}
+ return true;
}
private boolean showRawContactPickerDialog() {