--- android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/03/23 14:56:52 633 +++ android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/03/24 08:57:30 635 @@ -3,17 +3,22 @@ import java.net.URL; import java.net.URLConnection; +import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; -import android.appwidget.AppWidgetProviderInfo; import android.content.Context; +import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.net.Uri; import android.util.Log; import android.widget.RemoteViews; public class Side9WidgetProvider extends AppWidgetProvider { + + //The data needs to be static, since BroadcastReceivers (which WidgetProviders extends) are only valid during onReceive() + private static Side9Data usedData; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { @@ -21,39 +26,57 @@ final int N = appWidgetIds.length; // - Log.e("onUpdate", "onUpdate:" + N); + Log.e("Side9Pigen", "onUpdate:" + N); try { - Side9Xml dataSource = new Side9Xml(); - Side9Data data = dataSource.loadXml(); + Side9Data newData = Side9Xml.loadXml(); + if (! newData.equals(usedData)) { + + + Log.e("Side9Pigen", "(Re)loading image:" + newData.url); + + URL imgUrl = new URL( newData.url ); + + URLConnection conn = imgUrl.openConnection(); + Bitmap image = BitmapFactory.decodeStream( conn.getInputStream() ); + + + usedData = newData; // if we made it to here without exceptions, save the new data + + + // Perform this loop procedure for each App Widget that belongs to this provider + for (int i=0; i