Fix force close of voicemail activity caused by screen rotation
Since VoicemailSettingsActivity does not handle horizontal/vertical
screen rotation properly, RuntimeException occurs when selecting contact
after screen rotation in "Choose a contact" view. Add configChanges
attributes in AndroidManifest.xml to fix the issue.
Bug: 32424108
Change-Id: I422328389dfd96444806a222b8ebbfc758daa477
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b5fd399..f611706 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -585,6 +585,7 @@
<activity android:name="com.android.phone.settings.VoicemailSettingsActivity"
android:label="@string/voicemail"
+ android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@style/DialerSettingsLight">
<intent-filter >
<!-- DO NOT RENAME. There are existing apps which use this string. -->
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index 35d9a1c..6bb481f 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -537,7 +537,11 @@
if (DBG) log("onActivityResult: bad contact data, no results found.");
return;
}
- mSubMenuVoicemailSettings.onPickActivityResult(cursor.getString(0));
+ if (mSubMenuVoicemailSettings != null) {
+ mSubMenuVoicemailSettings.onPickActivityResult(cursor.getString(0));
+ } else {
+ Log.w(LOG_TAG, "VoicemailSettingsActivity destroyed while setting contacts.");
+ }
return;
} finally {
if (cursor != null) {