Bug 730557 - Part 1: Use Fennec BrowserContract directly. r=nalexander

This commit is contained in:
Richard Newman 2012-02-27 10:23:33 -08:00
Родитель 4f1b16537d
Коммит 958dac1919
10 изменённых файлов: 93 добавлений и 260 удалений

Просмотреть файл

@ -42,9 +42,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import org.json.simple.JSONArray;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.Logger;
import org.mozilla.gecko.sync.repositories.NullCursorException;
import org.mozilla.gecko.sync.repositories.android.BrowserContract.Bookmarks;
import org.mozilla.gecko.sync.repositories.domain.BookmarkRecord;
import org.mozilla.gecko.sync.repositories.domain.Record;
@ -77,11 +77,11 @@ public class AndroidBrowserBookmarksDataAccessor extends AndroidBrowserRepositor
@Override
protected Uri getUri() {
return BrowserContract.Bookmarks.CONTENT_URI;
return BrowserContractHelpers.BOOKMARKS_CONTENT_URI;
}
protected Uri getPositionsUri() {
return BrowserContract.Bookmarks.POSITIONS_CONTENT_URI;
return BrowserContractHelpers.BOOKMARKS_POSITIONS_CONTENT_URI;
}
protected Cursor getGuidsIDsForFolders() throws NullCursorException {
@ -113,10 +113,10 @@ public class AndroidBrowserBookmarksDataAccessor extends AndroidBrowserRepositor
*/
public int bumpModified(long id, long modified) {
Logger.debug(LOG_TAG, "Bumping modified for " + id + " to " + modified);
String where = Bookmarks._ID + " = ?";
String where = BrowserContract.Bookmarks._ID + " = ?";
String[] selectionArgs = new String[] { String.valueOf(id) };
ContentValues values = new ContentValues();
values.put(Bookmarks.DATE_MODIFIED, modified);
values.put(BrowserContract.Bookmarks.DATE_MODIFIED, modified);
return context.getContentResolver().update(getUri(), values, where, selectionArgs);
}
@ -251,6 +251,6 @@ public class AndroidBrowserBookmarksDataAccessor extends AndroidBrowserRepositor
@Override
protected String[] getAllColumns() {
return BrowserContract.Bookmarks.BookmarkColumns;
return BrowserContractHelpers.BookmarkColumns;
}
}

Просмотреть файл

@ -13,6 +13,7 @@ import java.util.TreeMap;
import org.json.simple.JSONArray;
import org.mozilla.gecko.R;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.Logger;
import org.mozilla.gecko.sync.Utils;
import org.mozilla.gecko.sync.repositories.NoGuidForIdException;

Просмотреть файл

@ -39,6 +39,7 @@ package org.mozilla.gecko.sync.repositories.android;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.repositories.domain.HistoryRecord;
import org.mozilla.gecko.sync.repositories.domain.Record;
@ -62,7 +63,7 @@ public class AndroidBrowserHistoryDataAccessor extends AndroidBrowserRepositoryD
@Override
protected Uri getUri() {
return BrowserContract.History.CONTENT_URI;
return BrowserContractHelpers.HISTORY_CONTENT_URI;
}
@Override
@ -91,7 +92,7 @@ public class AndroidBrowserHistoryDataAccessor extends AndroidBrowserRepositoryD
@Override
protected String[] getAllColumns() {
return BrowserContract.History.HistoryColumns;
return BrowserContractHelpers.HistoryColumns;
}
@Override
@ -120,4 +121,4 @@ public class AndroidBrowserHistoryDataAccessor extends AndroidBrowserRepositoryD
dataExtender.delete(guid);
}
}
}

Просмотреть файл

@ -6,6 +6,7 @@ package org.mozilla.gecko.sync.repositories.android;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.repositories.NullCursorException;
import org.mozilla.gecko.sync.repositories.Repository;
import org.mozilla.gecko.sync.repositories.domain.HistoryRecord;

Просмотреть файл

@ -74,11 +74,11 @@ public class AndroidBrowserPasswordsDataAccessor extends AndroidBrowserRepositor
@Override
protected Uri getUri() {
return BrowserContract.Passwords.CONTENT_URI;
return BrowserContractHelpers.PASSWORDS_CONTENT_URI;
}
@Override
protected String[] getAllColumns() {
return BrowserContract.Passwords.PasswordColumns;
return BrowserContractHelpers.PasswordColumns;
}
}

Просмотреть файл

@ -38,6 +38,7 @@
package org.mozilla.gecko.sync.repositories.android;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.Logger;
import org.mozilla.gecko.sync.repositories.NullCursorException;
import org.mozilla.gecko.sync.repositories.domain.Record;

