Refactor pending intents

pull/151/head
Alinson S. Xavier 9 years ago
parent 77f406dcee
commit c9d1bb821c

@ -17,24 +17,29 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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()));

@ -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);

@ -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

@ -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

@ -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

@ -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

@ -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

Loading…
Cancel
Save