diff --git a/app/src/main/java/org/isoron/uhabits/preferences/WidgetPreferences.java b/app/src/main/java/org/isoron/uhabits/preferences/WidgetPreferences.java index f7830e2ba..56566f639 100644 --- a/app/src/main/java/org/isoron/uhabits/preferences/WidgetPreferences.java +++ b/app/src/main/java/org/isoron/uhabits/preferences/WidgetPreferences.java @@ -23,6 +23,7 @@ import android.content.*; import android.preference.*; import org.isoron.uhabits.*; +import org.isoron.uhabits.models.*; import javax.inject.*; @@ -48,7 +49,7 @@ public class WidgetPreferences public long getHabitIdFromWidgetId(int widgetId) { Long habitId = prefs.getLong(getHabitIdKey(widgetId), -1); - if (habitId < 0) throw new RuntimeException("widget not found"); + if (habitId < 0) throw new HabitNotFoundException(); return habitId; } 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 6c6008d36..e0a188851 100644 --- a/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java +++ b/app/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java @@ -25,6 +25,8 @@ import android.os.*; import android.support.annotation.*; import android.widget.*; +import com.activeandroid.util.*; + import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; import org.isoron.uhabits.preferences.*; @@ -76,8 +78,15 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider for (int id : ids) { - BaseWidget widget = getWidgetFromId(context, id); - widget.delete(); + try + { + BaseWidget widget = getWidgetFromId(context, id); + widget.delete(); + } + catch (HabitNotFoundException e) + { + Log.e("BaseWidgetProvider", e); + } } }