Fix bug #16515550 Settings app crashes for intent com.android.settings.QUICK_LAUNCH_SETTINGS
- make it work again (what a code...)
Change-Id: Ic71d8e40ff8a5e0c663fd40655e4f4cc31bc8caf
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 17f1e54..0783c65 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1148,8 +1148,7 @@
</intent-filter>
</activity>
- <!-- TODO: Test this once Settings stops crashing for this intent -->
- <activity android:name=".quicklaunch.QuickLaunchSettings"
+ <activity android:name="Settings$QuickLaunchSettingsActivity"
android:label="@string/quick_launch_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -1158,8 +1157,10 @@
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.quicklaunch.QuickLaunchSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
- android:value="true" />
+ android:value="true" />
</activity>
<activity android:name=".quicklaunch.BookmarkPicker" android:label="@string/quick_launch_title">
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 01149f3..f8f1ffb 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -93,6 +93,7 @@
public static class NotificationSettingsActivity extends SettingsActivity { /* empty */ }
public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ }
public static class OtherSoundSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class QuickLaunchSettingsActivity extends SettingsActivity { /* empty */ }
public static class TopLevelSettings extends SettingsActivity { /* empty */ }
}
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 90e8fd4..76a7300 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -84,6 +84,7 @@
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.notification.AppNotificationSettings;
import com.android.settings.notification.OtherSoundSettings;
+import com.android.settings.quicklaunch.QuickLaunchSettings;
import com.android.settings.search.DynamicIndexableContentMonitor;
import com.android.settings.search.Index;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
@@ -283,7 +284,8 @@
InstalledAppDetails.class.getName(),
BatterySaverSettings.class.getName(),
AppNotificationSettings.class.getName(),
- OtherSoundSettings.class.getName()
+ OtherSoundSettings.class.getName(),
+ QuickLaunchSettings.class.getName()
};
diff --git a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
index a7ddc07..1367018 100644
--- a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
+++ b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java
@@ -103,7 +103,6 @@
initShortcutPreferences();
mBookmarksCursor = getActivity().getContentResolver().query(Bookmarks.CONTENT_URI,
sProjection, null, null, null);
- getListView().setOnItemLongClickListener(this);
}
@Override
@@ -124,16 +123,21 @@
@Override
public void onStop() {
+ super.onStop();
mBookmarksCursor.close();
}
@Override
public void onActivityCreated(Bundle state) {
super.onActivityCreated(state);
-
- // Restore the clear dialog's info
- mClearDialogBookmarkTitle = state.getString(CLEAR_DIALOG_BOOKMARK_TITLE);
- mClearDialogShortcut = (char) state.getInt(CLEAR_DIALOG_SHORTCUT, 0);
+
+ getListView().setOnItemLongClickListener(this);
+
+ if (state != null) {
+ // Restore the clear dialog's info
+ mClearDialogBookmarkTitle = state.getString(CLEAR_DIALOG_BOOKMARK_TITLE);
+ mClearDialogShortcut = (char) state.getInt(CLEAR_DIALOG_SHORTCUT, 0);
+ }
}
@Override