Browse Source

Fix potential crash (as seen on Play Store console) when a widget is asked to update but it no longer exists or no config is known for it.

pull/82/head
Eric Kok 11 years ago
parent
commit
6670ad7325
  1. 10
      core/src/org/transdroid/core/widget/ListWidgetProvider.java

10
core/src/org/transdroid/core/widget/ListWidgetProvider.java

@ -62,9 +62,11 @@ public class ListWidgetProvider extends AppWidgetProvider { @@ -62,9 +62,11 @@ public class ListWidgetProvider extends AppWidgetProvider {
// Refresh a specific app widget
if (intent.hasExtra(EXTRA_REFRESH)) {
// Manually requested a refresh for the app widget of which the ID was supplied
AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId,
buildRemoteViews(context, appWidgetId, applicationSettings.getWidgetConfig(appWidgetId)));
AppWidgetManager.getInstance(context).notifyAppWidgetViewDataChanged(appWidgetId, R.id.torrents_list);
RemoteViews views = buildRemoteViews(context, appWidgetId, applicationSettings.getWidgetConfig(appWidgetId));
if (views != null) {
AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, views);
AppWidgetManager.getInstance(context).notifyAppWidgetViewDataChanged(appWidgetId, R.id.torrents_list);
}
return;
}
@ -136,7 +138,7 @@ public class ListWidgetProvider extends AppWidgetProvider { @@ -136,7 +138,7 @@ public class ListWidgetProvider extends AppWidgetProvider {
// Set up the START_SERVER intent for 'action bar' clicks to start Transdroid normally
Intent start = new Intent(context, TorrentsActivity_.class);
//start.setData(Uri.parse("intent://widget/" + appWidgetId + "/start/" + config.getServerId()));
// start.setData(Uri.parse("intent://widget/" + appWidgetId + "/start/" + config.getServerId()));
start.setAction(INTENT_STARTSERVER);
start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
start.putExtra(EXTRA_SERVER, config.getServerId());

Loading…
Cancel
Save