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
170280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurkapackage com.android.launcher2;
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 {
51ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen    AppWidgetProviderInfo info;
52ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen    AppWidgetHostView boundWidget;
53dd70d66852bb8bd16f55796e546ba290360d1198Adam Cohen    Bundle bindOptions = null;
5455cef262f97749300c2f6e764da0b00cbcb78879Winson Chung
5555cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    // Any configuration data that we want to pass to a configuration activity when
5655cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    // starting up a widget
5768846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung    String mimeType;
5855cef262f97749300c2f6e764da0b00cbcb78879Winson Chung    Parcelable configurationData;
5968846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung
60c9d95c5897fc5ebbf53903d4ab18ad13d196f643Michael Jurka    public PendingAddWidgetInfo(AppWidgetProviderInfo i, String dataMimeType, Parcelable data) {
6168846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
62ed66b2bac7447febe2e405b4ce725cae4f6b5988Adam Cohen        this.info = i;
6368846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        componentName = i.provider;
6468846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        if (dataMimeType != null && data != null) {
6568846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung            mimeType = dataMimeType;
6668846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung            configurationData = data;
6768846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung        }
6868846fdce6c01bbe474bd0c8307e1ccaac161cbcWinson Chung    }
691b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen
701b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    // Copy constructor
711b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    public PendingAddWidgetInfo(PendingAddWidgetInfo copy) {
721b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        info = copy.info;
731b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        boundWidget = copy.boundWidget;
741b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        mimeType = copy.mimeType;
751b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        configurationData = copy.configurationData;
761b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        componentName = copy.componentName;
771b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen        itemType = copy.itemType;
781f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        spanX = copy.spanX;
791f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        spanY = copy.spanY;
801f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        minSpanX = copy.minSpanX;
811f36270212e46b6ec0f27a0109ceaa9eb4a4995dAdam Cohen        minSpanY = copy.minSpanY;
82dd70d66852bb8bd16f55796e546ba290360d1198Adam Cohen        bindOptions = copy.bindOptions == null ? null : (Bundle) copy.bindOptions.clone();
831b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen    }
847ce9985d37e253a93617404d5991017e1ea81907Winson Chung
857ce9985d37e253a93617404d5991017e1ea81907Winson Chung    @Override
867ce9985d37e253a93617404d5991017e1ea81907Winson Chung    public String toString() {
877ce9985d37e253a93617404d5991017e1ea81907Winson Chung        return "Widget: " + componentName.toShortString();
887ce9985d37e253a93617404d5991017e1ea81907Winson Chung    }
891b36dc3f2bb643e3b9600755f1a98522e4efc2edAdam Cohen}
90