Remove sync setting

Change-Id: I7719c82a3a63d8ac8022e70e3a7f7b4a814e304f
diff --git a/res/xml/general_preferences.xml b/res/xml/general_preferences.xml
index 92b1f2a..7b26307 100644
--- a/res/xml/general_preferences.xml
+++ b/res/xml/general_preferences.xml
@@ -22,13 +22,6 @@
             android:hint="@string/http"
             android:inputType="textUri|textMultiLine" />
 
-    <PreferenceCategory android:title="@string/pref_general_sync_title">
-        <Preference android:key="sync_with_chrome"
-            android:title="@string/pref_personal_sync_with_chrome"
-            android:summary="@string/pref_personal_sync_with_chrome_summary"
-        />
-    </PreferenceCategory>
-
     <PreferenceCategory android:title="@string/pref_general_autofill_title">
         <CheckBoxPreference android:key="autofill_enabled"
             android:title="@string/pref_autofill_enabled"
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 448f881..caf8a83 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -82,9 +82,6 @@
 
     static final String EXTRA_DISABLE_WINDOW = "disable_new_window";
 
-    public static final String PREF_ACCOUNT_TYPE = "acct_type";
-    public static final String PREF_ACCOUNT_NAME = "acct_name";
-
     static final String ACCOUNT_TYPE = "account_type";
     static final String ACCOUNT_NAME = "account_name";
 
diff --git a/src/com/android/browser/preferences/GeneralPreferencesFragment.java b/src/com/android/browser/preferences/GeneralPreferencesFragment.java
index 0a12311..af0fc50 100644
--- a/src/com/android/browser/preferences/GeneralPreferencesFragment.java
+++ b/src/com/android/browser/preferences/GeneralPreferencesFragment.java
@@ -16,45 +16,21 @@
 
 package com.android.browser.preferences;
 
-import com.android.browser.BrowserBookmarksPage;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+
 import com.android.browser.BrowserHomepagePreference;
 import com.android.browser.BrowserPreferencesPage;
 import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
-import com.android.browser.widget.BookmarkThumbnailWidgetProvider;
-
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.accounts.AccountManagerCallback;
-import android.accounts.AccountManagerFuture;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceManager;
-import android.preference.PreferenceScreen;
-import android.provider.BrowserContract;
-import android.util.Log;
 
 public class GeneralPreferencesFragment extends PreferenceFragment
-        implements OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
+        implements Preference.OnPreferenceChangeListener {
     static final String TAG = "PersonalPreferencesFragment";
 
-    static final String PREF_CHROME_SYNC = "sync_with_chrome";
-
-    Preference mChromeSync;
-    boolean mEnabled;
-    SharedPreferences mSharedPrefs;
-    Account[] mAccounts;
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -68,8 +44,6 @@
                 .getString(PreferenceKeys.PREF_HOMEPAGE, null));
         ((BrowserHomepagePreference) e).setCurrentPage(
                 getActivity().getIntent().getStringExtra(BrowserPreferencesPage.CURRENT_PAGE));
-        mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
-        mSharedPrefs.registerOnSharedPreferenceChangeListener(mListener);
     }
 
     @Override
