Home | History | Annotate | Download | only in launcher2
      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 profile id of the item in the cell.
    172          * <P>
    173          * Type: INTEGER
    174          * </P>
    175          */
    176         static final String PROFILE_ID = "profileId";
    177 
    178         /**
    179          * The favorite is a user created folder
    180          */
    181         static final int ITEM_TYPE_FOLDER = 2;
    182 
    183         /**
    184         * The favorite is a live folder
    185         *
    186         * Note: live folders can no longer be added to Launcher, and any live folders which
    187         * exist within the launcher database will be ignored when loading.  That said, these
    188         * entries in the database may still exist, and are not automatically stripped.
    189         */
    190         static final int ITEM_TYPE_LIVE_FOLDER = 3;
    191 
    192         /**
    193          * The favorite is a widget
    194          */
    195         static final int ITEM_TYPE_APPWIDGET = 4;
    196 
    197         /**
    198          * The favorite is a clock
    199          */
    200         static final int ITEM_TYPE_WIDGET_CLOCK = 1000;
    201 
    202         /**
    203          * The favorite is a search widget
    204          */
    205         static final int ITEM_TYPE_WIDGET_SEARCH = 1001;
    206 
    207         /**
    208          * The favorite is a photo frame
    209          */
    210         static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002;
    211 
    212         /**
    213          * The appWidgetId of the widget
    214          *
    215          * <P>Type: INTEGER</P>
    216          */
    217         static final String APPWIDGET_ID = "appWidgetId";
    218 
    219         /**
    220          * Indicates whether this favorite is an application-created shortcut or not.
    221          * If the value is 0, the favorite is not an application-created shortcut, if the
    222          * value is 1, it is an application-created shortcut.
    223          * <P>Type: INTEGER</P>
    224          */
    225         @Deprecated
    226         static final String IS_SHORTCUT = "isShortcut";
    227 
    228         /**
    229          * The URI associated with the favorite. It is used, for instance, by
    230          * live folders to find the content provider.
    231          * <P>Type: TEXT</P>
    232          */
    233         static final String URI = "uri";
    234 
    235         /**
    236          * The display mode if the item is a live folder.
    237          * <P>Type: INTEGER</P>
    238          *
    239          * @see android.provider.LiveFolders#DISPLAY_MODE_GRID
    240          * @see android.provider.LiveFolders#DISPLAY_MODE_LIST
    241          */
    242         static final String DISPLAY_MODE = "displayMode";
    243     }
    244 }
    245