From c9d1bb821c12ed2d150c9979228c4dc9b881daec Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Mon, 18 Jul 2016 09:07:21 -0400 Subject: [PATCH] Refactor pending intents --- .../PendingIntentFactory.java} | 31 ++++++++++--------- .../uhabits/receivers/ReminderReceiver.java | 10 +++--- .../uhabits/ui/widgets/CheckmarkWidget.java | 5 +-- .../uhabits/ui/widgets/FrequencyWidget.java | 5 +-- .../uhabits/ui/widgets/HistoryWidget.java | 5 +-- .../uhabits/ui/widgets/ScoreWidget.java | 5 +-- .../uhabits/ui/widgets/StreakWidget.java | 5 +-- 7 files changed, 38 insertions(+), 28 deletions(-) rename app/src/main/java/org/isoron/uhabits/{HabitPendingIntents.java => receivers/PendingIntentFactory.java} (77%) diff --git a/app/src/main/java/org/isoron/uhabits/HabitPendingIntents.java b/app/src/main/java/org/isoron/uhabits/receivers/PendingIntentFactory.java similarity index 77% rename from app/src/main/java/org/isoron/uhabits/HabitPendingIntents.java rename to app/src/main/java/org/isoron/uhabits/receivers/PendingIntentFactory.java index e6bce8be5..1cfc64e30 100644 --- a/app/src/main/java/org/isoron/uhabits/HabitPendingIntents.java +++ b/app/src/main/java/org/isoron/uhabits/receivers/PendingIntentFactory.java @@ -17,24 +17,29 @@ * with this program. If not, see . */ -package org.isoron.uhabits; +package org.isoron.uhabits.receivers; import android.app.*; import android.content.*; import android.net.*; +import android.support.annotation.*; import org.isoron.uhabits.models.*; -import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.habits.show.*; -public abstract class HabitPendingIntents +public class PendingIntentFactory { - public static final String BASE_URL = - "content://org.isoron.uhabits/habit/"; + public static final String BASE_URL = "content://org.isoron.uhabits/habit/"; - public static PendingIntent addCheckmark(Context context, - Habit habit, - Long timestamp) + @NonNull + private final Context context; + + public PendingIntentFactory(Context context) + { + this.context = context; + } + + public PendingIntent buildAddCheckmark(Habit habit, Long timestamp) { Uri data = habit.getUri(); Intent checkIntent = new Intent(context, WidgetReceiver.class); @@ -45,7 +50,7 @@ public abstract class HabitPendingIntents PendingIntent.FLAG_UPDATE_CURRENT); } - public static PendingIntent dismissNotification(Context context) + public PendingIntent buildDismissNotification() { Intent deleteIntent = new Intent(context, ReminderReceiver.class); deleteIntent.setAction(WidgetReceiver.ACTION_DISMISS_REMINDER); @@ -53,7 +58,7 @@ public abstract class HabitPendingIntents PendingIntent.FLAG_UPDATE_CURRENT); } - public static PendingIntent snoozeNotification(Context context, Habit habit) + public PendingIntent buildSnoozeNotification(Habit habit) { Uri data = habit.getUri(); Intent snoozeIntent = new Intent(context, ReminderReceiver.class); @@ -63,9 +68,7 @@ public abstract class HabitPendingIntents PendingIntent.FLAG_UPDATE_CURRENT); } - public static PendingIntent toggleCheckmark(Context context, - Habit habit, - Long timestamp) + public PendingIntent buildToggleCheckmark(Habit habit, Long timestamp) { Uri data = habit.getUri(); Intent checkIntent = new Intent(context, WidgetReceiver.class); @@ -76,7 +79,7 @@ public abstract class HabitPendingIntents PendingIntent.FLAG_UPDATE_CURRENT); } - public static PendingIntent viewHabit(Context context, Habit habit) + public PendingIntent buildViewHabit(Habit habit) { Intent intent = new Intent(context, ShowHabitActivity.class); intent.setData(Uri.parse(BASE_URL + habit.getId())); diff --git a/app/src/main/java/org/isoron/uhabits/receivers/ReminderReceiver.java b/app/src/main/java/org/isoron/uhabits/receivers/ReminderReceiver.java index dec2f6a21..25bc3d515 100644 --- a/app/src/main/java/org/isoron/uhabits/receivers/ReminderReceiver.java +++ b/app/src/main/java/org/isoron/uhabits/receivers/ReminderReceiver.java @@ -141,13 +141,15 @@ public class ReminderReceiver extends BroadcastReceiver PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_CANCEL_CURRENT); + PendingIntentFactory intentFactory = + new PendingIntentFactory(context); + PendingIntent dismissPendingIntent; - dismissPendingIntent = - HabitPendingIntents.dismissNotification(context); + dismissPendingIntent = intentFactory.buildDismissNotification(); PendingIntent checkIntentPending = - HabitPendingIntents.addCheckmark(context, habit, timestamp); + intentFactory.buildAddCheckmark(habit, timestamp); PendingIntent snoozeIntentPending = - HabitPendingIntents.snoozeNotification(context, habit); + intentFactory.buildSnoozeNotification(habit); Uri ringtoneUri = ReminderUtils.getRingtoneUri(context); diff --git a/app/src/main/java/org/isoron/uhabits/ui/widgets/CheckmarkWidget.java b/app/src/main/java/org/isoron/uhabits/ui/widgets/CheckmarkWidget.java index 40403ed0d..9f0372f1e 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/widgets/CheckmarkWidget.java +++ b/app/src/main/java/org/isoron/uhabits/ui/widgets/CheckmarkWidget.java @@ -24,8 +24,8 @@ import android.content.*; import android.support.annotation.*; import android.view.*; -import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.widgets.views.*; import org.isoron.uhabits.utils.*; @@ -45,7 +45,8 @@ public class CheckmarkWidget extends BaseWidget @Override public PendingIntent getOnClickPendingIntent(Context context) { - return HabitPendingIntents.toggleCheckmark(context, habit, null); + PendingIntentFactory factory = new PendingIntentFactory(context); + return factory.buildToggleCheckmark(habit, null); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/ui/widgets/FrequencyWidget.java b/app/src/main/java/org/isoron/uhabits/ui/widgets/FrequencyWidget.java index 0eb0c7dd1..9b83806b6 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/widgets/FrequencyWidget.java +++ b/app/src/main/java/org/isoron/uhabits/ui/widgets/FrequencyWidget.java @@ -24,8 +24,8 @@ import android.content.*; import android.support.annotation.*; import android.view.*; -import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.common.views.*; import org.isoron.uhabits.ui.widgets.views.*; import org.isoron.uhabits.utils.*; @@ -46,7 +46,8 @@ public class FrequencyWidget extends BaseWidget @Override public PendingIntent getOnClickPendingIntent(Context context) { - return HabitPendingIntents.viewHabit(context, habit); + PendingIntentFactory factory = new PendingIntentFactory(context); + return factory.buildViewHabit(habit); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/ui/widgets/HistoryWidget.java b/app/src/main/java/org/isoron/uhabits/ui/widgets/HistoryWidget.java index 0af19bc7f..9b5f63306 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/widgets/HistoryWidget.java +++ b/app/src/main/java/org/isoron/uhabits/ui/widgets/HistoryWidget.java @@ -24,8 +24,8 @@ import android.content.*; import android.support.annotation.*; import android.view.*; -import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.common.views.*; import org.isoron.uhabits.ui.widgets.views.*; import org.isoron.uhabits.utils.*; @@ -44,7 +44,8 @@ public class HistoryWidget extends BaseWidget @Override public PendingIntent getOnClickPendingIntent(Context context) { - return HabitPendingIntents.viewHabit(context, habit); + PendingIntentFactory factory = new PendingIntentFactory(context); + return factory.buildViewHabit(habit); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/ui/widgets/ScoreWidget.java b/app/src/main/java/org/isoron/uhabits/ui/widgets/ScoreWidget.java index cafb7e854..13b0ea565 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/widgets/ScoreWidget.java +++ b/app/src/main/java/org/isoron/uhabits/ui/widgets/ScoreWidget.java @@ -24,8 +24,8 @@ import android.content.*; import android.support.annotation.*; import android.view.*; -import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.common.views.*; import org.isoron.uhabits.ui.habits.show.views.*; import org.isoron.uhabits.ui.widgets.views.*; @@ -47,7 +47,8 @@ public class ScoreWidget extends BaseWidget @Override public PendingIntent getOnClickPendingIntent(Context context) { - return HabitPendingIntents.viewHabit(context, habit); + PendingIntentFactory factory = new PendingIntentFactory(context); + return factory.buildViewHabit(habit); } @Override diff --git a/app/src/main/java/org/isoron/uhabits/ui/widgets/StreakWidget.java b/app/src/main/java/org/isoron/uhabits/ui/widgets/StreakWidget.java index a1efabd0a..9f567eea3 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/widgets/StreakWidget.java +++ b/app/src/main/java/org/isoron/uhabits/ui/widgets/StreakWidget.java @@ -25,8 +25,8 @@ import android.support.annotation.*; import android.view.*; import android.view.ViewGroup.*; -import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.receivers.*; import org.isoron.uhabits.ui.common.views.*; import org.isoron.uhabits.ui.widgets.views.*; import org.isoron.uhabits.utils.*; @@ -49,7 +49,8 @@ public class StreakWidget extends BaseWidget @Override public PendingIntent getOnClickPendingIntent(Context context) { - return HabitPendingIntents.viewHabit(context, habit); + PendingIntentFactory factory = new PendingIntentFactory(context); + return factory.buildViewHabit(habit); } @Override