Check whether data has been loaded.

Also don't show options on non-phones if data has not been loaded

Bug:3055135
Change-Id: Ife873642bcbfe6c4cd3eddb28e9c8010cb8d302d
diff --git a/src/com/android/contacts/views/detail/ContactDetailFragment.java b/src/com/android/contacts/views/detail/ContactDetailFragment.java
index ab22995..4a3f46f 100644
--- a/src/com/android/contacts/views/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/views/detail/ContactDetailFragment.java
@@ -921,11 +921,7 @@
 
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
-        if (mContactData == null) {
-            return;
-        }
-
-        boolean isDirectoryEntry = mContactData.isDirectoryEntry();
+        boolean isDirectoryEntry = mContactData != null && mContactData.isDirectoryEntry();
 
         // Options only shows telephony-related settings (ringtone, send to voicemail).
         // ==> Hide if we don't have a telephone
@@ -955,6 +951,7 @@
                 return true;
             }
             case R.id.menu_options: {
+                if (mContactData == null) return false;
                 final Intent intent = new Intent(mContext, ContactOptionsActivity.class);
                 intent.setData(mContactData.getLookupUri());
                 mContext.startActivity(intent);
@@ -962,6 +959,7 @@
             }
             case R.id.menu_share: {
                 if (mAllRestricted) return false;
+                if (mContactData == null) return false;
 
                 final String lookupKey = mContactData.getLookupKey();
                 final Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);