@@ -93,170 +67,12 @@
     public void onResume() {
         super.onResume();
 
-        // Setup the proper state for the sync with chrome item
-        mChromeSync = findPreference(PREF_CHROME_SYNC);
         refreshUi();
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-
-        mSharedPrefs.unregisterOnSharedPreferenceChangeListener(mListener);
-    }
-
-    OnSharedPreferenceChangeListener mListener
-            = new OnSharedPreferenceChangeListener() {
-        @Override
-        public void onSharedPreferenceChanged(
-                SharedPreferences sharedPreferences, String key) {
-            if (BrowserBookmarksPage.PREF_ACCOUNT_NAME.equals(key)
-                    || BrowserBookmarksPage.PREF_ACCOUNT_TYPE.equals(key)) {
-                refreshUi();
-            }
-        }
-
-    };
-
-    private AccountManagerCallback<Bundle> mCallback =
-            new AccountManagerCallback<Bundle>() {
-
-        @Override
-        public void run(AccountManagerFuture<Bundle> future) {
-            try {
-                Bundle bundle = future.getResult();
-                String name = bundle.getString(AccountManager.KEY_ACCOUNT_NAME);
-                String type = bundle.getString(AccountManager.KEY_ACCOUNT_TYPE);
-                Account account = new Account(name, type);
-                mAccounts = new Account[] { account };
-                ImportWizard wizard = ImportWizard.newInstance(mAccounts);
-                wizard.show(getFragmentManager(), null);
-            } catch (Exception ex) {
-                // Canceled or failed to login, doesn't matter to us
-            }
-        }
-    };
-
-    OnPreferenceClickListener mAddAccount = new OnPreferenceClickListener() {
-
-        @Override
-        public boolean onPreferenceClick(Preference preference) {
-            AccountManager am = AccountManager.get(getActivity());
-            am.addAccount("com.google", null, null, null, getActivity(),
-                    mCallback, null);
-            return true;
-        }
-    };
-
-    private class GetAccountsTask extends AsyncTask<Void, Void, String> {
-        private Context mContext;
-
-        GetAccountsTask(Context ctx) {
-            mContext = ctx;
-        }
-
-        @Override
-        protected String doInBackground(Void... unused) {
-            AccountManager am = (AccountManager) mContext.getSystemService(Context.ACCOUNT_SERVICE);
-            Account[] accounts = am.getAccountsByType("com.google");
-            if (accounts == null || accounts.length == 0) {
-                // No Google accounts setup, don't offer Chrome sync
-                if (mChromeSync != null) {
-                    mChromeSync.setOnPreferenceClickListener(mAddAccount);
-                }
-            } else {
-                // Google accounts are present.
-                mAccounts = accounts;
-                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
-                Bundle args = mChromeSync.getExtras();
-                args.putParcelableArray("accounts", accounts);
-                mEnabled = BrowserContract.Settings.isSyncEnabled(mContext);
-                mChromeSync.setOnPreferenceClickListener(GeneralPreferencesFragment.this);
-
-                if (!mEnabled) {
-                    // Setup a link to the enable wizard
-                    return mContext.getResources().getString(
-                            R.string.pref_personal_sync_with_chrome_summary);
-                } else {
-                    // Chrome sync is enabled, setup a link to account switcher
-                    String accountName = prefs.getString(
-                            BrowserBookmarksPage.PREF_ACCOUNT_NAME, null);
-                    args.putString("curAccount", accountName);
-                    return accountName;
-                }
-            }
-
-            return null;
-        }
-
-        @Override
-        protected void onPostExecute(String summary) {
-            if (summary != null) {
-                mChromeSync.setSummary(summary);
-            }
-        }
-    }
-
     void refreshUi() {
-        new GetAccountsTask(getActivity()).execute();
-
         PreferenceScreen autoFillSettings =
                 (PreferenceScreen)findPreference(PreferenceKeys.PREF_AUTOFILL_PROFILE);
         autoFillSettings.setDependency(PreferenceKeys.PREF_AUTOFILL_ENABLED);
     }
-
-    @Override
-    public boolean onPreferenceClick(Preference preference) {
-        if (mAccounts == null) {
-            Log.w(TAG, "NULL accounts!");
-            return true;
-        }
-        DialogFragment frag;
-        if (mEnabled) {
-            frag = new AccountChooserDialog();
-            frag.setArguments(preference.getExtras());
-        } else {
-            frag = ImportWizard.newInstance(mAccounts);
-        }
-        frag.show(getFragmentManager(), null);
-        return true;
-    }
-
-    public static class AccountChooserDialog extends DialogFragment
-            implements DialogInterface.OnClickListener {
-
-        AlertDialog mDialog;
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            Bundle args = getArguments();
-            Account[] accounts = (Account[]) args.getParcelableArray("accounts");
-            String curAccount = args.getString("curAccount");
-            int length = accounts.length;
-            int curAccountOffset = 0;
-            CharSequence[] accountNames = new CharSequence[length];
-            for (int i = 0; i < length; i++) {
-                String name = accounts[i].name;
-                if (name.equals(curAccount)) {
-                    curAccountOffset = i;
-                }
-                accountNames[i] = name;
-            }
-
-            mDialog = new AlertDialog.Builder(getActivity())
-                    .setIcon(android.R.drawable.ic_dialog_alert)
-                    .setTitle(R.string.account_chooser_dialog_title)
-                    .setSingleChoiceItems(accountNames, curAccountOffset, this)
-                    .create();
-            return mDialog;
-        }
-
-        @Override
-        public void onClick(DialogInterface dialog, int which) {
-            String accountName = mDialog.getListView().getAdapter().getItem(which).toString();
-            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
-            prefs.edit().putString(BrowserBookmarksPage.PREF_ACCOUNT_NAME, accountName).apply();
-            dismiss();
-        }
-    }
 }
