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 { 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