Fix IllegalStateException in onOptionsItemSelected

Make sure we're still visible before showing dialogs.

Bug:24138858
Change-Id: I3a2cc7dba6144e055ae074177ba5c89258f69b1b
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index ff0726d..ad795f9 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -48,6 +48,8 @@
     private CallLogFragment mAllCallsFragment;
     private CallLogFragment mMissedCallsFragment;
 
+    private boolean mIsVisible;
+
     private String[] mTabTitles;
 
     private static final int TAB_INDEX_ALL = 0;
@@ -161,6 +163,31 @@
     }
 
     @Override
+    protected void onStart() {
+        super.onStart();
+        mIsVisible = false;
+    }
+
+    @Override
+    protected void onStop() {
+        mIsVisible = false;
+        super.onStop();
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        mIsVisible = false;
+        super.onSaveInstanceState(outState);
+    }
+
+    /**
+     * Returns true when the Activity is currently visible (between onStart and onStop).
+     */
+    /* package */ boolean isVisible() {
+        return mIsVisible;
+    }
+
+    @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         final MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.call_log_options, menu);
@@ -180,6 +207,10 @@
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
+        if (!isVisible()) {
+            return true;
+        }
+
         switch (item.getItemId()) {
             case android.R.id.home:
                 final Intent intent = new Intent(this, DialtactsActivity.class);