package com.dteviot.epubviewer; import android.content.Context; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; public class Bookmark{ public static final String PREFS_NAME = "EpubViewerPrefsFile"; public static final String PREFS_EPUB_NAME = "FileName"; public static final String PREFS_RESOURCE_URI = "ResourceUri"; public static final String PREFS_SCROLLY = "ScrollY"; public String mFileName; public Uri mResourceUri; public float mScrollY; /* * ctor */ public Bookmark(String fileName, Uri resourceUri, float scrollY) { mFileName = fileName; mResourceUri = resourceUri; mScrollY = scrollY; } /* * Called when user changed screen orientation */ public Bookmark(Bundle savedInstanceState) { mFileName = savedInstanceState.getString(PREFS_EPUB_NAME); deserializeUri(savedInstanceState.getString(PREFS_RESOURCE_URI)); mScrollY = savedInstanceState.getFloat(PREFS_SCROLLY); } /* * Retrieve from the Shared Preferences */ public Bookmark(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); mFileName = settings.getString(PREFS_EPUB_NAME, ""); deserializeUri(settings.getString(PREFS_RESOURCE_URI, "")); mScrollY = settings.getFloat(PREFS_SCROLLY, 0.0f); } private void deserializeUri(String uri) { if ((uri != null) && !uri.isEmpty()) { mResourceUri = Uri.parse(uri); } } /* * return true if bookmark is "empty", i.e. doesn't hold a useful value */ public boolean isEmpty() { return ((mFileName == null) || (mFileName.length() <= 0) || (mResourceUri == null)); } /* * Write the bookmark into a bundle (normally used when screen orientation * changing) */ public void save(Bundle outState) { if (!isEmpty()) { outState.putString(PREFS_EPUB_NAME, mFileName); outState.putString(PREFS_RESOURCE_URI, mResourceUri.toString()); outState.putFloat(PREFS_SCROLLY, mScrollY); } } /* * Write to persistent storage */ public void saveToSharedPreferences(Context context) { if (!isEmpty()) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putString(PREFS_EPUB_NAME, mFileName); editor.putString(PREFS_RESOURCE_URI, mResourceUri.toString()); editor.putFloat(PREFS_SCROLLY, mScrollY); editor.commit(); } } /* * The epub that has been bookmarked */ public String getFileName() { return mFileName; } /* * Chapter of book */ public Uri getResourceUri() { return mResourceUri; } /* * Position of chapter */ public float getScrollY() { return mScrollY; } }