From e3ff4d8e92a19473c622c1d46b30c63bf2d001d0 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 23 Jul 2014 20:03:20 -0700 Subject: [PATCH] Fix bug #16515550 Settings app crashes for intent com.android.settings.QUICK_LAUNCH_SETTINGS - make it work again (what a code...) Change-Id: Ic71d8e40ff8a5e0c663fd40655e4f4cc31bc8caf --- AndroidManifest.xml | 7 ++++--- src/com/android/settings/Settings.java | 1 + src/com/android/settings/SettingsActivity.java | 4 +++- .../settings/quicklaunch/QuickLaunchSettings.java | 14 +++++++++----- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 17f1e542a79..0783c654ee8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1148,8 +1148,7 @@ - - @@ -1158,8 +1157,10 @@ + + android:value="true" /> diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 01149f32b21..f8f1ffbfd7c 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -93,6 +93,7 @@ public class Settings extends SettingsActivity { 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 90e8fd4f536..76a730078bd 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -84,6 +84,7 @@ import com.android.settings.fuelgauge.BatterySaverSettings; 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 @@ public class SettingsActivity extends Activity 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 a7ddc07a31f..13670180fa4 100644 --- a/src/com/android/settings/quicklaunch/QuickLaunchSettings.java +++ b/src/com/android/settings/quicklaunch/QuickLaunchSettings.java @@ -103,7 +103,6 @@ public class QuickLaunchSettings extends SettingsPreferenceFragment implements initShortcutPreferences(); mBookmarksCursor = getActivity().getContentResolver().query(Bookmarks.CONTENT_URI, sProjection, null, null, null); - getListView().setOnItemLongClickListener(this); } @Override @@ -124,16 +123,21 @@ public class QuickLaunchSettings extends SettingsPreferenceFragment implements @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