Home | History | Annotate | Download | only in launcher3
      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.launcher3;
     18 
     19 import android.net.Uri;
     20 import android.provider.BaseColumns;
     21 
     22 /**
     23  * Settings related utilities.
     24  */
     25 class LauncherSettings {
     26     /** Columns required on table staht will be subject to backup and restore. */
     27     static interface ChangeLogColumns extends BaseColumns {
     28         /**
     29          * The time of the last update to this row.
     30          * <P>Type: INTEGER</P>
     31          */
     32         static final String MODIFIED = "modified";
     33     }
     34 
     35     static interface BaseLauncherColumns extends ChangeLogColumns {
     36         /**
     37          * Descriptive name of the gesture that can be displayed to the user.
     38          * <P>Type: TEXT</P>
     39          */
     40         static final String TITLE = "title";
     41 
     42         /**
     43          * The Intent URL of the gesture, describing what it points to. This
     44          * value is given to {@link android.content.Intent#parseUri(String, int)} to create
     45          * an Intent that can be launched.
     46          * <P>Type: TEXT</P>
     47          */
     48         static final String INTENT = "intent";
     49 
     50         /**
     51          * The type of the gesture
     52          *
     53          * <P>Type: INTEGER</P>
     54          */
     55         static final String ITEM_TYPE = "itemType";
     56 
     57         /**
     58          * The gesture is an application
     59          */
     60         static final int ITEM_TYPE_APPLICATION = 0;
     61 
     62         /**
     63          * The gesture is an application created shortcut
     64          */
     65         static final int ITEM_TYPE_SHORTCUT = 1;
     66 
     67         /**
     68          * The icon type.
     69          * <P>Type: INTEGER</P>
     70          */
     71         static final String ICON_TYPE = "iconType";
     72 
     73         /**
     74          * The icon is a resource identified by a package name and an integer id.
     75          */
     76         static final int ICON_TYPE_RESOURCE = 0;
     77 
     78         /**
     79          * The icon is a bitmap.
     80          */
     81         static final int ICON_TYPE_BITMAP = 1;
     82 
     83         /**
     84          * The icon package name, if icon type is ICON_TYPE_RESOURCE.
     85          * <P>Type: TEXT</P>
     86          */
     87         static final String ICON_PACKAGE = "iconPackage";
     88 
     89         /**
     90          * The icon resource id, if icon type is ICON_TYPE_RESOURCE.
     91          * <P>Type: TEXT</P>
     92          */
     93         static final String ICON_RESOURCE = "iconResource";
     94 
     95         /**
     96          * The custom icon bitmap, if icon type is ICON_TYPE_BITMAP.
     97          * <P>Type: BLOB</P>
     98          */
     99         static final String ICON = "icon";
    100     }
    101 
    102     /**
    103      * Workspace Screens.
    104      *
    105      * Tracks the order of workspace screens.
    106      */
    107     static final class WorkspaceScreens implements ChangeLogColumns {
    108         /**
    109          * The content:// style URL for this table
    110          */
    111         static final Uri CONTENT_URI = Uri.parse("content://" +
    112                 LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_WORKSPACE_SCREENS +
    113                 "?" + LauncherProvider.PARAMETER_NOTIFY + "=true");
    114 
    115         /**
    116          * The rank of this screen -- ie. how it is ordered relative to the other screens.
    117          * <P>Type: INTEGER</P>
    118          */
    119         static final String SCREEN_RANK = "screenRank";
    120     }
    121 
    122     /**
    123      * Favorites.
    124      */
    125     static final class Favorites implements BaseLauncherColumns {
    126         /**
    127          * The content:// style URL for this table
    128          */
    129         static final Uri CONTENT_URI = Uri.parse("content://" +
    130                 LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES +
    131                 "?" + LauncherProvider.PARAMETER_NOTIFY + "=true");
    132 
    133         /**
    134          * The content:// style URL for this table
    135          */
    136         static final Uri OLD_CONTENT_URI = Uri.parse("content://" +
    137                 LauncherProvider.OLD_AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES +
    138                 "?" + LauncherProvider.PARAMETER_NOTIFY + "=true");
    139 
    140         /**
    141          * The content:// style URL for this table. When this Uri is used, no notification is
    142          * sent if the content changes.
    143          */
    144         static final Uri CONTENT_URI_NO_NOTIFICATION = Uri.parse("content://" +
    145                 LauncherProvider.AUTHORITY + "/" + LauncherProvider.TABLE_FAVORITES +
    146                 "?" + LauncherProvider.PARAMETER_NOTIFY + "=false");
    147 
    148         /**
    149          * The content:// style URL for a given row, identified by its id.
    150          *
    151          * @param id The row id.
    152          * @param notify True to send a notification is the content changes.
    153          *
    154          * @return The unique content URL for the specified row.
    155          */
    156         static Uri getContentUri(long id, boolean notify) {
    157             return Uri.parse("content://" + LauncherProvider.AUTHORITY +
    158                     "/" + LauncherProvider.TABLE_FAVORITES + "/" + id + "?" +
    159                     LauncherProvider.PARAMETER_NOTIFY + "=" + notify);
    160         }
    161 
    162         /**
    163          * The container holding the favorite
    164          * <P>Type: INTEGER</P>
    165          */
    166         static final String CONTAINER = "container";
    167 
    168         /**
    169          * The icon is a resource identified by a package name and an integer id.
    170          */
    171         static final int CONTAINER_DESKTOP = -100;
    172         static final int CONTAINER_HOTSEAT = -101;
    173 
    174         /**
    175          * The screen holding the favorite (if container is CONTAINER_DESKTOP)
    176          * <P>Type: INTEGER</P>
    177          */
    178         static final String SCREEN = "screen";
    179 
    180         /**
    181          * The X coordinate of the cell holding the favorite
    182          * (if container is CONTAINER_HOTSEAT or CONTAINER_HOTSEAT)
    183          * <P>Type: INTEGER</P>
    184          */
    185         static final String CELLX = "cellX";
    186 
    187         /**
    188          * The Y coordinate of the cell holding the favorite
    189          * (if container is CONTAINER_DESKTOP)
    190          * <P>Type: INTEGER</P>
    191          */
    192         static final String CELLY = "cellY";
    193 
    194         /**
    195          * The X span of the cell holding the favorite
    196          * <P>Type: INTEGER</P>
    197          */
    198         static final String SPANX = "spanX";
    199 
    200         /**
    201          * The Y span of the cell holding the favorite
    202          * <P>Type: INTEGER</P>
    203          */
    204         static final String SPANY = "spanY";
    205 
    206         /**
    207          * The favorite is a user created folder
    208          */
    209         static final int ITEM_TYPE_FOLDER = 2;
    210 
    211         /**
    212         * The favorite is a live folder
    213         *
    214         * Note: live folders can no longer be added to Launcher, and any live folders which
    215         * exist within the launcher database will be ignored when loading.  That said, these
    216         * entries in the database may still exist, and are not automatically stripped.
    217         */
    218         static final int ITEM_TYPE_LIVE_FOLDER = 3;
    219 
    220         /**
    221          * The favorite is a widget
    222          */
    223         static final int ITEM_TYPE_APPWIDGET = 4;
    224 
    225         /**
    226          * The favorite is a clock
    227          */
    228         static final int ITEM_TYPE_WIDGET_CLOCK = 1000;
    229 
    230         /**
    231          * The favorite is a search widget
    232          */
    233         static final int ITEM_TYPE_WIDGET_SEARCH = 1001;
    234 
    235         /**
    236          * The favorite is a photo frame
    237          */
    238         static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002;
    239 
    240         /**
    241          * The appWidgetId of the widget
    242          *
    243          * <P>Type: INTEGER</P>
    244          */
    245         static final String APPWIDGET_ID = "appWidgetId";
    246 
    247         /**
    248          * The ComponentName of the widget provider
    249          *
    250          * <P>Type: STRING</P>
    251          */
    252         public static final String APPWIDGET_PROVIDER = "appWidgetProvider";
    253 
    254         /**
    255          * Indicates whether this favorite is an application-created shortcut or not.
    256          * If the value is 0, the favorite is not an application-created shortcut, if the
    257          * value is 1, it is an application-created shortcut.
    258          * <P>Type: INTEGER</P>
    259          */
    260         @Deprecated
    261         static final String IS_SHORTCUT = "isShortcut";
    262 
    263         /**
    264          * The URI associated with the favorite. It is used, for instance, by
    265          * live folders to find the content provider.
    266          * <P>Type: TEXT</P>
    267          */
    268         static final String URI = "uri";
    269 
    270         /**
    271          * The display mode if the item is a live folder.
    272          * <P>Type: INTEGER</P>
    273          *
    274          * @see android.provider.LiveFolders#DISPLAY_MODE_GRID
    275          * @see android.provider.LiveFolders#DISPLAY_MODE_LIST
    276          */
    277         static final String DISPLAY_MODE = "displayMode";
    278     }
    279 }
    280