2011-12-08 08:37:21 -08:00
|
|
|
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
2012-05-21 04:12:37 -07:00
|
|
|
* 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/. */
|
2011-12-08 08:37:21 -08:00
|
|
|
|
|
|
|
package org.mozilla.gecko.db;
|
|
|
|
|
2013-04-09 17:10:47 -07:00
|
|
|
import org.mozilla.gecko.AppConstants;
|
|
|
|
|
2011-12-08 08:37:21 -08:00
|
|
|
import android.net.Uri;
|
2013-11-18 21:09:00 -08:00
|
|
|
import org.mozilla.gecko.mozglue.RobocopTarget;
|
2011-12-08 08:37:21 -08:00
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2011-12-08 08:37:21 -08:00
|
|
|
public class BrowserContract {
|
2013-04-09 17:10:47 -07:00
|
|
|
public static final String AUTHORITY = AppConstants.ANDROID_PACKAGE_NAME + ".db.browser";
|
2012-02-29 10:51:25 -08:00
|
|
|
public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
|
2011-12-08 08:37:21 -08:00
|
|
|
|
2013-04-09 17:10:47 -07:00
|
|
|
public static final String PASSWORDS_AUTHORITY = AppConstants.ANDROID_PACKAGE_NAME + ".db.passwords";
|
2011-12-16 15:11:09 -08:00
|
|
|
public static final Uri PASSWORDS_AUTHORITY_URI = Uri.parse("content://" + PASSWORDS_AUTHORITY);
|
2012-02-29 10:51:25 -08:00
|
|
|
|
2013-04-09 17:10:47 -07:00
|
|
|
public static final String FORM_HISTORY_AUTHORITY = AppConstants.ANDROID_PACKAGE_NAME + ".db.formhistory";
|
2012-02-27 10:10:14 -08:00
|
|
|
public static final Uri FORM_HISTORY_AUTHORITY_URI = Uri.parse("content://" + FORM_HISTORY_AUTHORITY);
|
2013-04-09 17:10:47 -07:00
|
|
|
|
|
|
|
public static final String TABS_AUTHORITY = AppConstants.ANDROID_PACKAGE_NAME + ".db.tabs";
|
2012-02-29 11:29:09 -08:00
|
|
|
public static final Uri TABS_AUTHORITY_URI = Uri.parse("content://" + TABS_AUTHORITY);
|
2011-12-08 08:37:21 -08:00
|
|
|
|
2014-01-27 13:50:56 -08:00
|
|
|
public static final String HOME_AUTHORITY = AppConstants.ANDROID_PACKAGE_NAME + ".db.home";
|
|
|
|
public static final Uri HOME_AUTHORITY_URI = Uri.parse("content://" + HOME_AUTHORITY);
|
2013-12-19 14:51:09 -08:00
|
|
|
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String PARAM_PROFILE = "profile";
|
2012-02-27 10:10:14 -08:00
|
|
|
public static final String PARAM_PROFILE_PATH = "profilePath";
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String PARAM_LIMIT = "limit";
|
2011-12-13 06:46:58 -08:00
|
|
|
public static final String PARAM_IS_SYNC = "sync";
|
|
|
|
public static final String PARAM_SHOW_DELETED = "show_deleted";
|
2012-03-14 11:49:59 -07:00
|
|
|
public static final String PARAM_IS_TEST = "test";
|
2012-04-09 17:28:59 -07:00
|
|
|
public static final String PARAM_INSERT_IF_NEEDED = "insert_if_needed";
|
|
|
|
public static final String PARAM_INCREMENT_VISITS = "increment_visits";
|
2012-10-19 17:35:37 -07:00
|
|
|
public static final String PARAM_EXPIRE_PRIORITY = "priority";
|
|
|
|
|
|
|
|
static public enum ExpirePriority {
|
|
|
|
NORMAL,
|
|
|
|
AGGRESSIVE
|
|
|
|
}
|
2012-10-19 17:35:43 -07:00
|
|
|
|
2012-10-19 17:35:43 -07:00
|
|
|
static public String getFrecencySortOrder(boolean includesBookmarks, boolean asc) {
|
|
|
|
final String age = "(" + Combined.DATE_LAST_VISITED + " - " + System.currentTimeMillis() + ") / 86400000";
|
|
|
|
|
|
|
|
StringBuilder order = new StringBuilder(Combined.VISITS + " * MAX(1, 100 * 225 / (" + age + "*" + age + " + 225)) ");
|
|
|
|
|
|
|
|
if (includesBookmarks) {
|
|
|
|
order.insert(0, "(CASE WHEN " + Combined.BOOKMARK_ID + " > -1 THEN 100 ELSE 0 END) + ");
|
|
|
|
}
|
|
|
|
|
|
|
|
order.append(asc ? " ASC" : " DESC");
|
|
|
|
return order.toString();
|
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2011-12-15 13:18:29 -08:00
|
|
|
public interface CommonColumns {
|
2011-12-13 06:46:58 -08:00
|
|
|
public static final String _ID = "_id";
|
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public interface DateSyncColumns {
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String DATE_CREATED = "created";
|
|
|
|
public static final String DATE_MODIFIED = "modified";
|
2012-11-13 10:56:58 -08:00
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public interface SyncColumns extends DateSyncColumns {
|
|
|
|
public static final String GUID = "guid";
|
2011-12-13 06:46:58 -08:00
|
|
|
public static final String IS_DELETED = "deleted";
|
2011-12-08 08:37:21 -08:00
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2011-12-15 13:18:29 -08:00
|
|
|
public interface URLColumns {
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String URL = "url";
|
|
|
|
public static final String TITLE = "title";
|
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public interface FaviconColumns {
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String FAVICON = "favicon";
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final String FAVICON_ID = "favicon_id";
|
|
|
|
public static final String FAVICON_URL = "favicon_url";
|
2011-12-08 08:37:21 -08:00
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-03-23 15:52:42 -07:00
|
|
|
public interface HistoryColumns {
|
|
|
|
public static final String DATE_LAST_VISITED = "date";
|
|
|
|
public static final String VISITS = "visits";
|
|
|
|
}
|
|
|
|
|
2012-02-27 10:10:14 -08:00
|
|
|
public interface DeletedColumns {
|
|
|
|
public static final String ID = "id";
|
|
|
|
public static final String GUID = "guid";
|
|
|
|
public static final String TIME_DELETED = "timeDeleted";
|
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final class Favicons implements CommonColumns, DateSyncColumns {
|
|
|
|
private Favicons() {}
|
2011-12-08 08:37:21 -08:00
|
|
|
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "favicons");
|
|
|
|
|
|
|
|
public static final String URL = "url";
|
|
|
|
public static final String DATA = "data";
|
|
|
|
public static final String PAGE_URL = "page_url";
|
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final class Thumbnails implements CommonColumns {
|
|
|
|
private Thumbnails() {}
|
|
|
|
|
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "thumbnails");
|
|
|
|
|
|
|
|
public static final String URL = "url";
|
|
|
|
public static final String DATA = "data";
|
2011-12-08 08:37:21 -08:00
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final class Bookmarks implements CommonColumns, URLColumns, FaviconColumns, SyncColumns {
|
2011-12-08 08:37:21 -08:00
|
|
|
private Bookmarks() {}
|
|
|
|
|
2012-02-20 11:28:27 -08:00
|
|
|
public static final int FIXED_ROOT_ID = 0;
|
2012-04-02 11:56:53 -07:00
|
|
|
public static final int FAKE_DESKTOP_FOLDER_ID = -1;
|
2012-06-02 11:23:45 -07:00
|
|
|
public static final int FIXED_READING_LIST_ID = -2;
|
2012-12-28 13:46:04 -08:00
|
|
|
public static final int FIXED_PINNED_LIST_ID = -3;
|
2012-02-20 11:28:27 -08:00
|
|
|
|
2011-12-13 11:47:40 -08:00
|
|
|
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";
|
2012-06-02 11:23:45 -07:00
|
|
|
public static final String READING_LIST_FOLDER_GUID = "readinglist";
|
2012-04-02 11:56:53 -07:00
|
|
|
public static final String FAKE_DESKTOP_FOLDER_GUID = "desktop";
|
2012-12-28 13:46:04 -08:00
|
|
|
public static final String PINNED_FOLDER_GUID = "pinned";
|
2011-12-13 11:47:40 -08:00
|
|
|
|
2012-03-20 04:44:32 -07:00
|
|
|
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;
|
|
|
|
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "bookmarks");
|
2012-02-14 17:10:18 -08:00
|
|
|
public static final Uri PARENTS_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "parents");
|
2012-02-22 12:37:34 -08:00
|
|
|
// Hacky API for bulk-updating positions. Bug 728783.
|
|
|
|
public static final Uri POSITIONS_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "positions");
|
2012-06-25 15:30:36 -07:00
|
|
|
public static final long DEFAULT_POSITION = Long.MIN_VALUE;
|
2012-02-22 12:37:34 -08:00
|
|
|
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/bookmark";
|
|
|
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/bookmark";
|
2012-03-20 04:44:32 -07:00
|
|
|
public static final String TYPE = "type";
|
2011-12-08 08:37:21 -08:00
|
|
|
public static final String PARENT = "parent";
|
|
|
|
public static final String POSITION = "position";
|
2011-12-13 06:46:58 -08:00
|
|
|
public static final String TAGS = "tags";
|
|
|
|
public static final String DESCRIPTION = "description";
|
|
|
|
public static final String KEYWORD = "keyword";
|
2011-12-08 08:37:21 -08:00
|
|
|
}
|
|
|
|
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final class History implements CommonColumns, URLColumns, HistoryColumns, FaviconColumns, SyncColumns {
|
2011-12-08 08:37:21 -08:00
|
|
|
private History() {}
|
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "history");
|
2012-10-19 17:35:37 -07:00
|
|
|
public static final Uri CONTENT_OLD_URI = Uri.withAppendedPath(AUTHORITY_URI, "history/old");
|
2011-12-08 08:37:21 -08:00
|
|
|
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";
|
2012-03-23 15:52:42 -07:00
|
|
|
}
|
2011-12-08 08:37:21 -08:00
|
|
|
|
2012-03-23 15:52:42 -07:00
|
|
|
// Combined bookmarks and history
|
2013-11-18 21:09:00 -08:00
|
|
|
@RobocopTarget
|
2012-11-13 10:56:58 -08:00
|
|
|
public static final class Combined implements CommonColumns, URLColumns, HistoryColumns, FaviconColumns {
|
2012-03-23 15:52:42 -07:00
|
|
|
private Combined() {}
|
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "combined");
|
|
|
|
|
2012-06-02 11:23:45 -07:00
|
|
|
public static final int DISPLAY_NORMAL = 0;
|
|
|
|
public static final int DISPLAY_READER = 1;
|
|
|
|
|
2012-03-23 15:52:42 -07:00
|
|
|
public static final String BOOKMARK_ID = "bookmark_id";
|
|
|
|
public static final String HISTORY_ID = "history_id";
|
2012-06-02 11:23:45 -07:00
|
|
|
public static final String DISPLAY = "display";
|
2011-12-08 08:37:21 -08:00
|
|
|
}
|
2011-12-13 06:12:01 -08:00
|
|
|
|
|
|
|
public static final class Schema {
|
|
|
|
private Schema() {}
|
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "schema");
|
|
|
|
|
|
|
|
public static final String VERSION = "version";
|
|
|
|
}
|
2011-12-16 15:11:09 -08:00
|
|
|
|
2012-02-29 10:51:25 -08:00
|
|
|
public static final class Passwords {
|
2011-12-16 15:11:09 -08:00
|
|
|
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";
|
2012-02-29 10:51:25 -08:00
|
|
|
public static final String GUID = "guid";
|
2012-04-16 11:27:17 -07:00
|
|
|
|
|
|
|
// 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;
|
2011-12-16 15:11:09 -08:00
|
|
|
}
|
|
|
|
|
2012-02-27 10:10:14 -08:00
|
|
|
public static final class DeletedPasswords implements DeletedColumns {
|
2011-12-16 15:11:09 -08:00
|
|
|
private DeletedPasswords() {}
|
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/deleted-passwords";
|
2012-03-08 10:25:44 -08:00
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(PASSWORDS_AUTHORITY_URI, "deleted-passwords");
|
2012-02-27 10:10:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
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";
|
2011-12-16 15:11:09 -08:00
|
|
|
|
|
|
|
public static final String ID = "id";
|
2012-02-27 10:10:14 -08:00
|
|
|
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";
|
2011-12-16 15:11:09 -08:00
|
|
|
public static final String GUID = "guid";
|
2012-02-27 10:10:14 -08:00
|
|
|
}
|
2011-12-16 15:11:09 -08:00
|
|
|
|
2012-02-27 10:10:14 -08:00
|
|
|
public static final class DeletedFormHistory implements DeletedColumns {
|
|
|
|
private DeletedFormHistory() {}
|
2012-03-08 10:25:44 -08:00
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(FORM_HISTORY_AUTHORITY_URI, "deleted-formhistory");
|
2012-02-27 10:10:14 -08:00
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/deleted-formhistory";
|
2011-12-16 15:11:09 -08:00
|
|
|
}
|
2012-02-29 11:29:09 -08:00
|
|
|
|
|
|
|
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";
|
2013-04-09 17:10:48 -07:00
|
|
|
|
2012-02-29 11:29:09 -08:00
|
|
|
// 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";
|
|
|
|
|
2013-04-09 17:10:48 -07:00
|
|
|
// Last modified time for the client's tab record. For remote records, a server
|
2012-02-29 11:29:09 -08:00
|
|
|
// timestamp provided by Sync during insertion.
|
|
|
|
public static final String LAST_MODIFIED = "last_modified";
|
|
|
|
}
|
2013-12-19 14:51:09 -08:00
|
|
|
|
2014-01-27 13:50:56 -08:00
|
|
|
// Data storage for dynamic panels on about:home
|
2013-12-19 14:51:09 -08:00
|
|
|
@RobocopTarget
|
2014-01-27 13:50:56 -08:00
|
|
|
public static final class HomeItems implements CommonColumns {
|
|
|
|
private HomeItems() {}
|
|
|
|
public static final Uri CONTENT_FAKE_URI = Uri.withAppendedPath(HOME_AUTHORITY_URI, "items/fake");
|
|
|
|
public static final Uri CONTENT_URI = Uri.withAppendedPath(HOME_AUTHORITY_URI, "items");
|
2013-12-19 14:51:09 -08:00
|
|
|
|
2014-01-27 13:50:56 -08:00
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/homeitem";
|
|
|
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/homeitem";
|
2013-12-19 14:51:09 -08:00
|
|
|
|
2014-01-27 13:50:56 -08:00
|
|
|
public static final String DATASET_ID = "dataset_id";
|
|
|
|
public static final String URL = "url";
|
|
|
|
public static final String TITLE = "title";
|
|
|
|
public static final String DESCRIPTION = "description";
|
|
|
|
public static final String IMAGE_URL = "image_url";
|
|
|
|
public static final String CREATED = "created";
|
2013-12-19 14:51:09 -08:00
|
|
|
}
|
2011-12-15 13:18:29 -08:00
|
|
|
}
|