Просмотреть файл

@ -1,248 +0,0 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Mozilla Android code.
*
* The Initial Developer of the Original Code is Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2011
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Lucas Rocha <lucasr@mozilla.com>
* Jason Voll <jvoll@mozilla.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
package org.mozilla.gecko.sync.repositories.android;
import android.net.Uri;
/*
* IMPORTANT NOTE
* This file is a copy of mobile/android/base/db/BrowserContract.java
* and is included here to avoid creating a compile-time dependency on
* Fennec.
*/
public class BrowserContract {
// Local change: use generated authority URI.
public static final Uri AUTHORITY_URI = Uri.parse("content://" + Authorities.BROWSER_AUTHORITY);
public static final Uri PASSWORDS_AUTHORITY = Uri.parse("content://" + Authorities.PASSWORDS_AUTHORITY);
public static final String DEFAULT_PROFILE = "default";
public static final String PARAM_PROFILE = "profile";
public static final String PARAM_LIMIT = "limit";
public static final String PARAM_IS_SYNC = "sync";
public static final String PARAM_SHOW_DELETED = "show_deleted";
interface CommonColumns {
public static final String _ID = "_id";
}
public interface SyncColumns {
public static final String GUID = "guid";
public static final String DATE_CREATED = "created";
public static final String DATE_MODIFIED = "modified";
public static final String IS_DELETED = "deleted";
}
interface URLColumns {
public static final String URL = "url";
public static final String TITLE = "title";
}
interface ImageColumns {
public static final String FAVICON = "favicon";
public static final String THUMBNAIL = "thumbnail";
}
public static final class Images implements CommonColumns, ImageColumns, SyncColumns {
private Images() {}
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "images");
public static final String URL = "url_key";
public static final String FAVICON_URL = "favicon_url";
}
public static final class Bookmarks implements CommonColumns, URLColumns, ImageColumns, SyncColumns {
private Bookmarks() {}
public static final String MOBILE_FOLDER_GUID = "mobile";
public static final String PLACES_FOLDER_GUID = "places";
public static final String MENU_FOLDER_GUID = "menu";
public static final String TAGS_FOLDER_GUID = "tags";
public static final String TOOLBAR_FOLDER_GUID = "toolbar";
public static final String UNFILED_FOLDER_GUID = "unfiled";
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "bookmarks")
.buildUpon().appendQueryParameter(PARAM_IS_SYNC, "true")
.appendQueryParameter(PARAM_SHOW_DELETED, "true")
.build();
public static final Uri PARENTS_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "parents");
public static final Uri POSITIONS_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "positions");
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/bookmark";
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/bookmark";
public static final String IS_FOLDER = "folder";
public static final String PARENT = "parent";
public static final String POSITION = "position";
public static final String TAGS = "tags";
public static final String DESCRIPTION = "description";
public static final String KEYWORD = "keyword";
public static final String[] BookmarkColumns = new String[] {
_ID,
GUID,
DATE_CREATED,
DATE_MODIFIED,
IS_DELETED,
TITLE,
URL,
IS_FOLDER,
PARENT,
POSITION,
TAGS,
DESCRIPTION,
KEYWORD
};
}
public static final class History implements CommonColumns, URLColumns, ImageColumns, SyncColumns {
private History() {}
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "history")
.buildUpon().appendQueryParameter(PARAM_IS_SYNC, "true")
.appendQueryParameter(PARAM_SHOW_DELETED, "true")
.build();
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/browser-history";
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/browser-history";
public static final String DATE_LAST_VISITED = "date";
public static final String VISITS = "visits";
public static final String[] HistoryColumns = new String[] {
_ID,
GUID,
DATE_CREATED,
DATE_MODIFIED,
IS_DELETED,
TITLE,
URL,
DATE_LAST_VISITED,
VISITS
};
}
public static final class Schema {
private Schema() {}
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "schema");
public static final String VERSION = "version";
}
public static final class Passwords {
private Passwords() {}
public static final Uri CONTENT_URI = Uri.withAppendedPath(PASSWORDS_AUTHORITY, "passwords")
.buildUpon().appendQueryParameter(PARAM_IS_SYNC, "true")
.appendQueryParameter(PARAM_SHOW_DELETED, "true")
.build();
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/passwords";
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/passwords";
public static final String _ID = "id";
public static final String HOSTNAME = "hostname";
public static final String HTTP_REALM = "httpRealm";
public static final String FORM_SUBMIT_URL = "formSubmitURL";
public static final String USERNAME_FIELD = "usernameField";
public static final String PASSWORD_FIELD = "passwordField";
public static final String ENCRYPTED_USERNAME = "encryptedUsername";
public static final String ENCRYPTED_PASSWORD = "encryptedPassword";
public static final String ENC_TYPE = "encType";
public static final String TIME_CREATED = "timeCreated";
public static final String TIME_LAST_USED = "timeLastUsed";
public static final String TIME_PASSWORD_CHANGED = "timePasswordChanged";
public static final String TIMES_USED = "timesUsed";
public static final String[] PasswordColumns = new String[] {
_ID,
SyncColumns.GUID,
//TIME_CREATED,
//TIME_PASSWORD_CHANGED,
SyncColumns.DATE_CREATED,
SyncColumns.DATE_MODIFIED,
SyncColumns.IS_DELETED,
HOSTNAME,
HTTP_REALM,
FORM_SUBMIT_URL,
USERNAME_FIELD,
PASSWORD_FIELD,
ENCRYPTED_USERNAME,
ENCRYPTED_PASSWORD,
ENC_TYPE,
TIME_LAST_USED,
TIMES_USED
};
}
}

