Fix InCallUI crash when post char dialog is shown

When user makes MO video call with post char, such as ";", post char
dialog is shown when call is established.

At this time if user rotate InCallUI screen, InCallUI will crash
because PostCharDialogFragment has no zero argument constructor.

Add zero argument constructor for PostCharDialogFragment, and save the
needed parameter to Bundle.

Change-Id: I3587ad2bc47d4397b78b32d1ec27b8c914e9fb2f
diff --git a/src/com/android/incallui/PostCharDialogFragment.java b/src/com/android/incallui/PostCharDialogFragment.java
index 09b626a..400e8d7 100644
--- a/src/com/android/incallui/PostCharDialogFragment.java
+++ b/src/com/android/incallui/PostCharDialogFragment.java
@@ -29,9 +29,15 @@
  */
 public class PostCharDialogFragment extends DialogFragment {
 
+    private static final String STATE_CALL_ID = "CALL_ID";
+    private static final String STATE_POST_CHARS = "POST_CHARS";
+
     private String mCallId;
     private String mPostDialStr;
 
+    public PostCharDialogFragment() {
+    }
+
     public PostCharDialogFragment(String callId, String postDialStr) {
         mCallId = callId;
         mPostDialStr = postDialStr;
@@ -41,6 +47,11 @@
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         super.onCreateDialog(savedInstanceState);
 
+        if (mPostDialStr == null && savedInstanceState != null) {
+            mCallId = savedInstanceState.getString(STATE_CALL_ID);
+            mPostDialStr = savedInstanceState.getString(STATE_POST_CHARS);
+        }
+
         final StringBuilder buf = new StringBuilder();
         buf.append(getResources().getText(R.string.wait_prompt_str));
         buf.append(mPostDialStr);
@@ -71,4 +82,12 @@
 
         TelecomAdapter.getInstance().postDialContinue(mCallId, false);
     }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        outState.putString(STATE_CALL_ID, mCallId);
+        outState.putString(STATE_POST_CHARS, mPostDialStr);
+    }
 }