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 import com.android.launcher3.config.ProviderConfig;
     23 
     24 /**
     25  * Settings related utilities.
     26  */
     27 public class LauncherSettings {
     28     /** Columns required on table staht will be subject to backup and restore. */
     29     static interface ChangeLogColumns extends BaseColumns {
     30         /**
     31          * The time of the last update to this row.
     32          * <P>Type: INTEGER</P>
     33          */
     34         public static final String MODIFIED = "modified";
     35     }
     36 
     37     static interface BaseLauncherColumns extends ChangeLogColumns {
     38         /**
     39          * Descriptive name of the gesture that can be displayed to the user.
     40          * <P>Type: TEXT</P>
     41          */
     42         public static final String TITLE = "title";
     43 
     44         /**
     45          * The Intent URL of the gesture, describing what it points to. This
     46          * value is given to {@link android.content.Intent#parseUri(String, int)} to create
     47          * an Intent that can be launched.
     48          * <P>Type: TEXT</P>
     49          */
     50         public static final String INTENT = "intent";
     51 
     52         /**
     53          * The type of the gesture
     54          *
     55          * <P>Type: INTEGER</P>
     56          */
     57         public static final String ITEM_TYPE = "itemType";
     58 
     59         /**
     60          * The gesture is an application
     61          */
     62         public static final int ITEM_TYPE_APPLICATION = 0;
     63 
     64         /**
     65          * The gesture is an application created shortcut
     66          */
     67         public static final int ITEM_TYPE_SHORTCUT = 1;
     68 
     69         /**
     70          * The icon type.
     71          * <P>Type: INTEGER</P>
     72          */
     73         public static final String ICON_TYPE = "iconType";
     74 
     75         /**
     76          * The icon is a resource identified by a package name and an integer id.
     77          */
     78         public static final int ICON_TYPE_RESOURCE = 0;
     79 
     80         /**
     81          * The icon is a bitmap.
     82          */
     83         public static final int ICON_TYPE_BITMAP = 1;
     84 
     85         /**
     86          * The icon package name, if icon type is ICON_TYPE_RESOURCE.
     87          * <P>Type: TEXT</P>
     88          */
     89         public static final String ICON_PACKAGE = "iconPackage";
     90 
     91         /**
     92          * The icon resource id, if icon type is ICON_TYPE_RESOURCE.
     93          * <P>Type: TEXT</P>
     94          */
     95         public static final String ICON_RESOURCE = "iconResource";
     96 
     97         /**
     98          * The custom icon bitmap, if icon type is ICON_TYPE_BITMAP.
     99          * <P>Type: BLOB</P>
    100          */
    101         public static final String ICON = "icon";
    102     }
    103 
    104     /**
    105      * Workspace Screens.
    106      *
    107      * Tracks the order of workspace screens.
    108      */
    109     public static final class WorkspaceScreens implements ChangeLogColumns {
    110 
    111         public static final String TABLE_NAME = "workspaceScreens";
    112 
    113         /**
    114          * The content:// style URL for this table
    115          */
    116         static final Uri CONTENT_URI = Uri.parse("content://" +
    117                 ProviderConfig.AUTHORITY + "/" + TABLE_NAME);
    118 
    119         /**
    120          * The rank of this screen -- ie. how it is ordered relative to the other screens.
    121          * <P>Type: INTEGER</P>
    122          */
    123         public static final String SCREEN_RANK = "screenRank";
    124     }
    125 
    126     /**
    127      * Favorites.
    128      */
    129     public static final class Favorites implements BaseLauncherColumns {
    130 
    131         public static final String TABLE_NAME = "favorites";
    132 
    133         /**
    134          * The content:// style URL for this table
    135          */
    136         public static final Uri CONTENT_URI = Uri.parse("content://" +
    137                 ProviderConfig.AUTHORITY + "/" + TABLE_NAME);
    138 
    139         /**
    140          * The content:// style URL for a given row, identified by its id.
    141          *
    142          * @param id The row id.
    143          *
    144          * @return The unique content URL for the specified row.
    145          */
    146         static Uri getContentUri(long id) {
    147             return Uri.parse("content://" + ProviderConfig.AUTHORITY +
    148                     "/" + TABLE_NAME + "/" + id);
    149         }
    150 
    151         /**
    152          * The container holding the favorite
    153          * <P>Type: INTEGER</P>
    154          */
    155         public static final String CONTAINER = "container";
    156 
    157         /**
    158          * The icon is a resource identified by a package name and an integer id.
    159          */
    160         public static final int CONTAINER_DESKTOP = -100;
    161         public static final int CONTAINER_HOTSEAT = -101;
    162 
    163         static final String containerToString(int container) {
    164             switch (container) {
    165                 case CONTAINER_DESKTOP: return "desktop";
    166                 case CONTAINER_HOTSEAT: return "hotseat";
    167                 default: return String.valueOf(container);
    168             }
    169         }
    170 
    171         /**
    172          * The screen holding the favorite (if container is CONTAINER_DESKTOP)
    173          * <P>Type: INTEGER</P>
    174          */
    175         public static final String SCREEN = "screen";
    176 
    177         /**
    178          * The X coordinate of the cell holding the favorite
    179          * (if container is CONTAINER_HOTSEAT or CONTAINER_HOTSEAT)
    180          * <P>Type: INTEGER</P>
    181          */
    182         public static final String CELLX = "cellX";
    183 
    184         /**
    185          * The Y coordinate of the cell holding the favorite
    186          * (if container is CONTAINER_DESKTOP)
    187          * <P>Type: INTEGER</P>
    188          */
    189         public static final String CELLY = "cellY";
    190 
    191         /**
    192          * The X span of the cell holding the favorite
    193          * <P>Type: INTEGER</P>
    194          */
    195         public static final String SPANX = "spanX";
    196 
    197         /**
    198          * The Y span of the cell holding the favorite
    199          * <P>Type: INTEGER</P>
    200          */
    201         public static final String SPANY = "spanY";
    202 
    203         /**
    204          * The profile id of the item in the cell.
    205          * <P>
    206          * Type: INTEGER
    207          * </P>
    208          */
    209         public static final String PROFILE_ID = "profileId";
    210 
    211         /**
    212          * The favorite is a user created folder
    213          */
    214         public static final int ITEM_TYPE_FOLDER = 2;
    215 
    216         /**
    217         * The favorite is a live folder
    218         *
    219         * Note: live folders can no longer be added to Launcher, and any live folders which
    220         * exist within the launcher database will be ignored when loading.  That said, these
    221         * entries in the database may still exist, and are not automatically stripped.
    222         */
    223         @Deprecated
    224         static final int ITEM_TYPE_LIVE_FOLDER = 3;
    225 
    226         /**
    227          * The favorite is a widget
    228          */
    229         public static final int ITEM_TYPE_APPWIDGET = 4;
    230 
    231         /**
    232          * The favorite is a custom widget provided by the launcher
    233          */
    234         public static final int ITEM_TYPE_CUSTOM_APPWIDGET = 5;
    235 
    236         /**
    237          * The favorite is a clock
    238          */
    239         @Deprecated
    240         static final int ITEM_TYPE_WIDGET_CLOCK = 1000;
    241 
    242         /**
    243          * The favorite is a search widget
    244          */
    245         @Deprecated
    246         static final int ITEM_TYPE_WIDGET_SEARCH = 1001;
    247 
    248         /**
    249          * The favorite is a photo frame
    250          */
    251         @Deprecated
    252         static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002;
    253 
    254         /**
    255          * The appWidgetId of the widget
    256          *
    257          * <P>Type: INTEGER</P>
    258          */
    259         public static final String APPWIDGET_ID = "appWidgetId";
    260 
    261         /**
    262          * The ComponentName of the widget provider
    263          *
    264          * <P>Type: STRING</P>
    265          */
    266         public static final String APPWIDGET_PROVIDER = "appWidgetProvider";
    267 
    268         /**
    269          * Indicates whether this favorite is an application-created shortcut or not.
    270          * If the value is 0, the favorite is not an application-created shortcut, if the
    271          * value is 1, it is an application-created shortcut.
    272          * <P>Type: INTEGER</P>
    273          */
    274         @Deprecated
    275         static final String IS_SHORTCUT = "isShortcut";
    276 
    277         /**
    278          * The URI associated with the favorite. It is used, for instance, by
    279          * live folders to find the content provider.
    280          * <P>Type: TEXT</P>
    281          */
    282         @Deprecated
    283         static final String URI = "uri";
    284 
    285         /**
    286          * The display mode if the item is a live folder.
    287          * <P>Type: INTEGER</P>
    288          *
    289          * @see android.provider.LiveFolders#DISPLAY_MODE_GRID
    290          * @see android.provider.LiveFolders#DISPLAY_MODE_LIST
    291          */
    292         @Deprecated
    293         static final String DISPLAY_MODE = "displayMode";
    294 
    295         /**
    296          * Boolean indicating that his item was restored and not yet successfully bound.
    297          * <P>Type: INTEGER</P>
    298          */
    299         public static final String RESTORED = "restored";
    300 
    301         /**
    302          * Indicates the position of the item inside an auto-arranged view like folder or hotseat.
    303          * <p>Type: INTEGER</p>
    304          */
    305         public static final String RANK = "rank";
    306 
    307         /**
    308          * Stores general flag based options for {@link ItemInfo}s.
    309          * <p>Type: INTEGER</p>
    310          */
    311         public static final String OPTIONS = "options";
    312     }
    313 
    314     /**
    315      * Launcher settings
    316      */
    317     public static final class Settings {
    318 
    319         public static final Uri CONTENT_URI = Uri.parse("content://" +
    320                 ProviderConfig.AUTHORITY + "/settings");
    321 
    322         public static final String METHOD_GET_BOOLEAN = "get_boolean_setting";
    323         public static final String METHOD_SET_BOOLEAN = "set_boolean_setting";
    324 
    325         public static final String EXTRA_VALUE = "value";
    326         public static final String EXTRA_DEFAULT_VALUE = "default_value";
    327     }
    328 }
    329