Fix bug #17976062 Stability: ISE in Settings: Fragment ApnSettings{4da9ae0} not attached to Activity

- prevent IllegalStateException

Change-Id: I63fa1bb6240c7ff82c04be938b72940049409dee
diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java
index d214df2..0c0e53c 100644
--- a/src/com/android/settings/ApnSettings.java
+++ b/src/com/android/settings/ApnSettings.java
@@ -16,6 +16,7 @@
 
 package com.android.settings;
 
+import android.app.Activity;
 import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.content.BroadcastReceiver;
@@ -171,8 +172,6 @@
 
         if (!mRestoreDefaultApnMode) {
             fillList();
-        } else {
-            showDialog(DIALOG_RESTORE_DEFAULTAPN);
         }
     }
 
@@ -348,12 +347,17 @@
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case EVENT_RESTORE_DEFAULTAPN_COMPLETE:
+                    Activity activity = getActivity();
+                    if (activity == null) {
+                        mRestoreDefaultApnMode = false;
+                        return;
+                    }
                     fillList();
                     getPreferenceScreen().setEnabled(true);
                     mRestoreDefaultApnMode = false;
                     removeDialog(DIALOG_RESTORE_DEFAULTAPN);
                     Toast.makeText(
-                        getActivity(),
+                        activity,
                         getResources().getString(
                                 R.string.restore_default_apn_completed),
                         Toast.LENGTH_LONG).show();