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