diff --git a/src/com/android/browser/preferences/ImportWizard.java b/src/com/android/browser/preferences/ImportWizard.java
deleted file mode 100644
index 7105f4d..0000000
--- a/src/com/android/browser/preferences/ImportWizard.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.browser.preferences;
-
-import com.android.browser.BrowserBookmarksPage;
-import com.android.browser.R;
-import com.android.browser.view.EventRedirectingFrameLayout;
-
-import android.accounts.Account;
-import android.animation.LayoutTransition;
-import android.animation.ObjectAnimator;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.ContentProviderOperation;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnKeyListener;
-import android.content.DialogInterface.OnShowListener;
-import android.content.OperationApplicationException;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.preference.PreferenceManager;
-import android.provider.BrowserContract;
-import android.provider.BrowserContract.Bookmarks;
-import android.provider.BrowserContract.ChromeSyncColumns;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-
-public class ImportWizard extends DialogFragment implements OnClickListener,
-        OnItemClickListener {
-
-    static final String TAG = "BookmarkImportWizard";
-
-    static final int PAGE_IMPORT_OR_DELETE = 0;
-    static final int PAGE_SELECT_ACCOUNT = 1;
-    static final int PAGE_CONFIRMATION = 2;
-
-    static final String STATE_CURRENT_PAGE = "wizard.current_page";
-    static final String STATE_IMPORT_OR_DELETE = "wizard.import_or_delete";
-    static final String STATE_SELECTED_ACCOUNT = "wizard.selected_account";
-
-    static final String ARG_ACCOUNTS = "accounts";
-
-    AlertDialog mDialog;
-    EventRedirectingFrameLayout mPages;
-    int mCurrentPage;
-    Button mPositiveButton, mNegativeButton;
-    ListView mImportOrDelete, mSelectAccount;
-    Account[] mAccounts;
-    TextView mSelectAccountDescription, mConfirmation;
-
-    static ImportWizard newInstance(Account[] accounts) {
-        ImportWizard wizard = new ImportWizard();
-        Bundle args = new Bundle();
-        args.putParcelableArray(ARG_ACCOUNTS, accounts);
-        wizard.setArguments(args);
-        return wizard;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mAccounts = (Account[]) getArguments().getParcelableArray(ARG_ACCOUNTS);
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        mDialog = new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.import_bookmarks_dialog_title)
-                .setView(createView(savedInstanceState))
-                .setPositiveButton("?", null) // This is just a placeholder
-                .setNegativeButton("?", null) // Ditto
-                .setOnKeyListener(new OnKeyListener() {
-                    @Override
-                    public boolean onKey(DialogInterface arg0, int arg1, KeyEvent key) {
-                        if (key.getKeyCode() == KeyEvent.KEYCODE_BACK) {
-                            if (key.getAction() == KeyEvent.ACTION_UP
-                                    && !key.isCanceled()) {
-                                mNegativeButton.performClick();
-                            }
-                            return true;
-                        }
-                        return false;
-                    }
-                })
-                .create();
-        mDialog.setOnShowListener(new OnShowListener() {
-            @Override
-            public void onShow(DialogInterface dialog) {
-                mPositiveButton = mDialog.getButton(AlertDialog.BUTTON_POSITIVE);
-                mNegativeButton = mDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
-                mPositiveButton.setOnClickListener(ImportWizard.this);
-                mNegativeButton.setOnClickListener(ImportWizard.this);
-                setupAnimations();
-                updateNavigation();
-            }
-        });
-        return mDialog;
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt(STATE_CURRENT_PAGE, mCurrentPage);
-        outState.putInt(STATE_IMPORT_OR_DELETE, mImportOrDelete.getCheckedItemPosition());
-        outState.putInt(STATE_SELECTED_ACCOUNT, mSelectAccount.getCheckedItemPosition());
-    }
-
-    public View createView(Bundle savedInstanceState) {
-        LayoutInflater inflater = LayoutInflater.from(getActivity());
-        View root = inflater.inflate(R.layout.bookmark_sync_wizard, null);
-        mPages = (EventRedirectingFrameLayout) root.findViewById(R.id.pages);
-        if (mPages.getChildCount() < 1) {
-            throw new IllegalStateException("no pages in wizard!");
-        }
-        if (savedInstanceState != null) {
-            mCurrentPage = savedInstanceState.getInt(STATE_CURRENT_PAGE);
-        } else {
-            mCurrentPage = 0;
-        }
-        setupPage1(savedInstanceState);
-        setupPage2(savedInstanceState);
-        setupPage3(savedInstanceState);
-        for (int i = 0; i < mPages.getChildCount(); i++) {
-            View v = mPages.getChildAt(i);
-            if (i <= mCurrentPage) {
-                preparePage();
-                v.setVisibility(View.VISIBLE);
-            } else {
-                v.setVisibility(View.GONE);
-            }
-        }
-        mPages.setTargetChild(mCurrentPage);
-        return root;
-    }
-
-    void setupPage1(Bundle savedInstanceState) {
-        mImportOrDelete = (ListView) mPages.findViewById(R.id.add_remove_bookmarks);
-        // Add an empty header so we get a divider above the list
-        mImportOrDelete.addHeaderView(new View(getActivity()));
-        Resources res = getActivity().getResources();
-        String[] choices = new String[] {
-                res.getString(R.string.import_bookmarks_dialog_add),
-                res.getString(R.string.import_bookmarks_dialog_remove)
-        };
-        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
-                R.layout.bookmark_sync_wizard_item, choices);
-        mImportOrDelete.setAdapter(adapter);
-        if (savedInstanceState != null) {
-            int position = savedInstanceState.getInt(STATE_IMPORT_OR_DELETE);
-            if (position == ListView.INVALID_POSITION) {
-                mImportOrDelete.clearChoices();
-            } else {
-                mImportOrDelete.setItemChecked(position, true);
-            }
-        }
-        mImportOrDelete.setOnItemClickListener(this);
-    }
-
-    void setupPage2(Bundle savedInstanceState) {
-        mSelectAccount = (ListView) mPages.findViewById(R.id.select_account);
-        mSelectAccountDescription =
-                (TextView) mPages.findViewById(R.id.select_account_description);
-        // Add an empty header so we get a divider above the list
-        mSelectAccount.addHeaderView(new View(getActivity()));
-        Resources res = getActivity().getResources();
-        String[] accountNames = new String[mAccounts.length];
-        for (int i = 0; i < mAccounts.length; i++) {
-            accountNames[i] = mAccounts[i].name;
-        }
-        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
-                R.layout.bookmark_sync_wizard_item, accountNames);
-        mSelectAccount.setAdapter(adapter);
-        mSelectAccount.setItemChecked(mSelectAccount.getHeaderViewsCount(), true);
-        if (savedInstanceState != null) {
-            int position = savedInstanceState.getInt(STATE_SELECTED_ACCOUNT);
-            if (position != ListView.INVALID_POSITION) {
-                mSelectAccount.setItemChecked(position, true);
-            }
-        }
-        mSelectAccount.setOnItemClickListener(this);
-    }
-
-    void setupPage3(Bundle savedInstanceState) {
-        mConfirmation = (TextView) mPages.findViewById(R.id.confirm);
-    }
-
-    void preparePage() {
-        switch (mCurrentPage) {
-        case PAGE_SELECT_ACCOUNT:
-            if (shouldDeleteBookmarks()) {
-                mSelectAccountDescription.setText(
-                        R.string.import_bookmarks_dialog_delete_select_account);
-            } else {
-                mSelectAccountDescription.setText(
-                        R.string.import_bookmarks_dialog_select_add_account);
-            }
-            break;
-        case PAGE_CONFIRMATION:
-            String account = getSelectedAccount().name;
-            String confirmationMessage;
-            if (shouldDeleteBookmarks()) {
-                confirmationMessage = getActivity().getString(
-                        R.string.import_bookmarks_dialog_confirm_delete, account);
-            } else {
-                confirmationMessage = getActivity().getString(
-                        R.string.import_bookmarks_dialog_confirm_add, account);
-            }
-            mConfirmation.setText(confirmationMessage);
-            break;
-        }
-    }
-
-    int getAdjustedCheckedItemPosition(ListView list) {
-        int position = list.getCheckedItemPosition();
-        if (position != ListView.INVALID_POSITION) {
-            position -= list.getHeaderViewsCount();
-        }
-        return position;
-    }
-
-    Account getSelectedAccount() {
-        return mAccounts[getAdjustedCheckedItemPosition(mSelectAccount)];
-    }
-
-    boolean shouldDeleteBookmarks() {
-        return getAdjustedCheckedItemPosition(mImportOrDelete) == 1;
-    }
-
-    @Override
-    public void onItemClick(
-            AdapterView<?> parent, View view, int position, long id) {
-        validate();
-    }
-
-    void updateNavigation() {
-        if (mCurrentPage == 0) {
-            mNegativeButton.setText(R.string.import_bookmarks_wizard_cancel);
-        } else {
-            mNegativeButton.setText(R.string.import_bookmarks_wizard_previous);
-        }
-        if ((mCurrentPage + 1) == mPages.getChildCount()) {
-            mPositiveButton.setText(R.string.import_bookmarks_wizard_done);
-        } else {
-            mPositiveButton.setText(R.string.import_bookmarks_wizard_next);
-        }
-        validate();
-    }
-
-    void validate() {
-        switch (mCurrentPage) {
-        case PAGE_IMPORT_OR_DELETE:
-            mPositiveButton.setEnabled(
-                    mImportOrDelete.getCheckedItemPosition() != ListView.INVALID_POSITION);
-            break;
-        case PAGE_SELECT_ACCOUNT:
-            mPositiveButton.setEnabled(
-                    mSelectAccount.getCheckedItemPosition() != ListView.INVALID_POSITION);
-            break;
-        }
-    }
-
-    void setupAnimations() {
-        float animX = mPages.getMeasuredWidth();
-        final LayoutTransition transitioner = new LayoutTransition();
-        ObjectAnimator appearing = ObjectAnimator.ofFloat(this, "translationX",
-                animX, 0);
-        ObjectAnimator disappearing = ObjectAnimator.ofFloat(this, "translationX",
-                0, animX);
-        transitioner.setAnimator(LayoutTransition.APPEARING, appearing);
-        transitioner.setAnimator(LayoutTransition.DISAPPEARING, disappearing);
-        mPages.setLayoutTransition(transitioner);
-    }
-
-    boolean next() {
-        if (mCurrentPage + 1 < mPages.getChildCount()) {
-            mCurrentPage++;
-            preparePage();
-            mPages.getChildAt(mCurrentPage).setVisibility(View.VISIBLE);
-            mPages.setTargetChild(mCurrentPage);
-            return true;
-        }
-        return false;
-    }
-
-    boolean prev() {
-        if (mCurrentPage > 0) {
-            mPages.getChildAt(mCurrentPage).setVisibility(View.GONE);
-            mCurrentPage--;
-            mPages.setTargetChild(mCurrentPage);
-            return true;
-        }
-        return false;
-    }
-
-    void done() {
-        ContentResolver resolver = getActivity().getContentResolver();
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
-        String accountName = getSelectedAccount().name;
-        if (shouldDeleteBookmarks()) {
-            // The user chose to remove their old bookmarks, delete them now
-            resolver.delete(Bookmarks.CONTENT_URI,
-                    Bookmarks.PARENT + "=1 AND " + Bookmarks.ACCOUNT_NAME + " IS NULL", null);
-        } else {
-            // The user chose to migrate their old bookmarks to the account they're syncing
-            migrateBookmarks(resolver, accountName);
-        }
-
-        // Record the fact that we turned on sync
-        BrowserContract.Settings.setSyncEnabled(getActivity(), true);
-        prefs.edit()
-                .putString(BrowserBookmarksPage.PREF_ACCOUNT_TYPE, "com.google")
-                .putString(BrowserBookmarksPage.PREF_ACCOUNT_NAME, accountName)
-                .apply();
-
-        // Enable bookmark sync on all accounts
-        Account[] accounts = (Account[]) getArguments().getParcelableArray("accounts");
-        for (Account account : accounts) {
-            if (ContentResolver.getIsSyncable(account, BrowserContract.AUTHORITY) == 0) {
-                // Account wasn't syncable, enable it
-                ContentResolver.setIsSyncable(account, BrowserContract.AUTHORITY, 1);
-                ContentResolver.setSyncAutomatically(account, BrowserContract.AUTHORITY, true);
-            }
-        }
-
-        dismiss();
-    }
-
-    @Override
-    public void onClick(View v) {
-        if (v == mNegativeButton) {
-            if (prev()) {
-                updateNavigation();
-            } else {
-                dismiss();
-            }
-        } else if (v == mPositiveButton) {
-            if (next()) {
-                updateNavigation();
-            } else {
-                done();
-            }
-        }
-    }
-
-    /**
-     * Migrates bookmarks to the given account
-     */
-    void migrateBookmarks(ContentResolver resolver, String accountName) {
-        Cursor cursor = null;
-        try {
-            // Re-parent the bookmarks in the default root folder
-            cursor = resolver.query(Bookmarks.CONTENT_URI, new String[] { Bookmarks._ID },
-                    Bookmarks.ACCOUNT_NAME + " =? AND " +
-                        ChromeSyncColumns.SERVER_UNIQUE + " =?",
-                    new String[] { accountName,
-                        ChromeSyncColumns.FOLDER_NAME_BOOKMARKS_BAR },
-                    null);
-            ContentValues values = new ContentValues();
-            if (cursor == null || !cursor.moveToFirst()) {
-                // The root folders don't exist for the account, create them now
-                ArrayList<ContentProviderOperation> ops =
-                        new ArrayList<ContentProviderOperation>();
-
-                // Chrome sync root folder
-                values.clear();
-                values.put(ChromeSyncColumns.SERVER_UNIQUE, ChromeSyncColumns.FOLDER_NAME_ROOT);
-                values.put(Bookmarks.TITLE, "Google Chrome");
-                values.put(Bookmarks.POSITION, 0);
-                values.put(Bookmarks.IS_FOLDER, true);
-                values.put(Bookmarks.DIRTY, true);
-                ops.add(ContentProviderOperation.newInsert(
-                        Bookmarks.CONTENT_URI.buildUpon().appendQueryParameter(
-                                BrowserContract.CALLER_IS_SYNCADAPTER, "true").build())
-                        .withValues(values)
-                        .build());
-
-                // Bookmarks folder
-                values.clear();
-                values.put(ChromeSyncColumns.SERVER_UNIQUE,
-                        ChromeSyncColumns.FOLDER_NAME_BOOKMARKS);
-                values.put(Bookmarks.TITLE, "Bookmarks");
-                values.put(Bookmarks.POSITION, 0);
-                values.put(Bookmarks.IS_FOLDER, true);
-                values.put(Bookmarks.DIRTY, true);
-                ops.add(ContentProviderOperation.newInsert(Bookmarks.CONTENT_URI)
-                        .withValues(values)
-                        .withValueBackReference(Bookmarks.PARENT, 0)
-                        .build());
-
-                // Bookmarks Bar folder
-                values.clear();
-                values.put(ChromeSyncColumns.SERVER_UNIQUE,
-                        ChromeSyncColumns.FOLDER_NAME_BOOKMARKS_BAR);
-                values.put(Bookmarks.TITLE, "Bookmarks Bar");
-                values.put(Bookmarks.POSITION, 0);
-                values.put(Bookmarks.IS_FOLDER, true);
-                values.put(Bookmarks.DIRTY, true);
-                ops.add(ContentProviderOperation.newInsert(Bookmarks.CONTENT_URI)
-                        .withValues(values)
-                        .withValueBackReference(Bookmarks.PARENT, 1)
-                        .build());
-
-                // Other Bookmarks folder
-                values.clear();
-                values.put(ChromeSyncColumns.SERVER_UNIQUE,
-                        ChromeSyncColumns.FOLDER_NAME_OTHER_BOOKMARKS);
-                values.put(Bookmarks.TITLE, "Other Bookmarks");
-                values.put(Bookmarks.POSITION, 1000);
-                values.put(Bookmarks.IS_FOLDER, true);
-                values.put(Bookmarks.DIRTY, true);
-                ops.add(ContentProviderOperation.newInsert(Bookmarks.CONTENT_URI)
-                        .withValues(values)
-                        .withValueBackReference(Bookmarks.PARENT, 1)
-                        .build());
-
-                // Re-parent the existing bookmarks to the newly create bookmarks bar folder
-                ops.add(ContentProviderOperation.newUpdate(Bookmarks.CONTENT_URI)
-                        .withValueBackReference(Bookmarks.PARENT, 2)
-                        .withSelection(Bookmarks.ACCOUNT_NAME + " IS NULL AND " +
-                                Bookmarks.PARENT + "=?",
-                                    new String[] { Integer.toString(1) })
-                        .build());
-
-                // Mark all non-root folder items as belonging to the new account
-                values.clear();
-                values.put(Bookmarks.ACCOUNT_TYPE, "com.google");
-                values.put(Bookmarks.ACCOUNT_NAME, accountName);
-                ops.add(ContentProviderOperation.newUpdate(Bookmarks.CONTENT_URI)
-                        .withValues(values)
-                        .withSelection(Bookmarks.ACCOUNT_NAME + " IS NULL AND " +
-                                Bookmarks._ID + "<>1", null)
-                        .build());
-
-                try {
-                    resolver.applyBatch(BrowserContract.AUTHORITY, ops);
-                } catch (RemoteException e) {
-                    Log.e(TAG, "failed to create root folder for account " + accountName, e);
-                    return;
-                } catch (OperationApplicationException e) {
-                    Log.e(TAG, "failed to create root folder for account " + accountName, e);
-                    return;
-                }
-            } else {
-                values.put(Bookmarks.PARENT, cursor.getLong(0));
-                resolver.update(Bookmarks.CONTENT_URI, values, Bookmarks.PARENT + "=?",
-                        new String[] { Integer.toString(1) });
-
-                // Mark all bookmarks at all levels as part of the new account
-                values.clear();
-                values.put(Bookmarks.ACCOUNT_TYPE, "com.google");
-                values.put(Bookmarks.ACCOUNT_NAME, accountName);
-                resolver.update(Bookmarks.CONTENT_URI, values,
-                        Bookmarks.ACCOUNT_NAME + " IS NULL AND " + Bookmarks._ID + "<>1",
-                        null);
-            }
-        } finally {
-            if (cursor != null) cursor.close();
-        }
-    }
-}
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java
index a44f050..d9760e5 100644
--- a/src/com/android/browser/provider/BrowserProvider2.java
+++ b/src/com/android/browser/provider/BrowserProvider2.java
@@ -333,7 +333,7 @@
 
     final class DatabaseHelper extends SQLiteOpenHelper {
         static final String DATABASE_NAME = "browser2.db";
-        static final int DATABASE_VERSION = 27;
+        static final int DATABASE_VERSION = 28;
         public DatabaseHelper(Context context) {
             super(context, DATABASE_NAME, null, DATABASE_VERSION);
         }
@@ -402,6 +402,15 @@
             if (!importFromBrowserProvider(db)) {
                 createDefaultBookmarks(db);
             }
+
+            enableSync(db);
+        }
+
+        void enableSync(SQLiteDatabase db) {
+            ContentValues values = new ContentValues();
+            values.put(Settings.KEY, Settings.KEY_SYNC_ENABLED);
+            values.put(Settings.VALUE, 1);
+            insertSettingsInTransaction(db, values);
         }
 
         boolean importFromBrowserProvider(SQLiteDatabase db) {
@@ -491,7 +500,9 @@
 
         @Override
         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-            // TODO write upgrade logic
+            if (oldVersion < 28) {
+                enableSync(db);
+            }
             if (oldVersion < 27) {
                 createAccountsView(db);
             }