Home | History | Annotate | Download | only in launcher2
      1 /*
      2  * Copyright (C) 2010 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.appwidget.AppWidgetHostView;
     20 import android.appwidget.AppWidgetProviderInfo;
     21 import android.content.ComponentName;
     22 import android.content.pm.ActivityInfo;
     23 import android.os.Parcelable;
     24 
     25 /**
     26  * We pass this object with a drag from the customization tray
     27  */
     28 class PendingAddItemInfo extends ItemInfo {
     29     /**
     30      * The component that will be created.
     31      */
     32     ComponentName componentName;
     33 }
     34 
     35 class PendingAddShortcutInfo extends PendingAddItemInfo {
     36 
     37     ActivityInfo shortcutActivityInfo;
     38 
     39     public PendingAddShortcutInfo(ActivityInfo activityInfo) {
     40         shortcutActivityInfo = activityInfo;
     41     }
     42 
     43     @Override
     44     public String toString() {
     45         return "Shortcut: " + shortcutActivityInfo.packageName;
     46     }
     47 }
     48 
     49 class PendingAddWidgetInfo extends PendingAddItemInfo {
     50     int minWidth;
     51     int minHeight;
     52     int minResizeWidth;
     53     int minResizeHeight;
     54     int previewImage;
     55     int icon;
     56     AppWidgetProviderInfo info;
     57     AppWidgetHostView boundWidget;
     58 
     59     // Any configuration data that we want to pass to a configuration activity when
     60     // starting up a widget
     61     String mimeType;
     62     Parcelable configurationData;
     63 
     64     public PendingAddWidgetInfo(AppWidgetProviderInfo i, String dataMimeType, Parcelable data) {
     65         itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
     66         this.info = i;
     67         componentName = i.provider;
     68         minWidth = i.minWidth;
     69         minHeight = i.minHeight;
     70         minResizeWidth = i.minResizeWidth;
     71         minResizeHeight = i.minResizeHeight;
     72         previewImage = i.previewImage;
     73         icon = i.icon;
     74         if (dataMimeType != null && data != null) {
     75             mimeType = dataMimeType;
     76             configurationData = data;
     77         }
     78     }
     79 
     80     // Copy constructor
     81     public PendingAddWidgetInfo(PendingAddWidgetInfo copy) {
     82         minWidth = copy.minWidth;
     83         minHeight = copy.minHeight;
     84         minResizeWidth = copy.minResizeWidth;
     85         minResizeHeight = copy.minResizeHeight;
     86         previewImage = copy.previewImage;
     87         icon = copy.icon;
     88         info = copy.info;
     89         boundWidget = copy.boundWidget;
     90         mimeType = copy.mimeType;
     91         configurationData = copy.configurationData;
     92         componentName = copy.componentName;
     93         itemType = copy.itemType;
     94         spanX = copy.spanX;
     95         spanY = copy.spanY;
     96         minSpanX = copy.minSpanX;
     97         minSpanY = copy.minSpanY;
     98     }
     99 
    100     @Override
    101     public String toString() {
    102         return "Widget: " + componentName.toShortString();
    103     }
    104 }
    105