Просмотреть файл

@ -0,0 +1,76 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.sync.repositories.android;
import android.net.Uri;
// This will exist implicitly when we're merged into Fennec, or explicitly
// due to our own imported copy of Fennec's BrowserContract.java.in.
import org.mozilla.gecko.db.BrowserContract;
public class BrowserContractHelpers extends BrowserContract {
protected static Uri withSyncAndDeleted(Uri u) {
return u.buildUpon()
.appendQueryParameter(PARAM_IS_SYNC, "true")
.appendQueryParameter(PARAM_SHOW_DELETED, "true")
.build();
}
public static final Uri IMAGES_CONTENT_URI = withSyncAndDeleted(Images.CONTENT_URI);
public static final Uri BOOKMARKS_CONTENT_URI = withSyncAndDeleted(Bookmarks.CONTENT_URI);
public static final Uri BOOKMARKS_PARENTS_CONTENT_URI = withSyncAndDeleted(Bookmarks.PARENTS_CONTENT_URI);
public static final Uri BOOKMARKS_POSITIONS_CONTENT_URI = withSyncAndDeleted(Bookmarks.POSITIONS_CONTENT_URI);
public static final Uri HISTORY_CONTENT_URI = withSyncAndDeleted(History.CONTENT_URI);
public static final Uri SCHEMA_CONTENT_URI = withSyncAndDeleted(Schema.CONTENT_URI);
public static final Uri PASSWORDS_CONTENT_URI = withSyncAndDeleted(Passwords.CONTENT_URI);
public static final Uri FORM_HISTORY_CONTENT_URI = withSyncAndDeleted(FormHistory.CONTENT_URI);
public static final Uri DELETED_FORM_HISTORY_CONTENT_URI = withSyncAndDeleted(DeletedFormHistory.CONTENT_URI);
public static final String[] PasswordColumns = new String[] {
CommonColumns._ID,
SyncColumns.GUID,
SyncColumns.DATE_CREATED,
SyncColumns.DATE_MODIFIED,
SyncColumns.IS_DELETED,
Passwords.HOSTNAME,
Passwords.HTTP_REALM,
Passwords.FORM_SUBMIT_URL,
Passwords.USERNAME_FIELD,
Passwords.PASSWORD_FIELD,
Passwords.ENCRYPTED_USERNAME,
Passwords.ENCRYPTED_PASSWORD,
Passwords.ENC_TYPE,
Passwords.TIME_LAST_USED,
Passwords.TIMES_USED
};
public static final String[] HistoryColumns = new String[] {
CommonColumns._ID,
SyncColumns.GUID,
SyncColumns.DATE_CREATED,
SyncColumns.DATE_MODIFIED,
SyncColumns.IS_DELETED,
History.TITLE,
History.URL,
History.DATE_LAST_VISITED,
History.VISITS
};
public static final String[] BookmarkColumns = new String[] {
CommonColumns._ID,
SyncColumns.GUID,
SyncColumns.DATE_CREATED,
SyncColumns.DATE_MODIFIED,
SyncColumns.IS_DELETED,
Bookmarks.TITLE,
Bookmarks.URL,
Bookmarks.IS_FOLDER,
Bookmarks.PARENT,
Bookmarks.POSITION,
Bookmarks.TAGS,
Bookmarks.DESCRIPTION,
Bookmarks.KEYWORD
};
}

Просмотреть файл

@ -7,6 +7,7 @@ package org.mozilla.gecko.sync.repositories.android;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.sync.Logger;
import org.mozilla.gecko.sync.repositories.NullCursorException;
import org.mozilla.gecko.sync.repositories.domain.HistoryRecord;

Различия файлов скрыты, потому что одна или несколько строк слишком длинны