summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/LauncherModel.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2010-10-28 14:14:18 -0700
committerWinson Chung <winsonc@google.com>2010-10-28 16:08:46 -0700
commit55cef262f97749300c2f6e764da0b00cbcb78879 (patch)
tree5c7cb655eb3204d6d839851c71622d5cfb47b3ce /src/com/android/launcher2/LauncherModel.java
parent12b9fc767783feb95b33a3387b2c4405e1340b0f (diff)
downloadandroid_packages_apps_Trebuchet-55cef262f97749300c2f6e764da0b00cbcb78879.tar.gz
android_packages_apps_Trebuchet-55cef262f97749300c2f6e764da0b00cbcb78879.tar.bz2
android_packages_apps_Trebuchet-55cef262f97749300c2f6e764da0b00cbcb78879.zip
Adding initial support for dropping widgets with custom configuration data.
Change-Id: I4a7ba51783b27e544e9a21882bc7cd582b3b43e0
Diffstat (limited to 'src/com/android/launcher2/LauncherModel.java')
-rw-r--r--src/com/android/launcher2/LauncherModel.java40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 179a5d5c0..aa259aa86 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -52,16 +52,6 @@ import android.os.RemoteException;
import android.os.SystemClock;
import android.util.Log;
-import java.lang.ref.WeakReference;
-import java.net.URISyntaxException;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-
import com.android.launcher.R;
/**
@@ -1527,8 +1517,34 @@ public class LauncherModel extends BroadcastReceiver {
boolean validateShortcutIntent(Intent data) {
// We don't require Intent.EXTRA_SHORTCUT_ICON, since we can pull a default fallback icon
return InstallShortcutReceiver.ACTION_INSTALL_SHORTCUT.equals(data.getAction()) &&
- (data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT) != null) &&
- (data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME) != null);
+ (data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME) != null) &&
+ (data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT) != null);
+ }
+
+ /**
+ * Ensures that a given widget intent actually has all the fields that we need to create a
+ * proper widget.
+ */
+ boolean validateWidgetIntent(Intent data) {
+ // We don't require Intent.EXTRA_APPWIDGET_CONFIGURATION_DATA, since that will just be
+ // forwarded onto the widget's configuration activity if it exists
+ return InstallWidgetReceiver.ACTION_INSTALL_WIDGET.equals(data.getAction()) &&
+ (data.getStringExtra(InstallWidgetReceiver.EXTRA_APPWIDGET_COMPONENT) != null);
+ }
+
+ /**
+ * Attempts to find an AppWidgetProviderInfo that matches the given component.
+ */
+ AppWidgetProviderInfo findAppWidgetProviderInfoWithComponent(Context context,
+ ComponentName component) {
+ List<AppWidgetProviderInfo> widgets =
+ AppWidgetManager.getInstance(context).getInstalledProviders();
+ for (AppWidgetProviderInfo info : widgets) {
+ if (info.provider.equals(component)) {
+ return info;
+ }
+ }
+ return null;
}
ShortcutInfo infoFromShortcutIntent(Context context, Intent data, Bitmap fallbackIcon) {