131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/*
231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project *
431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * you may not use this file except in compliance with the License.
631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * You may obtain a copy of the License at
731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project *
831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project *
1031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * See the License for the specific language governing permissions and
1431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * limitations under the License.
1531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */
1631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
17325dc23624160689e59fbac708cf6f222b20d025Daniel Sandlerpackage com.android.launcher3;
1831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
19d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyalimport android.content.ContentResolver;
20c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyalimport android.database.sqlite.SQLiteDatabase;
2131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.net.Uri;
22d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyalimport android.os.Bundle;
23df2cc41acbfacd576f99483a4af1cda32ebd3d09Adam Cohenimport android.provider.BaseColumns;
2431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
2518b640c3710723df8a8528a667c373474e0a06eeSunny Goyalimport com.android.launcher3.config.ProviderConfig;
2618b640c3710723df8a8528a667c373474e0a06eeSunny Goyal
2731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/**
2831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Settings related utilities.
2931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */
303f471440a8b6b71d4c15501a96befd3b715c9e8fHyunyoung Songpublic class LauncherSettings {
311ada10d5950f45aba998a7722bfde2e529201f48Chris Wren    /** Columns required on table staht will be subject to backup and restore. */
321ada10d5950f45aba998a7722bfde2e529201f48Chris Wren    static interface ChangeLogColumns extends BaseColumns {
331ada10d5950f45aba998a7722bfde2e529201f48Chris Wren        /**
341ada10d5950f45aba998a7722bfde2e529201f48Chris Wren         * The time of the last update to this row.
351ada10d5950f45aba998a7722bfde2e529201f48Chris Wren         * <P>Type: INTEGER</P>
361ada10d5950f45aba998a7722bfde2e529201f48Chris Wren         */
372fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String MODIFIED = "modified";
381ada10d5950f45aba998a7722bfde2e529201f48Chris Wren    }
391ada10d5950f45aba998a7722bfde2e529201f48Chris Wren
401ada10d5950f45aba998a7722bfde2e529201f48Chris Wren    static interface BaseLauncherColumns extends ChangeLogColumns {
4173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
4273b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * Descriptive name of the gesture that can be displayed to the user.
4373b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: TEXT</P>
4473b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
452fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String TITLE = "title";
4673b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
4731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
4873b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The Intent URL of the gesture, describing what it points to. This
491ce1a24cba4dc41bccfeab6fccb2f3355423841aRomain Guy         * value is given to {@link android.content.Intent#parseUri(String, int)} to create
5073b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * an Intent that can be launched.
5173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: TEXT</P>
5273b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
5318b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String INTENT = "intent";
5473b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
5573b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
5673b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The type of the gesture
5773b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         *
5873b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: INTEGER</P>
5973b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
602fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String ITEM_TYPE = "itemType";
6173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
6273b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
6373b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The gesture is an application
6473b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
652fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final int ITEM_TYPE_APPLICATION = 0;
6673b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
6773b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
6873b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The gesture is an application created shortcut
6973b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
702fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final int ITEM_TYPE_SHORTCUT = 1;
7173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
7273b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
73eb4b79935e9f75dda72e4953f45e616e252d7b03Sunny Goyal         * The icon package name in Intent.ShortcutIconResource
7473b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: TEXT</P>
7573b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
762fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String ICON_PACKAGE = "iconPackage";
7773b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
7873b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
79eb4b79935e9f75dda72e4953f45e616e252d7b03Sunny Goyal         * The icon resource name in Intent.ShortcutIconResource
8073b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: TEXT</P>
8173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
822fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String ICON_RESOURCE = "iconResource";
8373b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
8473b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        /**
85eb4b79935e9f75dda72e4953f45e616e252d7b03Sunny Goyal         * The custom icon bitmap.
8673b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * <P>Type: BLOB</P>
8773b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         */
882fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String ICON = "icon";
8973b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy    }
9073b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy
9173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy    /**
92dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen     * Workspace Screens.
93dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen     *
94dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen     * Tracks the order of workspace screens.
95dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen     */
9618b640c3710723df8a8528a667c373474e0a06eeSunny Goyal    public static final class WorkspaceScreens implements ChangeLogColumns {
9718b640c3710723df8a8528a667c373474e0a06eeSunny Goyal
9818b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String TABLE_NAME = "workspaceScreens";
9918b640c3710723df8a8528a667c373474e0a06eeSunny Goyal
100dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen        /**
101dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen         * The content:// style URL for this table
102dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen         */
103f076eae0cab10f035f7b187c72a680cd220acf1bSunny Goyal        public static final Uri CONTENT_URI = Uri.parse("content://" +
10418b640c3710723df8a8528a667c373474e0a06eeSunny Goyal                ProviderConfig.AUTHORITY + "/" + TABLE_NAME);
105dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen
106dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen        /**
107dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen         * The rank of this screen -- ie. how it is ordered relative to the other screens.
108dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen         * <P>Type: INTEGER</P>
109dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen         */
11018b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String SCREEN_RANK = "screenRank";
111dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen    }
112dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen
113dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen    /**
11493c45765cc5f4dbc0f1742a70854845f876c7ddcBjorn Bringert     * Favorites.
11573b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy     */
1163f471440a8b6b71d4c15501a96befd3b715c9e8fHyunyoung Song    public static final class Favorites implements BaseLauncherColumns {
11718b640c3710723df8a8528a667c373474e0a06eeSunny Goyal
11818b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String TABLE_NAME = "favorites";
11918b640c3710723df8a8528a667c373474e0a06eeSunny Goyal
12031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
12173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The content:// style URL for this table
12231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
12318b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final Uri CONTENT_URI = Uri.parse("content://" +
12418b640c3710723df8a8528a667c373474e0a06eeSunny Goyal                ProviderConfig.AUTHORITY + "/" + TABLE_NAME);
12531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
12631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
12773b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * The content:// style URL for a given row, identified by its id.
12873b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         *
12973b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * @param id The row id.
13073b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         *
13173b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy         * @return The unique content URL for the specified row.
13231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
133e5bb705fb79f18df8680958dcf2c5460e16c90b6Sunny Goyal        public static Uri getContentUri(long id) {
13418b640c3710723df8a8528a667c373474e0a06eeSunny Goyal            return Uri.parse("content://" + ProviderConfig.AUTHORITY +
13518b640c3710723df8a8528a667c373474e0a06eeSunny Goyal                    "/" + TABLE_NAME + "/" + id);
13673b979d8c141c7ceac82dad7c5b271a6a42afa67Romain Guy        }
13731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
13831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
13931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The container holding the favorite
14031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
14131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
14218b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String CONTAINER = "container";
14331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
14431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
14531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The icon is a resource identified by a package name and an integer id.
14631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
14718b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final int CONTAINER_DESKTOP = -100;
14818b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final int CONTAINER_HOTSEAT = -101;
14931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
150ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler        static final String containerToString(int container) {
151ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler            switch (container) {
152ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler                case CONTAINER_DESKTOP: return "desktop";
153ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler                case CONTAINER_HOTSEAT: return "hotseat";
154ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler                default: return String.valueOf(container);
155ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler            }
156ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler        }
157ab5fa3a06ad7203a7bdab899f1951d9e9dc92d5fDan Sandler
15831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
15931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The screen holding the favorite (if container is CONTAINER_DESKTOP)
16031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
16131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
16218b640c3710723df8a8528a667c373474e0a06eeSunny Goyal        public static final String SCREEN = "screen";
16331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
16431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
16531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The X coordinate of the cell holding the favorite
166c51934bfdfed6a5011c6d6c5b7b70f2d75613d41Adam Cohen         * (if container is CONTAINER_HOTSEAT or CONTAINER_HOTSEAT)
16731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
16831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
1692fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String CELLX = "cellX";
17031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
17131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
17231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The Y coordinate of the cell holding the favorite
17331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * (if container is CONTAINER_DESKTOP)
17431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
17531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
1762fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String CELLY = "cellY";
17731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
17831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
17931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The X span of the cell holding the favorite
18031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
18131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
1822fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String SPANX = "spanX";
18331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
18431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
18531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The Y span of the cell holding the favorite
18631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
18731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
1882fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String SPANY = "spanY";
18931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
19031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
191ed13187a745866483139e2878037e1f8427ce567Kenny Guy         * The profile id of the item in the cell.
192ed13187a745866483139e2878037e1f8427ce567Kenny Guy         * <P>
193ed13187a745866483139e2878037e1f8427ce567Kenny Guy         * Type: INTEGER
194ed13187a745866483139e2878037e1f8427ce567Kenny Guy         * </P>
195ed13187a745866483139e2878037e1f8427ce567Kenny Guy         */
1962fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String PROFILE_ID = "profileId";
197ed13187a745866483139e2878037e1f8427ce567Kenny Guy
198ed13187a745866483139e2878037e1f8427ce567Kenny Guy        /**
19931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * The favorite is a user created folder
20031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
2012fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final int ITEM_TYPE_FOLDER = 2;
20231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
20331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
2047376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project         * The favorite is a widget
20531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
2063f471440a8b6b71d4c15501a96befd3b715c9e8fHyunyoung Song        public static final int ITEM_TYPE_APPWIDGET = 4;
20731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
20831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        /**
2095940042d39b576553c2499bcf3d0641281e6ad52Adam Cohen         * The favorite is a custom widget provided by the launcher
2105940042d39b576553c2499bcf3d0641281e6ad52Adam Cohen         */
2113f471440a8b6b71d4c15501a96befd3b715c9e8fHyunyoung Song        public static final int ITEM_TYPE_CUSTOM_APPWIDGET = 5;
2125940042d39b576553c2499bcf3d0641281e6ad52Adam Cohen
2135940042d39b576553c2499bcf3d0641281e6ad52Adam Cohen        /**
214bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham         * The gesture is an application created deep shortcut
215bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham         */
216bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham        public static final int ITEM_TYPE_DEEP_SHORTCUT = 6;
217bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
218bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham        /**
2197376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project         * The appWidgetId of the widget
22031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         *
22131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         * <P>Type: INTEGER</P>
22231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project         */
2232fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String APPWIDGET_ID = "appWidgetId";
224d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren
225d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren        /**
226d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren         * The ComponentName of the widget provider
227d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren         *
228d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren         * <P>Type: STRING</P>
229d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren         */
230d5e66bfca1dc4fdbab7513d88c6568bc4d17bca8Chris Wren        public static final String APPWIDGET_PROVIDER = "appWidgetProvider";
231f4d081107f5984bfb92cb1a627667fea5bf1498cChris Wren
232f4d081107f5984bfb92cb1a627667fea5bf1498cChris Wren        /**
233f4d081107f5984bfb92cb1a627667fea5bf1498cChris Wren         * Boolean indicating that his item was restored and not yet successfully bound.
234f4d081107f5984bfb92cb1a627667fea5bf1498cChris Wren         * <P>Type: INTEGER</P>
235f4d081107f5984bfb92cb1a627667fea5bf1498cChris Wren         */
2362fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String RESTORED = "restored";
23708f7261d11a53ae4b330ad4fa897b8519de3d750Sunny Goyal
23808f7261d11a53ae4b330ad4fa897b8519de3d750Sunny Goyal        /**
23908f7261d11a53ae4b330ad4fa897b8519de3d750Sunny Goyal         * Indicates the position of the item inside an auto-arranged view like folder or hotseat.
24008f7261d11a53ae4b330ad4fa897b8519de3d750Sunny Goyal         * <p>Type: INTEGER</p>
24108f7261d11a53ae4b330ad4fa897b8519de3d750Sunny Goyal         */
2422fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String RANK = "rank";
2435d85c44fd873c740dc191b28424c2ee367d730a2Sunny Goyal
2445d85c44fd873c740dc191b28424c2ee367d730a2Sunny Goyal        /**
2455d85c44fd873c740dc191b28424c2ee367d730a2Sunny Goyal         * Stores general flag based options for {@link ItemInfo}s.
2465d85c44fd873c740dc191b28424c2ee367d730a2Sunny Goyal         * <p>Type: INTEGER</p>
2475d85c44fd873c740dc191b28424c2ee367d730a2Sunny Goyal         */
2482fb2f0bcfcd25eeaf423660fa30be7a2d4ace5b7Sunny Goyal        public static final String OPTIONS = "options";
249c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal
250c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal        public static void addTableToDb(SQLiteDatabase db, long myProfileId, boolean optional) {
251c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal            String ifNotExists = optional ? " IF NOT EXISTS " : "";
252c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal            db.execSQL("CREATE TABLE " + ifNotExists + TABLE_NAME + " (" +
253c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "_id INTEGER PRIMARY KEY," +
254c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "title TEXT," +
255c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "intent TEXT," +
256c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "container INTEGER," +
257c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "screen INTEGER," +
258c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "cellX INTEGER," +
259c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "cellY INTEGER," +
260c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "spanX INTEGER," +
261c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "spanY INTEGER," +
262c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "itemType INTEGER," +
263c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "appWidgetId INTEGER NOT NULL DEFAULT -1," +
264c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "iconPackage TEXT," +
265c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "iconResource TEXT," +
266c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "icon BLOB," +
267c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "appWidgetProvider TEXT," +
268c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "modified INTEGER NOT NULL DEFAULT 0," +
269c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "restored INTEGER NOT NULL DEFAULT 0," +
270c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "profileId INTEGER DEFAULT " + myProfileId + "," +
271c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "rank INTEGER NOT NULL DEFAULT 0," +
272c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    "options INTEGER NOT NULL DEFAULT 0" +
273c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal                    ");");
274c190dbfb784c0bca629b6966ce314d735cf98db3Sunny Goyal        }
27531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project    }
2767779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal
2777779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal    /**
2787779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal     * Launcher settings
2797779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal     */
2807779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal    public static final class Settings {
2817779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal
2827779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal        public static final Uri CONTENT_URI = Uri.parse("content://" +
2837779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal                ProviderConfig.AUTHORITY + "/settings");
2847779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal
285d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_CLEAR_EMPTY_DB_FLAG = "clear_empty_db_flag";
286a5c8a9eb666da16bc4c9ea4412868e22ace8d1f0Sunny Goyal        public static final String METHOD_WAS_EMPTY_DB_CREATED = "get_empty_db_flag";
287d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal
288d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_DELETE_EMPTY_FOLDERS = "delete_empty_folders";
289d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal
290d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_NEW_ITEM_ID = "generate_new_item_id";
291d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_NEW_SCREEN_ID = "generate_new_screen_id";
292d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal
293d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_CREATE_EMPTY_DB = "create_empty_db";
294d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_DELETE_DB = "delete_db";
295d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal
296d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static final String METHOD_LOAD_DEFAULT_FAVORITES = "load_default_favorites";
2977779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal
298827cef203f386cb548b98a7fa9888b75478c8e20Tony Wickham        public static final String METHOD_SET_EXTRACTED_COLORS_AND_WALLPAPER_ID =
299827cef203f386cb548b98a7fa9888b75478c8e20Tony Wickham                "set_extracted_colors_and_wallpaper_id_setting";
300827cef203f386cb548b98a7fa9888b75478c8e20Tony Wickham        public static final String EXTRA_EXTRACTED_COLORS = "extra_extractedColors";
301827cef203f386cb548b98a7fa9888b75478c8e20Tony Wickham        public static final String EXTRA_WALLPAPER_ID = "extra_wallpaperId";
302827cef203f386cb548b98a7fa9888b75478c8e20Tony Wickham
3037779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal        public static final String EXTRA_VALUE = "value";
304d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal
305d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        public static Bundle call(ContentResolver cr, String method) {
306d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal            return cr.call(CONTENT_URI, method, null, null);
307d249748abf357925b326d57ab68eb6c2b23c4ef6Sunny Goyal        }
3087779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal    }
30931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project}
310