Improve error message on widget

Fixes #168
This commit is contained in:
Nikhil
2016-09-19 21:24:32 -04:00
committed by Alinson Xavier
parent 5c8450191a
commit 132dce8919
3 changed files with 49 additions and 4 deletions

View File

@@ -0,0 +1,38 @@
/*
* Copyright (C) 2016 Álinson Santos Xavier <isoron@gmail.com>
*
* This file is part of Loop Habit Tracker.
*
* Loop Habit Tracker is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* Loop Habit Tracker is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.isoron.uhabits.models;
public class HabitNotFoundException extends RuntimeException {
public HabitNotFoundException() {
super();
}
public HabitNotFoundException(String message) {
super(message);
}
public HabitNotFoundException(Throwable cause) {
super(cause);
}
public HabitNotFoundException(String message, Throwable cause) {
super(message, cause);
}
}

View File

@@ -61,7 +61,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
}
catch (RuntimeException e)
{
drawErrorWidget(context, manager, widgetId);
drawErrorWidget(context, manager, widgetId, e);
e.printStackTrace();
}
}
@@ -105,7 +105,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
{
long habitId = widgetPrefs.getHabitIdFromWidgetId(widgetId);
Habit habit = habits.getById(habitId);
if (habit == null) throw new RuntimeException("habit not found");
if (habit == null) throw new HabitNotFoundException();
return habit;
}
@@ -115,10 +115,16 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
private void drawErrorWidget(Context context,
AppWidgetManager manager,
int widgetId)
int widgetId,
RuntimeException e)
{
RemoteViews errorView =
new RemoteViews(context.getPackageName(), R.layout.widget_error);
if(e instanceof HabitNotFoundException) {
errorView.setCharSequence(R.id.label, "setText", context.getString(R.string.habit_not_found));
}
manager.updateAppWidget(widgetId, errorView);
}
@@ -141,7 +147,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider
}
catch (RuntimeException e)
{
drawErrorWidget(context, manager, widgetId);
drawErrorWidget(context, manager, widgetId, e);
e.printStackTrace();
}
}

View File

@@ -102,6 +102,7 @@
<string name="hint_landscape">You can see more days by putting your phone in landscape mode.</string>
<string name="delete_habits">Delete Habits</string>
<string name="delete_habits_message">The habits will be permanently deleted. This action cannot be undone.</string>
<string name="habit_not_found">Habit deleted / not found</string>
<string name="weekends">Weekends</string>
<string name="any_weekday">Monday to Friday</string>
<string name="any_day">Any day of the week</string>