/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- * ***** 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 * * 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 ***** */ #filter substitution package org.mozilla.gecko.db; import android.net.Uri; public class BrowserContract { public static final String AUTHORITY = "@ANDROID_PACKAGE_NAME@.db.browser"; public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY); public static final String PASSWORDS_AUTHORITY = "@ANDROID_PACKAGE_NAME@.db.passwords"; public static final Uri PASSWORDS_AUTHORITY_URI = Uri.parse("content://" + PASSWORDS_AUTHORITY); public static final String FORM_HISTORY_AUTHORITY = "@ANDROID_PACKAGE_NAME@.db.formhistory"; public static final Uri FORM_HISTORY_AUTHORITY_URI = Uri.parse("content://" + FORM_HISTORY_AUTHORITY); public static final String TABS_AUTHORITY = "@ANDROID_PACKAGE_NAME@.db.tabs"; public static final Uri TABS_AUTHORITY_URI = Uri.parse("content://" + TABS_AUTHORITY); public static final String DEFAULT_PROFILE = "default"; public static final String PARAM_PROFILE = "profile"; public static final String PARAM_PROFILE_PATH = "profilePath"; public static final String PARAM_LIMIT = "limit"; public static final String PARAM_IS_SYNC = "sync"; public static final String PARAM_SHOW_DELETED = "show_deleted"; public static final String PARAM_IS_TEST = "test"; public static final String PARAM_INSERT_IF_NEEDED = "insert_if_needed"; public static final String PARAM_INCREMENT_VISITS = "increment_visits"; public 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"; } public interface URLColumns { public static final String URL = "url"; public static final String TITLE = "title"; } public interface ImageColumns { public static final String FAVICON = "favicon"; public static final String THUMBNAIL = "thumbnail"; } public interface HistoryColumns { public static final String DATE_LAST_VISITED = "date"; public static final String VISITS = "visits"; } public interface DeletedColumns { public static final String ID = "id"; public static final String GUID = "guid"; public static final String TIME_DELETED = "timeDeleted"; } 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 int FIXED_ROOT_ID = 0; public static final int FAKE_DESKTOP_FOLDER_ID = -1; 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 String FAKE_DESKTOP_FOLDER_GUID = "desktop"; public static final int TYPE_FOLDER = 0; public static final int TYPE_BOOKMARK = 1; public static final int TYPE_SEPARATOR = 2; public static final int TYPE_LIVEMARK = 3; public static final int TYPE_QUERY = 4; public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "bookmarks"); public static final Uri PARENTS_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "parents"); // Hacky API for bulk-updating positions. Bug 728783. 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 TYPE = "type"; 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 class History implements CommonColumns, URLColumns, HistoryColumns, ImageColumns, SyncColumns { private History() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "history"); 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"; } // Combined bookmarks and history public static final class Combined implements CommonColumns, URLColumns, HistoryColumns, ImageColumns { private Combined() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "combined"); public static final String BOOKMARK_ID = "bookmark_id"; public static final String HISTORY_ID = "history_id"; } 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 Control { private Control() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "control"); // These return 1 if done/finished, 0 if not. // Check if history was completely migrated, do a bunch if it wasn't. public static final String ENSURE_HISTORY_MIGRATED = "ensure_history_migrated"; // Check if bookmarks were completely migrated, migrate them if not. public static final String ENSURE_BOOKMARKS_MIGRATED = "ensure_bookmarks_migrated"; } public static final class Passwords { private Passwords() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(PASSWORDS_AUTHORITY_URI, "passwords"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/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 GUID = "guid"; // This needs to be kept in sync with the types defined in toolkit/components/passwordmgr/nsILoginManagerCrypto.idl#45 public static final int ENCTYPE_SDR = 1; } public static final class DeletedPasswords implements DeletedColumns { private DeletedPasswords() {} public static final String CONTENT_TYPE = "vnd.android.cursor.dir/deleted-passwords"; public static final Uri CONTENT_URI = Uri.withAppendedPath(PASSWORDS_AUTHORITY_URI, "deleted-passwords"); } public static final class FormHistory { private FormHistory() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(FORM_HISTORY_AUTHORITY_URI, "formhistory"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/formhistory"; public static final String ID = "id"; public static final String FIELD_NAME = "fieldname"; public static final String VALUE = "value"; public static final String TIMES_USED = "timesUsed"; public static final String FIRST_USED = "firstUsed"; public static final String LAST_USED = "lastUsed"; public static final String GUID = "guid"; } public static final class DeletedFormHistory implements DeletedColumns { private DeletedFormHistory() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(FORM_HISTORY_AUTHORITY_URI, "deleted-formhistory"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/deleted-formhistory"; } public static final class Tabs implements CommonColumns { private Tabs() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(TABS_AUTHORITY_URI, "tabs"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/tab"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/tab"; // Title of the tab. public static final String TITLE = "title"; // Topmost URL from the history array. Allows processing of this tab without // parsing that array. public static final String URL = "url"; // Sync-assigned GUID for client device. NULL for local tabs. public static final String CLIENT_GUID = "client_guid"; // JSON-encoded array of history URL strings, from most recent to least recent. public static final String HISTORY = "history"; // Favicon URL for the tab's topmost history entry. public static final String FAVICON = "favicon"; // Last used time of the tab. public static final String LAST_USED = "last_used"; // Position of the tab. 0 represents foreground. public static final String POSITION = "position"; } public static final class Clients { private Clients() {} public static final Uri CONTENT_URI = Uri.withAppendedPath(TABS_AUTHORITY_URI, "clients"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/client"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/client"; // Implicit rowid in SQL table. public static final String ROWID = "rowid"; // Client-provided name string. Could conceivably be null. public static final String NAME = "name"; // Sync-assigned GUID for client device. NULL for local tabs. public static final String GUID = "guid"; // Last modified time for the client's tab record. For remote records, a server // timestamp provided by Sync during insertion. public static final String LAST_MODIFIED = "last_modified"; } }