summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/browser/BookmarksLoader.java1
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java166
2 files changed, 33 insertions, 134 deletions
diff --git a/src/com/android/browser/BookmarksLoader.java b/src/com/android/browser/BookmarksLoader.java
index e2f8941..7722392 100644
--- a/src/com/android/browser/BookmarksLoader.java
+++ b/src/com/android/browser/BookmarksLoader.java
@@ -21,7 +21,6 @@ import android.content.CursorLoader;
import android.net.Uri;
import android.provider.BrowserContract.Bookmarks;
import android.provider.BrowserContract.ChromeSyncColumns;
-import android.text.TextUtils;
public class BookmarksLoader extends CursorLoader {
public static final String ARG_ACCOUNT_TYPE = "acct_type";
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index fa7a5e2..f20583a 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -25,11 +25,11 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.ContentUris;
import android.content.Context;
-import android.content.CursorLoader;
import android.content.Intent;
import android.content.Loader;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.Cursor;
@@ -40,9 +40,7 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.BrowserContract;
-import android.provider.BrowserContract.Accounts;
import android.provider.BrowserContract.ChromeSyncColumns;
-import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
@@ -52,10 +50,8 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebIconDatabase.IconListener;
-import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.PopupMenu.OnMenuItemClickListener;
@@ -74,12 +70,11 @@ interface BookmarksPageCallbacks {
*/
public class BrowserBookmarksPage extends Fragment implements View.OnCreateContextMenuListener,
LoaderManager.LoaderCallbacks<Cursor>, OnItemClickListener, IconListener,
- OnItemSelectedListener, BreadCrumbView.Controller, OnMenuItemClickListener {
+ BreadCrumbView.Controller, OnMenuItemClickListener, OnSharedPreferenceChangeListener {
static final String LOGTAG = "browser";
static final int LOADER_BOOKMARKS = 1;
- static final int LOADER_ACCOUNTS_THEN_BOOKMARKS = 2;
static final String EXTRA_DISABLE_WINDOW = "disable_new_window";
@@ -88,7 +83,6 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
public static final String PREF_ACCOUNT_TYPE = "acct_type";
public static final String PREF_ACCOUNT_NAME = "acct_name";
- static final String DEFAULT_ACCOUNT = "local";
static final int VIEW_THUMBNAILS = 1;
static final int VIEW_LIST = 2;
static final String PREF_SELECTED_VIEW = "bookmarks_view";
@@ -124,13 +118,12 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
switch (id) {
case LOADER_BOOKMARKS: {
- String accountType = null;
- String accountName = null;
- if (args != null) {
- accountType = args.getString(BookmarksLoader.ARG_ACCOUNT_TYPE);
- accountName = args.getString(BookmarksLoader.ARG_ACCOUNT_NAME);
- }
- BookmarksLoader bl = new BookmarksLoader(getActivity(), accountType, accountName);
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(getActivity());
+ String accountType = prefs.getString(PREF_ACCOUNT_TYPE, null);
+ String accountName = prefs.getString(PREF_ACCOUNT_NAME, null);
+ BookmarksLoader bl = new BookmarksLoader(getActivity(),
+ accountType, accountName);
if (mCrumbs != null) {
Uri uri = (Uri) mCrumbs.getTopData();
if (uri != null) {
@@ -139,11 +132,6 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
}
return bl;
}
- case LOADER_ACCOUNTS_THEN_BOOKMARKS: {
- return new CursorLoader(getActivity(), Accounts.CONTENT_URI,
- new String[] { Accounts.ACCOUNT_TYPE, Accounts.ACCOUNT_NAME }, null, null,
- null);
- }
}
throw new UnsupportedOperationException("Unknown loader id " + id);
}
@@ -166,77 +154,12 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
mAdapter.changeCursor(cursor);
break;
}
-
- case LOADER_ACCOUNTS_THEN_BOOKMARKS: {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
- getActivity());
- String storedAccountType = prefs.getString(PREF_ACCOUNT_TYPE, null);
- String storedAccountName = prefs.getString(PREF_ACCOUNT_NAME, null);
- String accountType =
- TextUtils.isEmpty(storedAccountType) ? DEFAULT_ACCOUNT : storedAccountType;
- String accountName =
- TextUtils.isEmpty(storedAccountName) ? DEFAULT_ACCOUNT : storedAccountName;
-
- Bundle args = null;
- if (cursor == null || !cursor.moveToFirst()) {
- // No accounts, set the prefs to the default
- accountType = DEFAULT_ACCOUNT;
- accountName = DEFAULT_ACCOUNT;
- } else {
- int accountPosition = -1;
-
- if (!DEFAULT_ACCOUNT.equals(accountType) &&
- !DEFAULT_ACCOUNT.equals(accountName)) {
- // Check to see if the account in prefs still exists
- cursor.moveToFirst();
- do {
- if (accountType.equals(cursor.getString(0))
- && accountName.equals(cursor.getString(1))) {
- accountPosition = cursor.getPosition();
- break;
- }
- } while (cursor.moveToNext());
- }
-
- if (accountPosition == -1) {
- if (!(DEFAULT_ACCOUNT.equals(accountType)
- && DEFAULT_ACCOUNT.equals(accountName))) {
- // No account is set in prefs and there is at least one,
- // so pick the first one as the default
- cursor.moveToFirst();
- accountType = cursor.getString(0);
- accountName = cursor.getString(1);
- }
- }
-
- args = new Bundle();
- args.putString(BookmarksLoader.ARG_ACCOUNT_TYPE, accountType);
- args.putString(BookmarksLoader.ARG_ACCOUNT_NAME, accountName);
- }
-
- // The stored account name wasn't found, update the stored account with a valid one
- if (!accountType.equals(storedAccountType)
- || !accountName.equals(storedAccountName)) {
- prefs.edit()
- .putString(PREF_ACCOUNT_TYPE, accountType)
- .putString(PREF_ACCOUNT_NAME, accountName)
- .apply();
- }
- getLoaderManager().initLoader(LOADER_BOOKMARKS, args, this);
-
- break;
- }
}
}
+ @Override
public void onLoaderReset(Loader<Cursor> loader) {
onLoadFinished(loader, null);
- switch (loader.getId()) {
- case LOADER_BOOKMARKS: {
- onLoadFinished(loader, null);
- break;
- }
- }
}
long getFolderId() {
@@ -443,28 +366,15 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
if (mCallbacks != null) {
mCallbacks.onFolderChanged(1, BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);
}
-
// Start the loaders
LoaderManager lm = getLoaderManager();
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(getActivity());
+ prefs.registerOnSharedPreferenceChangeListener(this);
mCurrentView =
prefs.getInt(PREF_SELECTED_VIEW, BrowserBookmarksPage.VIEW_THUMBNAILS);
mAdapter = new BrowserBookmarksAdapter(getActivity(), mCurrentView);
- String accountType = prefs.getString(PREF_ACCOUNT_TYPE, DEFAULT_ACCOUNT);
- String accountName = prefs.getString(PREF_ACCOUNT_NAME, DEFAULT_ACCOUNT);
- if (!TextUtils.isEmpty(accountType) && !TextUtils.isEmpty(accountName)) {
- // There is an account set, load up that one
- Bundle args = null;
- if (!DEFAULT_ACCOUNT.equals(accountType) && !DEFAULT_ACCOUNT.equals(accountName)) {
- args = new Bundle();
- args.putString(BookmarksLoader.ARG_ACCOUNT_TYPE, accountType);
- args.putString(BookmarksLoader.ARG_ACCOUNT_NAME, accountName);
- }
- lm.restartLoader(LOADER_BOOKMARKS, args, this);
- } else {
- // No account set, load the account list first
- lm.restartLoader(LOADER_ACCOUNTS_THEN_BOOKMARKS, null, this);
- }
+ lm.restartLoader(LOADER_BOOKMARKS, null, this);
// Add our own listener in case there are favicons that have yet to be loaded.
CombinedBookmarkHistoryView.getIconListenerSet().addListener(this);
@@ -475,6 +385,9 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
@Override
public void onDestroyView() {
super.onDestroyView();
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(getActivity());
+ prefs.unregisterOnSharedPreferenceChangeListener(this);
if (mHeaderContainer != null) {
mHeaderContainer.removeView(mHeader);
}
@@ -518,36 +431,6 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
}
}
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- Adapter adapter = parent.getAdapter();
- String accountType = "com.google";
- String accountName = adapter.getItem(position).toString();
-
- Bundle args = null;
- if (ACCOUNT_NAME_UNSYNCED.equals(accountName)) {
- accountType = DEFAULT_ACCOUNT;
- accountName = DEFAULT_ACCOUNT;
- } else {
- args = new Bundle();
- args.putString(BookmarksLoader.ARG_ACCOUNT_TYPE, accountType);
- args.putString(BookmarksLoader.ARG_ACCOUNT_NAME, accountName);
- }
-
- // Remember the selection for later
- PreferenceManager.getDefaultSharedPreferences(getActivity()).edit()
- .putString(PREF_ACCOUNT_TYPE, accountType)
- .putString(PREF_ACCOUNT_NAME, accountName)
- .apply();
-
- getLoaderManager().restartLoader(LOADER_BOOKMARKS, args, this);
- }
-
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- // Do nothing
- }
-
/* package */ static Intent createShortcutIntent(Context context, Cursor cursor) {
String url = cursor.getString(BookmarksLoader.COLUMN_INDEX_URL);
String title = cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE);
@@ -842,4 +725,21 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
mCrumbs.setMaxVisible(mCrumbMaxVisible);
}
}
+
+ @Override
+ public void onSharedPreferenceChanged(
+ SharedPreferences sharedPreferences, String key) {
+ if (PREF_ACCOUNT_NAME.equals(key) || PREF_ACCOUNT_TYPE.equals(key)) {
+ mCrumbs.setController(null);
+ mCrumbs.clear();
+ LoaderManager lm = getLoaderManager();
+ lm.restartLoader(LOADER_BOOKMARKS, null, this);
+ mCrumbs.setController(this);
+ String name = getString(R.string.bookmarks);
+ mCrumbs.pushView(name, false, BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);
+ if (mCallbacks != null) {
+ mCallbacks.onFolderChanged(1, BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);
+ }
+ }
+ }
}