1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.launcher2; 18 19 import android.provider.BaseColumns; 20 import android.net.Uri; 21 22 /** 23 * Settings related utilities. 24 */ 25 class LauncherSettings { 26 static interface BaseLauncherColumns extends BaseColumns { 27 /** 28 * Descriptive name of the gesture that can be displayed to the user. 29 * <P>Type: TEXT</P> 30 */ 31 static final String TITLE = "title"; 32 33 /** 34 * The Intent URL of the gesture, describing what it points to. This 35 * value is given to {@link android.content.Intent#parseUri(String, int)} to create 36 * an Intent that can be launched. 37 * <P>Type: TEXT</P> 38 */ 39 static final String INTENT = "intent"; 40 41 /** 42 * The type of the gesture 43 * 44 * <P>Type: INTEGER</P> 45 */ 46 static final String ITEM_TYPE = "itemType"; 47 48 /** 49 * The gesture is an application 50 */ 51 static final int ITEM_TYPE_APPLICATION = 0; 52 53 /** 54 * The gesture is an application created shortcut 55 */ 56 static final int ITEM_TYPE_SHORTCUT = 1; 57 58 /** 59 * The icon type. 60 * <P>Type: INTEGER</P> 61 */ 62 static final String ICON_TYPE = "iconType"; 63 64 /** 65 * The icon is a resource identified by a package name and an integer id. 66 */ 67 static final int ICON_TYPE_RESOURCE = 0; 68 69 /** 70 * The icon is a bitmap. 71 */ 72 static final int ICON_TYPE_BITMAP = 1; 73 74 /** 75 * The icon package name, if icon type is ICON_TYPE_RESOURCE. 76 * <P>Type: TEXT</P> 77 */ 78 static final String ICON_PACKAGE = "iconPackage"; 79 80 /** 81 * The icon resource id, if icon type is ICON_TYPE_RESOURCE. 82 * <P>Type: TEXT</P> 83 */ 84 static final String ICON_RESOURCE = "iconResource"; 85 86 /** 87 * The custom icon bitmap, if icon type is ICON_TYPE_BITMAP. 88 * <P>Type: BLOB</P> 89 */ 90 static final String ICON = "icon"; 91 } 92 93 /** 94 * Favorites. 95 */ 96 static final class Favorites implements BaseLauncherColumns { 97 /** 98 * The content:// style URL for this table 99 */ 100 static final Uri CONTENT_URI = Uri.parse("content://" + 101 LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES + 102 "?" + LauncherProvider.PARAMETER_NOTIFY + "=true"); 103 104 /** 105 * The content:// style URL for this table. When this Uri is used, no notification is 106 * sent if the content changes. 107 */ 108 static final Uri CONTENT_URI_NO_NOTIFICATION = Uri.parse("content://" + 109 LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES + 110 "?" + LauncherProvider.PARAMETER_NOTIFY + "=false"); 111 112 /** 113 * The content:// style URL for a given row, identified by its id. 114 * 115 * @param id The row id. 116 * @param notify True to send a notification is the content changes. 117 * 118 * @return The unique content URL for the specified row. 119 */ getContentUri(long id, boolean notify)120 static Uri getContentUri(long id, boolean notify) { 121 return Uri.parse("content://" + LauncherProvider.AUTHORITY + 122 "/" + LauncherProvider.TABLE_FAVORITES + "/" + id + "?" + 123 LauncherProvider.PARAMETER_NOTIFY + "=" + notify); 124 } 125 126 /** 127 * The container holding the favorite 128 * <P>Type: INTEGER</P> 129 */ 130 static final String CONTAINER = "container"; 131 132 /** 133 * The icon is a resource identified by a package name and an integer id. 134 */ 135 static final int CONTAINER_DESKTOP = -100; 136 137 /** 138 * The screen holding the favorite (if container is CONTAINER_DESKTOP) 139 * <P>Type: INTEGER</P> 140 */ 141 static final String SCREEN = "screen"; 142 143 /** 144 * The X coordinate of the cell holding the favorite 145 * (if container is CONTAINER_DESKTOP or CONTAINER_DOCK) 146 * <P>Type: INTEGER</P> 147 */ 148 static final String CELLX = "cellX"; 149 150 /** 151 * The Y coordinate of the cell holding the favorite 152 * (if container is CONTAINER_DESKTOP) 153 * <P>Type: INTEGER</P> 154 */ 155 static final String CELLY = "cellY"; 156 157 /** 158 * The X span of the cell holding the favorite 159 * <P>Type: INTEGER</P> 160 */ 161 static final String SPANX = "spanX"; 162 163 /** 164 * The Y span of the cell holding the favorite 165 * <P>Type: INTEGER</P> 166 */ 167 static final String SPANY = "spanY"; 168 169 /** 170 * The favorite is a user created folder 171 */ 172 static final int ITEM_TYPE_USER_FOLDER = 2; 173 174 /** 175 * The favorite is a live folder 176 */ 177 static final int ITEM_TYPE_LIVE_FOLDER = 3; 178 179 /** 180 * The favorite is a widget 181 */ 182 static final int ITEM_TYPE_APPWIDGET = 4; 183 184 /** 185 * The favorite is a clock 186 */ 187 static final int ITEM_TYPE_WIDGET_CLOCK = 1000; 188 189 /** 190 * The favorite is a search widget 191 */ 192 static final int ITEM_TYPE_WIDGET_SEARCH = 1001; 193 194 /** 195 * The favorite is a photo frame 196 */ 197 static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002; 198 199 /** 200 * The appWidgetId of the widget 201 * 202 * <P>Type: INTEGER</P> 203 */ 204 static final String APPWIDGET_ID = "appWidgetId"; 205 206 /** 207 * Indicates whether this favorite is an application-created shortcut or not. 208 * If the value is 0, the favorite is not an application-created shortcut, if the 209 * value is 1, it is an application-created shortcut. 210 * <P>Type: INTEGER</P> 211 */ 212 @Deprecated 213 static final String IS_SHORTCUT = "isShortcut"; 214 215 /** 216 * The URI associated with the favorite. It is used, for instance, by 217 * live folders to find the content provider. 218 * <P>Type: TEXT</P> 219 */ 220 static final String URI = "uri"; 221 222 /** 223 * The display mode if the item is a live folder. 224 * <P>Type: INTEGER</P> 225 * 226 * @see android.provider.LiveFolders#DISPLAY_MODE_GRID 227 * @see android.provider.LiveFolders#DISPLAY_MODE_LIST 228 */ 229 static final String DISPLAY_MODE = "displayMode"; 230 } 231 } 232