1e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton/*
2e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * Copyright (C) 2010 The Android Open Source Project
3e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton *
4e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * Licensed under the Apache License, Version 2.0 (the "License");
5e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * you may not use this file except in compliance with the License.
6e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * You may obtain a copy of the License at
7e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton *
8e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton *      http://www.apache.org/licenses/LICENSE-2.0
9e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton *
10e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * Unless required by applicable law or agreed to in writing, software
11e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * distributed under the License is distributed on an "AS IS" BASIS,
12e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * See the License for the specific language governing permissions and
14e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * limitations under the License
15e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton */
16e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
17e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonpackage android.provider;
18e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
19e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.accounts.Account;
20e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.content.ContentProviderClient;
21e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.content.ContentProviderOperation;
22e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.content.ContentResolver;
23e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.content.ContentUris;
24a2f926607514205adff28f19546bce21a300fc8dJeff Hamiltonimport android.content.ContentValues;
25a2f926607514205adff28f19546bce21a300fc8dJeff Hamiltonimport android.content.Context;
26a2f926607514205adff28f19546bce21a300fc8dJeff Hamiltonimport android.database.Cursor;
27e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.graphics.BitmapFactory;
28e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.net.Uri;
29e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.os.RemoteException;
30e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonimport android.util.Pair;
31e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
32e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton/**
33b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * <p>
34b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * The contract between the browser provider and applications. Contains the definition
35b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * for the supported URIS and columns.
36b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * </p>
37b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * <h3>Overview</h3>
38b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * <p>
39b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * BrowserContract defines an database of browser-related information which are bookmarks,
40b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * history, images and the mapping between the image and URL.
41b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai * </p>
42e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton * @hide
43e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton */
44e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamiltonpublic class BrowserContract {
45e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /** The authority for the browser provider */
46e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    public static final String AUTHORITY = "com.android.browser";
47e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
48e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /** A content:// style uri to the authority for the browser provider */
49e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
50e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
51e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
52e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * An optional insert, update or delete URI parameter that allows the caller
53e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * to specify that it is a sync adapter. The default value is false. If true
54e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * the dirty flag is not automatically set and the "syncToNetwork" parameter
55e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * is set to false when calling
56e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * {@link ContentResolver#notifyChange(android.net.Uri, android.database.ContentObserver, boolean)}.
57b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
58e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
59e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    public static final String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
60e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
61e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
624d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * A parameter for use when querying any table that allows specifying a limit on the number
634d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * of rows returned.
64b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
654d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     */
664d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final String PARAM_LIMIT = "limit";
674d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
684d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    /**
69e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * Generic columns for use by sync adapters. The specific functions of
70e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * these columns are private to the sync adapter. Other clients of the API
71e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * should not attempt to either read or write these columns.
72b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     *
73b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
74e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
75e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    interface BaseSyncColumns {
76e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /** Generic column for use by sync adapters. */
77e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SYNC1 = "sync1";
78e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /** Generic column for use by sync adapters. */
79e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SYNC2 = "sync2";
80e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /** Generic column for use by sync adapters. */
81e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SYNC3 = "sync3";
82e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /** Generic column for use by sync adapters. */
83e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SYNC4 = "sync4";
84e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /** Generic column for use by sync adapters. */
85e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SYNC5 = "sync5";
86e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
87e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
88e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
8998bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton     * Convenience definitions for use in implementing chrome bookmarks sync in the Bookmarks table.
90b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
9198bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton     */
9298bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton    public static final class ChromeSyncColumns {
9398bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        private ChromeSyncColumns() {}
9498bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton
9598bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        /** The server unique ID for an item */
9698bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String SERVER_UNIQUE = BaseSyncColumns.SYNC3;
9798bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton
9898bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String FOLDER_NAME_ROOT = "google_chrome";
9998bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String FOLDER_NAME_BOOKMARKS = "google_chrome_bookmarks";
10098bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String FOLDER_NAME_BOOKMARKS_BAR = "bookmark_bar";
10198bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String FOLDER_NAME_OTHER_BOOKMARKS = "other_bookmarks";
10278a99cea0d06eac8e9251043977497c092766d48Cyrus Master
10398bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        /** The client unique ID for an item */
10498bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton        public static final String CLIENT_UNIQUE = BaseSyncColumns.SYNC4;
10598bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton    }
10678a99cea0d06eac8e9251043977497c092766d48Cyrus Master
10798bfcfb944190e6329dad233f2bf80e404e125b3Jeff Hamilton    /**
108e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * Columns that appear when each row of a table belongs to a specific
109e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * account, including sync information that an account may need.
110b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
111e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
112e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    interface SyncColumns extends BaseSyncColumns {
113e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
114e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The name of the account instance to which this row belongs, which when paired with
115e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * {@link #ACCOUNT_TYPE} identifies a specific account.
116e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: TEXT</P>
117e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
118e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String ACCOUNT_NAME = "account_name";
119e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
120e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
121e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The type of account to which this row belongs, which when paired with
122e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * {@link #ACCOUNT_NAME} identifies a specific account.
123e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: TEXT</P>
124e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
125e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String ACCOUNT_TYPE = "account_type";
126e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
127e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
128e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * String that uniquely identifies this row to its source account.
129e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: TEXT</P>
130e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
131e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SOURCE_ID = "sourceid";
132e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
133e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
134e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Version number that is updated whenever this row or its related data
135e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * changes.
136e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER</P>
137e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
138e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String VERSION = "version";
139e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
140e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
141e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Flag indicating that {@link #VERSION} has changed, and this row needs
142e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * to be synchronized by its owning account.
143e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER (boolean)</P>
144e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
145e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String DIRTY = "dirty";
14678a99cea0d06eac8e9251043977497c092766d48Cyrus Master
14778a99cea0d06eac8e9251043977497c092766d48Cyrus Master        /**
14878a99cea0d06eac8e9251043977497c092766d48Cyrus Master         * The time that this row was last modified by a client (msecs since the epoch).
14978a99cea0d06eac8e9251043977497c092766d48Cyrus Master         * <P>Type: INTEGER</P>
15078a99cea0d06eac8e9251043977497c092766d48Cyrus Master         */
15178a99cea0d06eac8e9251043977497c092766d48Cyrus Master        public static final String DATE_MODIFIED = "modified";
152e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
153e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
1544d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    interface CommonColumns {
155e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
156e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The unique ID for a row.
157e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER (long)</P>
158e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
159e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String _ID = "_id";
160e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
161e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
162b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * This column is valid when the row is a URL. The history table's URL
163b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * can not be updated.
164e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: TEXT (URL)</P>
165e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
166e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String URL = "url";
167e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
168e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
169b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The user visible title.
170e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: TEXT</P>
171e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
172e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String TITLE = "title";
173e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
174e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
1754d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The time that this row was created on its originating client (msecs
1764d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * since the epoch).
1774d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <P>Type: INTEGER</P>
178b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
1794d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
1804d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String DATE_CREATED = "created";
1814d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    }
1824d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
183b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    /**
184b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
185b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     */
1864d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    interface ImageColumns {
1874d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
188e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The favicon of the bookmark, may be NULL.
189e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Must decode via {@link BitmapFactory#decodeByteArray}.
190e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <p>Type: BLOB (image)</p>
191e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
192e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String FAVICON = "favicon";
193e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
194e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
195e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * A thumbnail of the page,may be NULL.
196e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Must decode via {@link BitmapFactory#decodeByteArray}.
197e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <p>Type: BLOB (image)</p>
198e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
199e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String THUMBNAIL = "thumbnail";
200e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
201e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
202e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The touch icon for the web page, may be NULL.
203e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Must decode via {@link BitmapFactory#decodeByteArray}.
204e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <p>Type: BLOB (image)</p>
205e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
206e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String TOUCH_ICON = "touch_icon";
207e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
208e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
2094d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    interface HistoryColumns {
2104d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
2114d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The date the item was last visited, in milliseconds since the epoch.
2124d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <p>Type: INTEGER (date in milliseconds since January 1, 1970)</p>
2134d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
2144d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String DATE_LAST_VISITED = "date";
2154d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
2164d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
2174d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The number of times the item has been visited.
2184d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <p>Type: INTEGER</p>
2194d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
2204d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String VISITS = "visits";
2214d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
222b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
223b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
224b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
2254d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String USER_ENTERED = "user_entered";
2264d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    }
2274d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
228b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    interface ImageMappingColumns {
229b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
230b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The ID of the image in Images. One image can map onto the multiple URLs.
231b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <P>Type: INTEGER (long)</P>
232b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
233b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String IMAGE_ID = "image_id";
234b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
235b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
236b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The URL. The URL can map onto the different type of images.
237b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <P>Type: TEXT (URL)</P>
238b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
239b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String URL = "url";
240b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    }
241b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
242e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
243e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * The bookmarks table, which holds the user's browser bookmarks.
244e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
2454d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final class Bookmarks implements CommonColumns, ImageColumns, SyncColumns {
246e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
247e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * This utility class cannot be instantiated.
248e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
249e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        private Bookmarks() {}
250e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
251e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
252e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The content:// style URI for this table
253e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
254e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "bookmarks");
255e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
256e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
257b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Bookmarks#TYPE} column and indicats the row is a bookmark.
258b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
259b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int BOOKMARK_TYPE_BOOKMARK = 1;
260b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
261b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
262b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Bookmarks#TYPE} column and indicats the row is a folder.
263b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
264b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int BOOKMARK_TYPE_FOLDER = 2;
265b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
266b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
267b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Bookmarks#TYPE} column and indicats the row is the bookmark bar folder.
268b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
269b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int BOOKMARK_TYPE_BOOKMARK_BAR_FOLDER = 3;
270b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
271b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
272b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Bookmarks#TYPE} column and indicats the row is other folder and
273b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
274b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int BOOKMARK_TYPE_OTHER_FOLDER = 4;
275b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
276b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
277b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Bookmarks#TYPE} column and indicats the row is other folder, .
278b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
279b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int BOOKMARK_TYPE_MOBILE_FOLDER = 5;
280b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
281b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
282b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The type of the item.
283b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <P>Type: INTEGER</P>
284b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p>Allowed values are:</p>
285b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p>
286b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <ul>
287b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #BOOKMARK_TYPE_BOOKMARK}</li>
288b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #BOOKMARK_TYPE_FOLDER}</li>
289b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #BOOKMARK_TYPE_BOOKMARK_BAR_FOLDER}</li>
290b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #BOOKMARK_TYPE_OTHER_FOLDER}</li>
291b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #BOOKMARK_TYPE_MOBILE_FOLDER}</li>
292b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * </ul>
293b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * </p>
294b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p> The TYPE_BOOKMARK_BAR_FOLDER, TYPE_OTHER_FOLDER and TYPE_MOBILE_FOLDER
295b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * can not be updated or deleted.</p>
296b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
297b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String TYPE = "type";
298b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
299b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
300e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The content:// style URI for the default folder
301b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
302e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
303e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final Uri CONTENT_URI_DEFAULT_FOLDER =
304e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                Uri.withAppendedPath(CONTENT_URI, "folder");
305e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
306e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
3074d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * Query parameter used to specify an account name
308b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
3094d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
3104d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String PARAM_ACCOUNT_NAME = "acct_name";
3114d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
3124d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
3134d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * Query parameter used to specify an account type
314b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
3154d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
3164d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String PARAM_ACCOUNT_TYPE = "acct_type";
3174d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
3184d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
319e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Builds a URI that points to a specific folder.
320e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @param folderId the ID of the folder to point to
321b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
322e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
323e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final Uri buildFolderUri(long folderId) {
324e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton            return ContentUris.withAppendedId(CONTENT_URI_DEFAULT_FOLDER, folderId);
325e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        }
326e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
327e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
328e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The MIME type of {@link #CONTENT_URI} providing a directory of bookmarks.
329e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
330e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/bookmark";
331e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
332e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
333e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The MIME type of a {@link #CONTENT_URI} of a single bookmark.
334e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
335e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/bookmark";
336e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
337e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
338e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Query parameter to use if you want to see deleted bookmarks that are still
339e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * around on the device and haven't been synced yet.
340e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see #IS_DELETED
341b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
342e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
343e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String QUERY_PARAMETER_SHOW_DELETED = "show_deleted";
344e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
345e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
346e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * Flag indicating if an item is a folder or bookmark. Non-zero values indicate
347e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * a folder and zero indicates a bookmark.
348e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER (boolean)</P>
349b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
350e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
351e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String IS_FOLDER = "folder";
352e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
353e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
354e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The ID of the parent folder. ID 0 is the root folder.
355e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER (reference to item in the same table)</P>
356e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
357e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String PARENT = "parent";
358e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
359e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
3604d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The source ID for an item's parent. Read-only.
3614d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * @see #PARENT
362b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
3634d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
3644d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String PARENT_SOURCE_ID = "parent_source";
3654d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
3664d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
367e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The position of the bookmark in relation to it's siblings that share the same
368e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * {@link #PARENT}. May be negative.
369e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER</P>
370b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
371e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
372e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String POSITION = "position";
373e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
374e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
375e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The item that the bookmark should be inserted after.
376e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * May be negative.
377e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER</P>
378b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
379e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
380e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String INSERT_AFTER = "insert_after";
381e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
382e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
3834d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The source ID for the item that the bookmark should be inserted after. Read-only.
3844d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * May be negative.
3854d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <P>Type: INTEGER</P>
3864d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * @see #INSERT_AFTER
387b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
3884d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
3894d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String INSERT_AFTER_SOURCE_ID = "insert_after_source";
3904d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
3914d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
392e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * A flag to indicate if an item has been deleted. Queries will not return deleted
393e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * entries unless you add the {@link #QUERY_PARAMETER_SHOW_DELETED} query paramter
394e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * to the URI when performing your query.
395e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <p>Type: INTEGER (non-zero if the item has been deleted, zero if it hasn't)
396e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see #QUERY_PARAMETER_SHOW_DELETED
397b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
398e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
399e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String IS_DELETED = "deleted";
400e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
401e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
402e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
4034d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * Read-only table that lists all the accounts that are used to provide bookmarks.
404b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
405e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
4064d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final class Accounts {
407e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4084d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * Directory under {@link Bookmarks#CONTENT_URI}
409e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4104d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final Uri CONTENT_URI =
4114d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton                AUTHORITY_URI.buildUpon().appendPath("accounts").build();
412e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
413e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4144d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The name of the account instance to which this row belongs, which when paired with
4154d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * {@link #ACCOUNT_TYPE} identifies a specific account.
4164d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <P>Type: TEXT</P>
417e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4184d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String ACCOUNT_NAME = "account_name";
419e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
420e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4214d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The type of account to which this row belongs, which when paired with
4224d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * {@link #ACCOUNT_NAME} identifies a specific account.
4234d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <P>Type: TEXT</P>
424e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4254d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String ACCOUNT_TYPE = "account_type";
4262b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck
4272b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck        /**
4282b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck         * The ID of the account's root folder. This will be the ID of the folder
4292b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck         * returned when querying {@link Bookmarks#CONTENT_URI_DEFAULT_FOLDER}.
4302b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck         * <P>Type: INTEGER</P>
4312b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck         */
4322b3fcfb4cf1d116d1caa20a03f9a948bc680a056John Reck        public static final String ROOT_ID = "root_id";
4334d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    }
434e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
4354d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    /**
4364d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * The history table, which holds the browsing history.
4374d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     */
4384d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final class History implements CommonColumns, HistoryColumns, ImageColumns {
439e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4404d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * This utility class cannot be instantiated.
441e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4424d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        private History() {}
443e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
444e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4454d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The content:// style URI for this table
446e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4474d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "history");
448e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
449e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4504d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The MIME type of {@link #CONTENT_URI} providing a directory of browser history items.
451e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4524d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/browser-history";
453e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
454e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
4554d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The MIME type of a {@link #CONTENT_URI} of a single browser history item.
456e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
4574d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/browser-history";
458e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
459e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
460e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
461e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * The search history table.
462e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * @hide
463e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
464e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    public static final class Searches {
465e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        private Searches() {}
466e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
467e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
468e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The content:// style URI for this table
469e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
470e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "searches");
471e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
472e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
473e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The MIME type of {@link #CONTENT_URI} providing a directory of browser search items.
474e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
475e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/searches";
476e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
477e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
478e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The MIME type of a {@link #CONTENT_URI} of a single browser search item.
479e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
480e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/searches";
481e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
482e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
483e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The unique ID for a row.
484e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <P>Type: INTEGER (long)</P>
485e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
486e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String _ID = "_id";
487e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
488e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
489e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The user entered search term.
490e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
491e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String SEARCH = "search";
492e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
493e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
494e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The date the search was performed, in milliseconds since the epoch.
495e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * <p>Type: NUMBER (date in milliseconds since January 1, 1970)</p>
496e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
497e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String DATE = "date";
498e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
499e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
500e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    /**
501e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * A table provided for sync adapters to use for storing private sync state data.
502e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     *
503e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     * @see SyncStateContract
504b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
505e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton     */
506e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    public static final class SyncState implements SyncStateContract.Columns {
507e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
508e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * This utility class cannot be instantiated
509e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
510e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        private SyncState() {}
511e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
512e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final String CONTENT_DIRECTORY =
513e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                SyncStateContract.Constants.CONTENT_DIRECTORY;
514e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
515e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
516e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * The content:// style URI for this table
517e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
518e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static final Uri CONTENT_URI =
519e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                Uri.withAppendedPath(AUTHORITY_URI, CONTENT_DIRECTORY);
520e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
521e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
522e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see android.provider.SyncStateContract.Helpers#get
523e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
524e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static byte[] get(ContentProviderClient provider, Account account)
525e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                throws RemoteException {
526e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton            return SyncStateContract.Helpers.get(provider, CONTENT_URI, account);
527e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        }
528e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
529e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
530e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see android.provider.SyncStateContract.Helpers#get
531e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
532e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static Pair<Uri, byte[]> getWithUri(ContentProviderClient provider, Account account)
533e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                throws RemoteException {
534e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton            return SyncStateContract.Helpers.getWithUri(provider, CONTENT_URI, account);
535e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        }
536e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
537e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
538e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see android.provider.SyncStateContract.Helpers#set
539e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
540e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static void set(ContentProviderClient provider, Account account, byte[] data)
541e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton                throws RemoteException {
542e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton            SyncStateContract.Helpers.set(provider, CONTENT_URI, account, data);
543e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        }
544e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton
545e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        /**
546e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         * @see android.provider.SyncStateContract.Helpers#newSetOperation
547e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton         */
548e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        public static ContentProviderOperation newSetOperation(Account account, byte[] data) {
549e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton            return SyncStateContract.Helpers.newSetOperation(CONTENT_URI, account, data);
550e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton        }
551e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton    }
5524d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
5534d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    /**
554b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * <p>
555b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * Stores images for URLs.
556b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * </p>
557b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * <p>
558b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * The rows in this table can not be updated since there might have multiple URLs mapping onto
559b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * the same image. If you want to update a URL's image, you need to add the new image in this
560b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * table, then update the mapping onto the added image.
561b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * </p>
562b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * <p>
563b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * Every image should be at least associated with one URL, otherwise it will be removed after a
564b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * while.
565b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * </p>
5664d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     */
5674d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final class Images implements ImageColumns {
5684d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
5694d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * This utility class cannot be instantiated
5704d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
5714d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        private Images() {}
5724d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
5734d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
5744d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The content:// style URI for this table
5754d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
5764d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "images");
5774d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
5784d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
579b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The MIME type of {@link #CONTENT_URI} providing a directory of images.
580b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
581b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/images";
582b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
583b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
584b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The MIME type of a {@link #CONTENT_URI} of a single image.
585b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
586b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/images";
587b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
588b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
589b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Images#TYPE} column and indicats the row is a favicon.
590b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
591b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int IMAGE_TYPE_FAVICON = 1;
592b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
593b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
594b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Images#TYPE} column and indicats the row is a precomposed touch icon.
595b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
596b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int IMAGE_TYPE_PRECOMPOSED_TOUCH_ICON = 2;
597b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
598b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
599b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * Used in {@link Images#TYPE} column and indicats the row is a touch icon.
600b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
601b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final int IMAGE_TYPE_TOUCH_ICON = 4;
602b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
603b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
604b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The type of item in the table.
605b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <P>Type: INTEGER</P>
606b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p>Allowed values are:</p>
607b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p>
608b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <ul>
609b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #IMAGE_TYPE_FAVICON}</li>
610b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #IMAGE_TYPE_PRECOMPOSED_TOUCH_ICON}</li>
611b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <li>{@link #IMAGE_TYPE_TOUCH_ICON}</li>
612b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * </ul>
613b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * </p>
614b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
615b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String TYPE = "type";
616b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
617b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
618b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The image data.
619b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * <p>Type: BLOB (image)</p>
620b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
621b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String DATA = "data";
622b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
623b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
6244d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The URL the images came from.
6254d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <P>Type: TEXT (URL)</P>
626b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * @hide
6274d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
6284d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String URL = "url_key";
6294d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    }
6304d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
6314d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    /**
632b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * <p>
633b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * A table that stores the mappings between the image and the URL.
634b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * </p>
635b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * <p>
636b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * Deleting or Updating a mapping might also deletes the mapped image if there is no other URL
637b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * maps onto it.
638b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * </p>
639b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     */
640b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    public static final class ImageMappings implements ImageMappingColumns {
641b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
642b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * This utility class cannot be instantiated
643b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
644b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        private ImageMappings() {}
645b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
646b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
647b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The content:// style URI for this table
648b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
649b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "image_mappings");
650b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
651b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
652b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The MIME type of {@link #CONTENT_URI} providing a directory of image mappings.
653b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
654b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/image_mappings";
655b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
656b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        /**
657b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         * The MIME type of a {@link #CONTENT_URI} of a single image mapping.
658b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai         */
659b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/image_mappings";
660b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    }
661b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai
662b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai    /**
6634d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * A combined view of bookmarks and history. All bookmarks in all folders are included and
6644d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     * no folders are included.
665b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
6664d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton     */
6674d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    public static final class Combined implements CommonColumns, HistoryColumns, ImageColumns {
6684d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
6694d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * This utility class cannot be instantiated
6704d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
6714d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        private Combined() {}
6724d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
6734d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
6744d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * The content:// style URI for this table
6754d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
6764d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "combined");
6774d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton
6784d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        /**
6794d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * Flag indicating that an item is a bookmark. A value of 1 indicates a bookmark, a value
6804d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * of 0 indicates a history item.
6814d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         * <p>Type: INTEGER (boolean)</p>
6824d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton         */
6834d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton        public static final String IS_BOOKMARK = "bookmark";
6844d67ac248fd64492c71327f829b54235f8a4320cJeff Hamilton    }
685a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
686a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton    /**
687a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton     * A table that stores settings specific to the browser. Only support query and insert.
688b5f15e7fd9a674875053aa250b57144cf566ee4dTao Bai     * @hide
689a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton     */
690a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton    public static final class Settings {
691a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
692a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * This utility class cannot be instantiated
693a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
694a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        private Settings() {}
695a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
696a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
697a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * The content:// style URI for this table
698a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
699a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "settings");
700a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
701a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
702a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * Key for a setting value.
703a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
704a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        public static final String KEY = "key";
705a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
706a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
707a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * Value for a setting.
708a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
709a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        public static final String VALUE = "value";
710a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
711a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
712a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * If set to non-0 the user has opted into bookmark sync.
713a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
714a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        public static final String KEY_SYNC_ENABLED = "sync_enabled";
715a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
716a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
717a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * Returns true if bookmark sync is enabled
718a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
719a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        static public boolean isSyncEnabled(Context context) {
720a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            Cursor cursor = null;
721a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            try {
722a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                cursor = context.getContentResolver().query(CONTENT_URI, new String[] { VALUE },
723a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                        KEY + "=?", new String[] { KEY_SYNC_ENABLED }, null);
724a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                if (cursor == null || !cursor.moveToFirst()) {
725a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                    return false;
726a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                }
727a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                return cursor.getInt(0) != 0;
728a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            } finally {
729a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton                if (cursor != null) cursor.close();
730a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            }
731a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        }
732a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton
733a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        /**
734a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         * Sets the bookmark sync enabled setting.
735a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton         */
736a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        static public void setSyncEnabled(Context context, boolean enabled) {
737a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            ContentValues values = new ContentValues();
738a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            values.put(KEY, KEY_SYNC_ENABLED);
739a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            values.put(VALUE, enabled ? 1 : 0);
740a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton            context.getContentResolver().insert(CONTENT_URI, values);
741a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton        }
742a2f926607514205adff28f19546bce21a300fc8dJeff Hamilton    }
743e5d0a83b12a06ff5dcb3687ed892764caa75f66bJeff Hamilton}
744