From 851cae366216b7d0b1af5a3c9b62a5180ada6e97 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Tue, 15 Mar 2016 20:25:47 -0400 Subject: [PATCH] Show error message on widget when habit not found Fixes #35 --- .../uhabits/widgets/BaseWidgetProvider.java | 10 ++++- app/src/main/res/layout/widget_error.xml | 41 +++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/layout/widget_error.xml diff --git a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java index 6f95d5713..1610c243a 100644 --- a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java +++ b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java @@ -25,7 +25,6 @@ import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.SharedPreferences; import android.graphics.Bitmap; -import android.media.Image; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; @@ -33,7 +32,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.RemoteViews; import org.isoron.helpers.DialogHelper; @@ -106,6 +104,14 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider if(habitId < 0) return; Habit habit = Habit.get(habitId); + if(habit == null) + { + RemoteViews errorView = new RemoteViews(context.getPackageName(), + R.layout.widget_error); + manager.updateAppWidget(widgetId, errorView); + return; + } + View widgetView = buildCustomView(context, habit); measureCustomView(context, width, height, widgetView); diff --git a/app/src/main/res/layout/widget_error.xml b/app/src/main/res/layout/widget_error.xml new file mode 100644 index 000000000..37155adf6 --- /dev/null +++ b/app/src/main/res/layout/widget_error.xml @@ -0,0 +1,41 @@ + + + + + + + + \ No newline at end of file