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.net.Uri; 20 import android.provider.BaseColumns; 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 */ 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 static final int CONTAINER_HOTSEAT = -101; 137 138 /** 139 * The screen holding the favorite (if container is CONTAINER_DESKTOP) 140 * <P>Type: INTEGER</P> 141 */ 142 static final String SCREEN = "screen"; 143 144 /** 145 * The X coordinate of the cell holding the favorite 146 * (if container is CONTAINER_HOTSEAT or CONTAINER_HOTSEAT) 147 * <P>Type: INTEGER</P> 148 */ 149 static final String CELLX = "cellX"; 150 151 /** 152 * The Y coordinate of the cell holding the favorite 153 * (if container is CONTAINER_DESKTOP) 154 * <P>Type: INTEGER</P> 155 */ 156 static final String CELLY = "cellY"; 157 158 /** 159 * The X span of the cell holding the favorite 160 * <P>Type: INTEGER</P> 161 */ 162 static final String SPANX = "spanX"; 163 164 /** 165 * The Y span of the cell holding the favorite 166 * <P>Type: INTEGER</P> 167 */ 168 static final String SPANY = "spanY"; 169 170 /** 171 * The favorite is a user created folder 172 */ 173 static final int ITEM_TYPE_FOLDER = 2; 174 175 /** 176 * The favorite is a live folder 177 * 178 * Note: live folders can no longer be added to Launcher, and any live folders which 179 * exist within the launcher database will be ignored when loading. That said, these 180 * entries in the database may still exist, and are not automatically stripped. 181 */ 182 static final int ITEM_TYPE_LIVE_FOLDER = 3; 183 184 /** 185 * The favorite is a widget 186 */ 187 static final int ITEM_TYPE_APPWIDGET = 4; 188 189 /** 190 * The favorite is a clock 191 */ 192 static final int ITEM_TYPE_WIDGET_CLOCK = 1000; 193 194 /** 195 * The favorite is a search widget 196 */ 197 static final int ITEM_TYPE_WIDGET_SEARCH = 1001; 198 199 /** 200 * The favorite is a photo frame 201 */ 202 static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002; 203 204 /** 205 * The appWidgetId of the widget 206 * 207 * <P>Type: INTEGER</P> 208 */ 209 static final String APPWIDGET_ID = "appWidgetId"; 210 211 /** 212 * Indicates whether this favorite is an application-created shortcut or not. 213 * If the value is 0, the favorite is not an application-created shortcut, if the 214 * value is 1, it is an application-created shortcut. 215 * <P>Type: INTEGER</P> 216 */ 217 @Deprecated 218 static final String IS_SHORTCUT = "isShortcut"; 219 220 /** 221 * The URI associated with the favorite. It is used, for instance, by 222 * live folders to find the content provider. 223 * <P>Type: TEXT</P> 224 */ 225 static final String URI = "uri"; 226 227 /** 228 * The display mode if the item is a live folder. 229 * <P>Type: INTEGER</P> 230 * 231 * @see android.provider.LiveFolders#DISPLAY_MODE_GRID 232 * @see android.provider.LiveFolders#DISPLAY_MODE_LIST 233 */ 234 static final String DISPLAY_MODE = "displayMode"; 235 } 236 } 237