Add android:configChanges for SettingsHomepageActivity
When resuming Settings app of large screen devices,
SettingsHomepageActivity will be re-created for
Activity resized. It produces unnecessary Activity
destroy and re-create.
This change prevents SettingsHomepageActivity from
configuration changes for screenSize|screenLayout.
Bug: 198361315
Test: manual
1. Launch Settings app by a Settings shortcut widget.
2. Move Settings app to background.
3. Click Settings shortcut widget again.
Observe if SettingsHomepageActivity re-creates.
Change-Id: I4d71330f6a1760768ba4443e192f66b0a2cbb6bf
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2c3eb05..7ea777d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -136,7 +136,7 @@
android:taskAffinity="com.android.settings.root"
android:launchMode="singleTask"
android:exported="true"
- android:configChanges="keyboard|keyboardHidden">
+ android:configChanges="keyboard|keyboardHidden|screenSize|screenLayout">
<intent-filter android:priority="1">
<action android:name="android.settings.SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 4a0a912..f073a61 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -208,6 +208,9 @@
return;
}
+ // To prevent launchDeepLinkIntentToRight again for configuration change.
+ intent.setAction(null);
+
targetIntent.setFlags(targetIntent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
targetIntent.putExtra(EXTRA_IS_FROM_SETTINGS_HOMEPAGE, true);