Removing menu items when no contact loaded
Bug: 3166841
Bug: 3166786
Change-Id: Iab86921df650cd1cf04e365cc0aa9dd44417c196
diff --git a/src/com/android/contacts/views/detail/ContactDetailFragment.java b/src/com/android/contacts/views/detail/ContactDetailFragment.java
index dea03ec..eb3e4a0 100644
--- a/src/com/android/contacts/views/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/views/detail/ContactDetailFragment.java
@@ -278,6 +278,10 @@
return;
}
+ if (isAdded()) {
+ getActivity().invalidateOptionsMenu();
+ }
+
if (mContactData == null) {
mView.setVisibility(View.INVISIBLE);
return;
@@ -971,22 +975,23 @@
@Override
public void onPrepareOptionsMenu(Menu menu) {
- boolean isDirectoryEntry = mContactData != null && mContactData.isDirectoryEntry();
+ boolean isEmpty = mContactData == null;
+ boolean isDirectoryEntry = !isEmpty && mContactData.isDirectoryEntry();
// Options only shows telephony-related settings (ringtone, send to voicemail).
// ==> Hide if we don't have a telephone
final MenuItem optionsMenu = menu.findItem(R.id.menu_options);
final boolean deviceHasPhone = PhoneCapabilityTester.isPhone(mContext);
- optionsMenu.setVisible(!isDirectoryEntry && deviceHasPhone);
+ optionsMenu.setVisible(!isEmpty && !isDirectoryEntry && deviceHasPhone);
final MenuItem editMenu = menu.findItem(R.id.menu_edit);
- editMenu.setVisible(!isDirectoryEntry);
+ editMenu.setVisible(!isEmpty && !isDirectoryEntry);
final MenuItem deleteMenu = menu.findItem(R.id.menu_delete);
- deleteMenu.setVisible(!isDirectoryEntry);
+ deleteMenu.setVisible(!isEmpty && !isDirectoryEntry);
final MenuItem shareMenu = menu.findItem(R.id.menu_share);
- shareMenu.setVisible(!isDirectoryEntry && !mAllRestricted);
+ shareMenu.setVisible(!isEmpty && !isDirectoryEntry && !mAllRestricted);
}
@Override