160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev/*
260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Copyright (C) 2012 The Android Open Source Project
360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev *
460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Licensed under the Apache License, Version 2.0 (the "License");
560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * you may not use this file except in compliance with the License.
660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * You may obtain a copy of the License at
760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev *
860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev *      http://www.apache.org/licenses/LICENSE-2.0
960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev *
1060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Unless required by applicable law or agreed to in writing, software
1160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * distributed under the License is distributed on an "AS IS" BASIS,
1260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * See the License for the specific language governing permissions and
1460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * limitations under the License.
1560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev */
1660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
1760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeevpackage com.android.providers.partnerbookmarks;
1860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
1960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeevimport android.content.ContentUris;
2060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeevimport android.net.Uri;
2160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
2260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev/**
2360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * <p>
2460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * The contract between the partner bookmarks provider and applications.
2560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Contains the definition for the supported URIs and columns.
2660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * </p>
2760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * <p>
2860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Authority URI: content://com.android.partnerbookmarks
2960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * </p>
3060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * <p>
3160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * Partner bookmarks URI: content://com.android.partnerbookmarks/bookmarks
3260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * </p>
3360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * <p>
3460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * If the provider is found, and the set of bookmarks is non-empty, exactly one
3560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * top-level folder with “parent” set to {@link #BOOKMARK_PARENT_ROOT_ID}
3660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * shall be provided; more than one bookmark with “parent” set to
3760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * {@link #BOOKMARK_PARENT_ROOT_ID} will cause the import to fail.
3860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev * </p>
3960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev */
4060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeevpublic class PartnerBookmarksContract {
4160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    /** The authority for the partner bookmarks provider */
4260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    public static final String AUTHORITY = "com.android.partnerbookmarks";
4360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
4460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    /** A content:// style uri to the authority for the partner bookmarks provider */
4560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
4660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
4760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    /**
4860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     * A parameter for use when querying any table that allows specifying
4960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     * a limit on the number of rows returned.
5060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     */
5160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    public static final String PARAM_LIMIT = "limit";
5260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
5360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    /**
5460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     * A parameter for use when querying any table that allows specifying
5560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     * grouping of the rows returned.
5660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     */
5760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    public static final String PARAM_GROUP_BY = "groupBy";
5860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
5960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    /**
6060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     * The bookmarks table, which holds the partner bookmarks.
6160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev     */
6260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    public static final class Bookmarks {
6360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
6460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * This utility class cannot be instantiated.
6560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
6660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        private Bookmarks() {}
6760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
6860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
6960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The content:// style URI for this table
7060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
7160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "bookmarks");
7260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
7360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
7460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The content:// style URI for the root partner bookmarks folder
7560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
7660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final Uri CONTENT_URI_PARTNER_BOOKMARKS_FOLDER =
7760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev                Uri.withAppendedPath(CONTENT_URI, "folder");
7860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
7960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
8060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Builds a URI that points to a specific folder.
8160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * @param folderId the ID of the folder to point to
8260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
8360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final Uri buildFolderUri(long folderId) {
8460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev            return ContentUris.withAppendedId(CONTENT_URI_PARTNER_BOOKMARKS_FOLDER, folderId);
8560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        }
8660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
8760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
8860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The MIME type of {@link #CONTENT_URI} providing a directory of bookmarks.
8960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
9060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/partnerbookmark";
9160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
9260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
9360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The MIME type of a {@link #CONTENT_URI} of a single bookmark.
9460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
9560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/partnerbookmark";
9660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
9760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
9860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Used in {@link #TYPE} column and indicates the row is a bookmark.
9960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
10060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final int BOOKMARK_TYPE_BOOKMARK = 1;
10160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
10260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
10360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Used in {@link #TYPE} column and indicates the row is a folder.
10460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
10560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final int BOOKMARK_TYPE_FOLDER = 2;
10660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
10760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
10860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Used in {@link #PARENT} column and indicates the row doesn't have a parent.
10960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
11060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final int BOOKMARK_PARENT_ROOT_ID = 0;
11160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
11260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
11360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The type of the item.
11460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: INTEGER</p>
11560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Allowed values are:</p>
11660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>
11760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <ul>
11860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <li>{@link #BOOKMARK_TYPE_BOOKMARK}</li>
11960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <li>{@link #BOOKMARK_TYPE_FOLDER}</li>
12060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * </ul>
12160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * </p>
12260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
12360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String TYPE = "type";
12460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
12560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
12660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The unique ID for a row.  Cannot be BOOKMARK_PARENT_ROOT_ID.
12760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: INTEGER (long)</p>
12860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
12960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String ID = "_id";
13060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
13160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
13260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * This column is valid when the row is not a folder.
13360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: TEXT (URL)</p>
13460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
13560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String URL = "url";
13660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
13760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
13860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The user visible title.
13960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: TEXT</p>
14060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
14160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String TITLE = "title";
14260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
14360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
14460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The favicon of the bookmark, may be NULL.
14560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Must decode via {@link BitmapFactory#decodeByteArray}.
14660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: BLOB (image)</p>
14760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
14860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String FAVICON = "favicon";
14960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
15060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
15160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The touch icon for the web page, may be NULL.
15260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * Must decode via {@link BitmapFactory#decodeByteArray}.
15360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: BLOB (image)</p>
15460c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
15560c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String TOUCHICON = "touchicon";
15660c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev
15760c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        /**
15860c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * The ID of the parent folder. BOOKMARK_PARENT_ROOT_ID is the root folder.
15960c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         * <p>Type: INTEGER (long) (reference to item in the same table)</p>
16060c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev         */
16160c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev        public static final String PARENT = "parent";
16260c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev    }
16360c131771453fcb65e03ae77f8a378bfa48e6498Ruslan Abdikeev}
164