--- android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/04/28 09:38:09 688 +++ android/Side9/src/dk/thoerup/side9/Side9WidgetProvider.java 2010/04/28 14:40:33 689 @@ -1,6 +1,5 @@ package dk.thoerup.side9; -import java.io.IOException; import java.net.URL; import java.net.URLConnection; @@ -21,6 +20,7 @@ //The data needs to be static, since BroadcastReceivers (which WidgetProviders extends) are only valid during onReceive() private static Side9Data usedData; + private static Bitmap usedBitmap; public Side9WidgetProvider() { Log.i("Side9Pigen", "WidgetProvider constructor called"); @@ -58,10 +58,12 @@ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); + + Log.i("Side9Pigen", "onUpdate:"); - - - Log.e("Side9Pigen", "onUpdate:"); + if (usedBitmap == null) { //load default view + usedBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.side9logo); + } ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connMgr.getBackgroundDataSetting() == false) @@ -81,22 +83,20 @@ URL imgUrl = new URL( newData.url ); URLConnection conn = imgUrl.openConnection(); + conn.setConnectTimeout(2000); Bitmap image = BitmapFactory.decodeStream( conn.getInputStream() ); - setImage(context,appWidgetManager,appWidgetIds, image); - usedData = newData; // if we made it to here without exceptions, save the new data + usedBitmap = image; } // endif - - + } catch (Exception e) { Log.e("Side9Pigen", "update failed", e); - - if (usedData == null) { - setImage(context,appWidgetManager,appWidgetIds, null); - } } + + setImage(context,appWidgetManager,appWidgetIds, usedBitmap); + Log.i("Side9Pigen", "update completed"); } @@ -106,6 +106,7 @@ super.onDisabled(context); usedData = null; //free memory + usedBitmap = null; } }