diff options
| author | John Reck <jreck@google.com> | 2011-08-22 16:31:14 -0700 |
|---|---|---|
| committer | John Reck <jreck@google.com> | 2011-08-22 16:41:13 -0700 |
| commit | 4f61ee45c1a2794d4254998c735a320fa6718edd (patch) | |
| tree | 403bfc8e709a824db0ef5c5b1555ba7052648bd2 /src/com/android/browser/BrowserBookmarksPage.java | |
| parent | 1a51fecec2292d1c3389b9635968b1acda5785dd (diff) | |
| download | packages_apps_Browser-4f61ee45c1a2794d4254998c735a320fa6718edd.tar.gz packages_apps_Browser-4f61ee45c1a2794d4254998c735a320fa6718edd.tar.bz2 packages_apps_Browser-4f61ee45c1a2794d4254998c735a320fa6718edd.zip | |
Save bookmark group state
Bug: 5135795
Change-Id: Id5069cc3f2afb16bcadac5b83d523200898a7d73
Diffstat (limited to 'src/com/android/browser/BrowserBookmarksPage.java')
| -rw-r--r-- | src/com/android/browser/BrowserBookmarksPage.java | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java index 2c38334a8..bf96597f0 100644 --- a/src/com/android/browser/BrowserBookmarksPage.java +++ b/src/com/android/browser/BrowserBookmarksPage.java @@ -26,6 +26,7 @@ import android.content.Context; import android.content.CursorLoader; import android.content.Intent; import android.content.Loader; +import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; @@ -57,6 +58,9 @@ import com.android.browser.provider.BrowserProvider2; import com.android.browser.view.BookmarkExpandableView; import com.android.browser.view.BookmarkExpandableView.BookmarkContextMenuInfo; +import org.json.JSONException; +import org.json.JSONObject; + import java.util.HashMap; interface BookmarksPageCallbacks { @@ -84,6 +88,7 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte static final int LOADER_BOOKMARKS = 100; static final String EXTRA_DISABLE_WINDOW = "disable_new_window"; + static final String PREF_GROUP_STATE = "bbp_group_state"; static final String ACCOUNT_TYPE = "account_type"; static final String ACCOUNT_NAME = "account_name"; @@ -100,6 +105,7 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte View mHeader; HashMap<Integer, BrowserBookmarksAdapter> mBookmarkAdapters = new HashMap<Integer, BrowserBookmarksAdapter>(); BookmarkDragHandler mDragHandler; + JSONObject mState; @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { @@ -130,7 +136,12 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte BrowserBookmarksAdapter adapter = new BrowserBookmarksAdapter( getActivity(), VIEW_THUMBNAILS); mBookmarkAdapters.put(id, adapter); - mGrid.addAccount(accountName, adapter); + boolean expand = true; + try { + expand = mState.getBoolean(accountName != null ? accountName + : BookmarkExpandableView.LOCAL_ACCOUNT_NAME); + } catch (JSONException e) {} // no state for accountName + mGrid.addAccount(accountName, adapter, expand); lm.restartLoader(id, args, this); id++; } @@ -300,6 +311,14 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + SharedPreferences prefs = BrowserSettings.getInstance().getPreferences(); + try { + mState = new JSONObject(prefs.getString(PREF_GROUP_STATE, "{}")); + } catch (JSONException e) { + // Parse failed, clear preference and start with empty state + prefs.edit().remove(PREF_GROUP_STATE).apply(); + mState = new JSONObject(); + } Bundle args = getArguments(); mDisableNewWindow = args == null ? false : args.getBoolean(EXTRA_DISABLE_WINDOW, false); setHasOptionsMenu(true); @@ -309,6 +328,21 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte } } + @Override + public void onPause() { + super.onPause(); + try { + mState = mGrid.saveGroupState(); + // Save state + SharedPreferences prefs = BrowserSettings.getInstance().getPreferences(); + prefs.edit() + .putString(PREF_GROUP_STATE, mState.toString()) + .apply(); + } catch (JSONException e) { + // Not critical, ignore + } + } + private static class CombinedBookmarksCallbackWrapper implements BookmarksPageCallbacks { |
