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.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          */
    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