Bug 1183069 - Copy removed fields from android.provider.Browser to LegacyBrowserProvider. r=rnewman

--HG--
extra : commitid : 7qIFuCxppoX
extra : rebase_source : 89dc929577cfe329436a90f1cb51a3209a1983d7
extra : amend_source : be84917784335f86412bb873d11a162bdaa673fa
This commit is contained in:
Sebastian Kaspari 2015-08-03 17:04:27 +02:00
parent de319ddff6
commit 339bd01012
2 changed files with 38 additions and 18 deletions

View File

@ -55,7 +55,6 @@ import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.provider.Browser;
import android.text.TextUtils;
import android.util.Log;
import org.mozilla.gecko.util.IOUtils;
@ -889,7 +888,7 @@ public class LocalBrowserDB implements BrowserDB {
final long now = System.currentTimeMillis();
ContentValues values = new ContentValues();
if (title != null) {
values.put(Browser.BookmarkColumns.TITLE, title);
values.put(Bookmarks.TITLE, title);
}
values.put(Bookmarks.URL, uri);
@ -992,7 +991,7 @@ public class LocalBrowserDB implements BrowserDB {
@RobocopTarget
public void updateBookmark(ContentResolver cr, int id, String uri, String title, String keyword) {
ContentValues values = new ContentValues();
values.put(Browser.BookmarkColumns.TITLE, title);
values.put(Bookmarks.TITLE, title);
values.put(Bookmarks.URL, uri);
values.put(Bookmarks.KEYWORD, keyword);
values.put(Bookmarks.DATE_MODIFIED, System.currentTimeMillis());

View File

@ -15,13 +15,34 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
import android.os.RemoteException;
import android.provider.Browser;
import android.provider.BaseColumns;
import android.util.Log;
import java.util.ArrayList;
class AndroidImport implements Runnable {
/**
* The Android M SDK removed several fields and methods from android.provider.Browser. This class is used as a
* replacement to support building with the new SDK but at the same time still use these fields on lower Android
* versions.
*/
private static class LegacyBrowserProvider {
public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
// Incomplete: This are just the fields we currently use in our code base
public static class BookmarkColumns implements BaseColumns {
public static final String URL = "url";
public static final String VISITS = "visits";
public static final String DATE = "date";
public static final String BOOKMARK = "bookmark";
public static final String TITLE = "title";
public static final String CREATED = "created";
public static final String FAVICON = "favicon";
}
}
private static final String LOGTAG = "AndroidImport";
private final Context mContext;
private final Runnable mOnDoneRunnable;
@ -45,18 +66,18 @@ class AndroidImport implements Runnable {
public void mergeBookmarks() {
Cursor cursor = null;
try {
cursor = mCr.query(Browser.BOOKMARKS_URI,
cursor = mCr.query(LegacyBrowserProvider.BOOKMARKS_URI,
null,
Browser.BookmarkColumns.BOOKMARK + " = 1",
LegacyBrowserProvider.BookmarkColumns.BOOKMARK + " = 1",
null,
null);
if (cursor != null) {
final int faviconCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.FAVICON);
final int titleCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.TITLE);
final int urlCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.URL);
final int faviconCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.FAVICON);
final int titleCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.TITLE);
final int urlCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.URL);
// http://code.google.com/p/android/issues/detail?id=17969
final int createCol = cursor.getColumnIndex(Browser.BookmarkColumns.CREATED);
final int createCol = cursor.getColumnIndex(LegacyBrowserProvider.BookmarkColumns.CREATED);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
@ -93,19 +114,19 @@ class AndroidImport implements Runnable {
public void mergeHistory() {
Cursor cursor = null;
try {
cursor = mCr.query(Browser.BOOKMARKS_URI,
cursor = mCr.query(LegacyBrowserProvider.BOOKMARKS_URI,
null,
Browser.BookmarkColumns.BOOKMARK + " = 0 AND " +
Browser.BookmarkColumns.VISITS + " > 0",
LegacyBrowserProvider.BookmarkColumns.BOOKMARK + " = 0 AND " +
LegacyBrowserProvider.BookmarkColumns.VISITS + " > 0",
null,
null);
if (cursor != null) {
final int dateCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.DATE);
final int faviconCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.FAVICON);
final int titleCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.TITLE);
final int urlCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.URL);
final int visitsCol = cursor.getColumnIndexOrThrow(Browser.BookmarkColumns.VISITS);
final int dateCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.DATE);
final int faviconCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.FAVICON);
final int titleCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.TITLE);
final int urlCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.URL);
final int visitsCol = cursor.getColumnIndexOrThrow(LegacyBrowserProvider.BookmarkColumns.VISITS);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {