10280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka/*
20280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * Copyright (C) 2010 The Android Open Source Project
30280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka *
40280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * Licensed under the Apache License, Version 2.0 (the "License");
50280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * you may not use this file except in compliance with the License.
60280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * You may obtain a copy of the License at
70280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka *
80280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka *      http://www.apache.org/licenses/LICENSE-2.0
90280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka *
100280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * Unless required by applicable law or agreed to in writing, software
110280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * distributed under the License is distributed on an "AS IS" BASIS,
120280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * See the License for the specific language governing permissions and
140280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * limitations under the License.
150280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka */
160280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka
17325dc23624160689e59fbac708cf6f222b20d025Daniel Sandlerpackage com.android.launcher3;
180280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka
19ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohenimport android.appwidget.AppWidgetHostView;
2068846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chungimport android.appwidget.AppWidgetProviderInfo;
210280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurkaimport android.content.ComponentName;
22dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurkaimport android.content.pm.ActivityInfo;
23dd70d66852bb8bd16f55796e546ba290360d1198Adam Cohenimport android.os.Bundle;
2455cef262f97749300c2f6e764da0b00cbcb78879Winson Chungimport android.os.Parcelable;
250280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka
260280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka/**
270280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka * We pass this object with a drag from the customization tray
280280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka */
290280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurkaclass PendingAddItemInfo extends ItemInfo {
300280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka    /**
310280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka     * The component that will be created.
320280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka     */
330280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka    ComponentName componentName;
343e7c7634531302271270c8cf418abc959d621cbcMichael Jurka}
353e7c7634531302271270c8cf418abc959d621cbcMichael Jurka
36dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurkaclass PendingAddShortcutInfo extends PendingAddItemInfo {
37dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
38dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    ActivityInfo shortcutActivityInfo;
39dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
40dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    public PendingAddShortcutInfo(ActivityInfo activityInfo) {
41dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka        shortcutActivityInfo = activityInfo;
42dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka    }
437ce9985d37e253a93617404d5991017e1ea81907Winson Chung
447ce9985d37e253a93617404d5991017e1ea81907Winson Chung    @Override
457ce9985d37e253a93617404d5991017e1ea81907Winson Chung    public String toString() {
467ce9985d37e253a93617404d5991017e1ea81907Winson Chung        return "Shortcut: " + shortcutActivityInfo.packageName;
477ce9985d37e253a93617404d5991017e1ea81907Winson Chung    }
48dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka}
49dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka
503e7c7634531302271270c8cf418abc959d621cbcMichael Jurkaclass PendingAddWidgetInfo extends PendingAddItemInfo {
513e7c7634531302271270c8cf418abc959d621cbcMichael Jurka    int minWidth;
523e7c7634531302271270c8cf418abc959d621cbcMichael Jurka    int minHeight;
53d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen    int minResizeWidth;
54d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen    int minResizeHeight;
55038f9d8bfb53288e7cf5812f62ec3d5b25fec965Michael Jurka    int previewImage;
56038f9d8bfb53288e7cf5812f62ec3d5b25fec965Michael Jurka    int icon;
57ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen    AppWidgetProviderInfo info;
58ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen    AppWidgetHostView boundWidget;
59dd70d66852bb8bd16f55796e546ba290360d1198Adam Cohen    Bundle bindOptions = null;
6055cef262f97749300c2f6e764da0b00cbcb78879Winson Chung
6155cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    // Any configuration data that we want to pass to a configuration activity when
6255cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    // starting up a widget
6368846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung    String mimeType;
6455cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    Parcelable configurationData;
6568846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung
66c9d95c5897fc5ebbf53903d4ab18ad13d196f643Michael Jurka    public PendingAddWidgetInfo(AppWidgetProviderInfo i, String dataMimeType, Parcelable data) {
6768846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
68ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen        this.info = i;
6968846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        componentName = i.provider;
7068846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        minWidth = i.minWidth;
7168846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        minHeight = i.minHeight;
72d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen        minResizeWidth = i.minResizeWidth;
73d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen        minResizeHeight = i.minResizeHeight;
74038f9d8bfb53288e7cf5812f62ec3d5b25fec965Michael Jurka        previewImage = i.previewImage;
75038f9d8bfb53288e7cf5812f62ec3d5b25fec965Michael Jurka        icon = i.icon;
7668846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        if (dataMimeType != null && data != null) {
7768846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung            mimeType = dataMimeType;
7868846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung            configurationData = data;
7968846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        }
8068846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung    }
811b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen
821b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    // Copy constructor
831b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    public PendingAddWidgetInfo(PendingAddWidgetInfo copy) {
841b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        minWidth = copy.minWidth;
851b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        minHeight = copy.minHeight;
86d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen        minResizeWidth = copy.minResizeWidth;
87d41fbf5680750e34335bba6b38298186c144a4b7Adam Cohen        minResizeHeight = copy.minResizeHeight;
881b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        previewImage = copy.previewImage;
891b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        icon = copy.icon;
901b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        info = copy.info;
911b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        boundWidget = copy.boundWidget;
921b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        mimeType = copy.mimeType;
931b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        configurationData = copy.configurationData;
941b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        componentName = copy.componentName;
951b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        itemType = copy.itemType;
961f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        spanX = copy.spanX;
971f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        spanY = copy.spanY;
981f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        minSpanX = copy.minSpanX;
991f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        minSpanY = copy.minSpanY;
100dd70d66852bb8bd16f55796e546ba290360d1198Adam Cohen        bindOptions = copy.bindOptions == null ? null : (Bundle) copy.bindOptions.clone();
1011b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    }
1027ce9985d37e253a93617404d5991017e1ea81907Winson Chung
1037ce9985d37e253a93617404d5991017e1ea81907Winson Chung    @Override
1047ce9985d37e253a93617404d5991017e1ea81907Winson Chung    public String toString() {
1057ce9985d37e253a93617404d5991017e1ea81907Winson Chung        return "Widget: " + componentName.toShortString();
1067ce9985d37e253a93617404d5991017e1ea81907Winson Chung    }
1071b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen}
108