LauncherAppWidgetInfo.java revision ded9f8d8658d0b6601006c0a954cd3bf530e55c1
131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/* 231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Copyright (C) 2009 The Android Open Source Project 331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * you may not use this file except in compliance with the License. 631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * You may obtain a copy of the License at 731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 1031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * See the License for the specific language governing permissions and 1431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * limitations under the License. 1531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 1631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 17a5902524d4403885eb4c50360bf3465c6be796efJoe Onoratopackage com.android.launcher2; 1831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 197376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Projectimport android.appwidget.AppWidgetHostView; 20af44209bfa60da3c7ab49b7f508f9effd316ee41Michael Jurkaimport android.content.ComponentName; 2131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.content.ContentValues; 2231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 2331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/** 246569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy * Represents a widget (either instantiated or about to be) in the Launcher. 2531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 267376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Projectclass LauncherAppWidgetInfo extends ItemInfo { 2731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 2831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project /** 296569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy * Indicates that the widget hasn't been instantiated yet. 306569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy */ 316569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy static final int NO_ID = -1; 326569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy 336569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy /** 34629de3ef739883c0962423cc0c3a26299f162d3dRomain Guy * Identifier for this widget when talking with 35629de3ef739883c0962423cc0c3a26299f162d3dRomain Guy * {@link android.appwidget.AppWidgetManager} for updates. 3631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 376569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy int appWidgetId = NO_ID; 386569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy 39af44209bfa60da3c7ab49b7f508f9effd316ee41Michael Jurka ComponentName providerName; 40ded9f8d8658d0b6601006c0a954cd3bf530e55c1Adam Cohen 416569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy // TODO: Are these necessary here? 426569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy int minWidth = -1; 436569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy int minHeight = -1; 446569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy 4531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project /** 467376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project * View that holds this widget after it's been created. This view isn't created 4731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * until Launcher knows it's needed. 4831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 497376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project AppWidgetHostView hostView = null; 5031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 516569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy /** 526569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy * Constructor for use with AppWidgets that haven't been instantiated yet. 536569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy */ 546569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy LauncherAppWidgetInfo(ComponentName providerName) { 556569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET; 566569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy this.providerName = providerName; 576569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy 586569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy // Since the widget isn't instantiated yet, we don't know these values. Set them to -1 596569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy // to indicate that they should be calculated based on the layout and minWidth/minHeight 606569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy spanX = -1; 616569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy spanY = -1; 626569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy } 636569f2c80e179c2f8ed73dae6b01d971ec20f005Patrick Dubroy 647376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project LauncherAppWidgetInfo(int appWidgetId) { 657376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET; 667376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project this.appWidgetId = appWidgetId; 6731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 68ded9f8d8658d0b6601006c0a954cd3bf530e55c1Adam Cohen 6931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project @Override 7031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project void onAddToDatabase(ContentValues values) { 7131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project super.onAddToDatabase(values); 727376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project values.put(LauncherSettings.Favorites.APPWIDGET_ID, appWidgetId); 7331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 7431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 7531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project @Override 7631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public String toString() { 778802e960495e61803c18ea3dda2e30ef0a611d8fDaniel Sandler return "AppWidget(id=" + Integer.toString(appWidgetId) + ")"; 7831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 799c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato 809c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato @Override 819c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato void unbind() { 829c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato super.unbind(); 839c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato hostView = null; 849c1289cb3bfb74f86e53ec7ac6dd76bb39666b2dJoe Onorato } 8531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project} 86