public static Map<String, WidgetData> refreshWidgets( Context context, ArrayList<CharSequence> widgetsDesired) { synchronized (lock) { if (dataCache == null) dataCache = new HashMap<String, WidgetData>(); for (InternalWidget widget : widgets) { widget.refresh(widgetsDesired); widget.get(widgetsDesired, dataCache); } Intent intent = new Intent("org.metawatch.manager.REFRESH_WIDGET_REQUEST"); Bundle b = new Bundle(); if (widgetsDesired == null) b.putBoolean("org.metawatch.manager.get_previews", true); else { String[] temp = widgetsDesired.toArray(new String[widgetsDesired.size()]); b.putStringArray("org.metawatch.manager.widgets_desired", temp); } intent.putExtras(b); context.sendBroadcast(intent); return dataCache; } }