mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 01:08:50 -06:00
Refactor pending intents
This commit is contained in:
@@ -17,24 +17,29 @@
|
|||||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
* 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.app.*;
|
||||||
import android.content.*;
|
import android.content.*;
|
||||||
import android.net.*;
|
import android.net.*;
|
||||||
|
import android.support.annotation.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
import org.isoron.uhabits.receivers.*;
|
|
||||||
import org.isoron.uhabits.ui.habits.show.*;
|
import org.isoron.uhabits.ui.habits.show.*;
|
||||||
|
|
||||||
public abstract class HabitPendingIntents
|
public class PendingIntentFactory
|
||||||
{
|
{
|
||||||
public static final String BASE_URL =
|
public static final String BASE_URL = "content://org.isoron.uhabits/habit/";
|
||||||
"content://org.isoron.uhabits/habit/";
|
|
||||||
|
|
||||||
public static PendingIntent addCheckmark(Context context,
|
@NonNull
|
||||||
Habit habit,
|
private final Context context;
|
||||||
Long timestamp)
|
|
||||||
|
public PendingIntentFactory(Context context)
|
||||||
|
{
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PendingIntent buildAddCheckmark(Habit habit, Long timestamp)
|
||||||
{
|
{
|
||||||
Uri data = habit.getUri();
|
Uri data = habit.getUri();
|
||||||
Intent checkIntent = new Intent(context, WidgetReceiver.class);
|
Intent checkIntent = new Intent(context, WidgetReceiver.class);
|
||||||
@@ -45,7 +50,7 @@ public abstract class HabitPendingIntents
|
|||||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PendingIntent dismissNotification(Context context)
|
public PendingIntent buildDismissNotification()
|
||||||
{
|
{
|
||||||
Intent deleteIntent = new Intent(context, ReminderReceiver.class);
|
Intent deleteIntent = new Intent(context, ReminderReceiver.class);
|
||||||
deleteIntent.setAction(WidgetReceiver.ACTION_DISMISS_REMINDER);
|
deleteIntent.setAction(WidgetReceiver.ACTION_DISMISS_REMINDER);
|
||||||
@@ -53,7 +58,7 @@ public abstract class HabitPendingIntents
|
|||||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PendingIntent snoozeNotification(Context context, Habit habit)
|
public PendingIntent buildSnoozeNotification(Habit habit)
|
||||||
{
|
{
|
||||||
Uri data = habit.getUri();
|
Uri data = habit.getUri();
|
||||||
Intent snoozeIntent = new Intent(context, ReminderReceiver.class);
|
Intent snoozeIntent = new Intent(context, ReminderReceiver.class);
|
||||||
@@ -63,9 +68,7 @@ public abstract class HabitPendingIntents
|
|||||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PendingIntent toggleCheckmark(Context context,
|
public PendingIntent buildToggleCheckmark(Habit habit, Long timestamp)
|
||||||
Habit habit,
|
|
||||||
Long timestamp)
|
|
||||||
{
|
{
|
||||||
Uri data = habit.getUri();
|
Uri data = habit.getUri();
|
||||||
Intent checkIntent = new Intent(context, WidgetReceiver.class);
|
Intent checkIntent = new Intent(context, WidgetReceiver.class);
|
||||||
@@ -76,7 +79,7 @@ public abstract class HabitPendingIntents
|
|||||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
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 intent = new Intent(context, ShowHabitActivity.class);
|
||||||
intent.setData(Uri.parse(BASE_URL + habit.getId()));
|
intent.setData(Uri.parse(BASE_URL + habit.getId()));
|
||||||
@@ -141,13 +141,15 @@ public class ReminderReceiver extends BroadcastReceiver
|
|||||||
PendingIntent.getActivity(context, 0, contentIntent,
|
PendingIntent.getActivity(context, 0, contentIntent,
|
||||||
PendingIntent.FLAG_CANCEL_CURRENT);
|
PendingIntent.FLAG_CANCEL_CURRENT);
|
||||||
|
|
||||||
|
PendingIntentFactory intentFactory =
|
||||||
|
new PendingIntentFactory(context);
|
||||||
|
|
||||||
PendingIntent dismissPendingIntent;
|
PendingIntent dismissPendingIntent;
|
||||||
dismissPendingIntent =
|
dismissPendingIntent = intentFactory.buildDismissNotification();
|
||||||
HabitPendingIntents.dismissNotification(context);
|
|
||||||
PendingIntent checkIntentPending =
|
PendingIntent checkIntentPending =
|
||||||
HabitPendingIntents.addCheckmark(context, habit, timestamp);
|
intentFactory.buildAddCheckmark(habit, timestamp);
|
||||||
PendingIntent snoozeIntentPending =
|
PendingIntent snoozeIntentPending =
|
||||||
HabitPendingIntents.snoozeNotification(context, habit);
|
intentFactory.buildSnoozeNotification(habit);
|
||||||
|
|
||||||
Uri ringtoneUri = ReminderUtils.getRingtoneUri(context);
|
Uri ringtoneUri = ReminderUtils.getRingtoneUri(context);
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import android.content.*;
|
|||||||
import android.support.annotation.*;
|
import android.support.annotation.*;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.*;
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
|
import org.isoron.uhabits.receivers.*;
|
||||||
import org.isoron.uhabits.ui.widgets.views.*;
|
import org.isoron.uhabits.ui.widgets.views.*;
|
||||||
import org.isoron.uhabits.utils.*;
|
import org.isoron.uhabits.utils.*;
|
||||||
|
|
||||||
@@ -45,7 +45,8 @@ public class CheckmarkWidget extends BaseWidget
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent getOnClickPendingIntent(Context context)
|
public PendingIntent getOnClickPendingIntent(Context context)
|
||||||
{
|
{
|
||||||
return HabitPendingIntents.toggleCheckmark(context, habit, null);
|
PendingIntentFactory factory = new PendingIntentFactory(context);
|
||||||
|
return factory.buildToggleCheckmark(habit, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import android.content.*;
|
|||||||
import android.support.annotation.*;
|
import android.support.annotation.*;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.*;
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
|
import org.isoron.uhabits.receivers.*;
|
||||||
import org.isoron.uhabits.ui.common.views.*;
|
import org.isoron.uhabits.ui.common.views.*;
|
||||||
import org.isoron.uhabits.ui.widgets.views.*;
|
import org.isoron.uhabits.ui.widgets.views.*;
|
||||||
import org.isoron.uhabits.utils.*;
|
import org.isoron.uhabits.utils.*;
|
||||||
@@ -46,7 +46,8 @@ public class FrequencyWidget extends BaseWidget
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent getOnClickPendingIntent(Context context)
|
public PendingIntent getOnClickPendingIntent(Context context)
|
||||||
{
|
{
|
||||||
return HabitPendingIntents.viewHabit(context, habit);
|
PendingIntentFactory factory = new PendingIntentFactory(context);
|
||||||
|
return factory.buildViewHabit(habit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import android.content.*;
|
|||||||
import android.support.annotation.*;
|
import android.support.annotation.*;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.*;
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
|
import org.isoron.uhabits.receivers.*;
|
||||||
import org.isoron.uhabits.ui.common.views.*;
|
import org.isoron.uhabits.ui.common.views.*;
|
||||||
import org.isoron.uhabits.ui.widgets.views.*;
|
import org.isoron.uhabits.ui.widgets.views.*;
|
||||||
import org.isoron.uhabits.utils.*;
|
import org.isoron.uhabits.utils.*;
|
||||||
@@ -44,7 +44,8 @@ public class HistoryWidget extends BaseWidget
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent getOnClickPendingIntent(Context context)
|
public PendingIntent getOnClickPendingIntent(Context context)
|
||||||
{
|
{
|
||||||
return HabitPendingIntents.viewHabit(context, habit);
|
PendingIntentFactory factory = new PendingIntentFactory(context);
|
||||||
|
return factory.buildViewHabit(habit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import android.content.*;
|
|||||||
import android.support.annotation.*;
|
import android.support.annotation.*;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.*;
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
|
import org.isoron.uhabits.receivers.*;
|
||||||
import org.isoron.uhabits.ui.common.views.*;
|
import org.isoron.uhabits.ui.common.views.*;
|
||||||
import org.isoron.uhabits.ui.habits.show.views.*;
|
import org.isoron.uhabits.ui.habits.show.views.*;
|
||||||
import org.isoron.uhabits.ui.widgets.views.*;
|
import org.isoron.uhabits.ui.widgets.views.*;
|
||||||
@@ -47,7 +47,8 @@ public class ScoreWidget extends BaseWidget
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent getOnClickPendingIntent(Context context)
|
public PendingIntent getOnClickPendingIntent(Context context)
|
||||||
{
|
{
|
||||||
return HabitPendingIntents.viewHabit(context, habit);
|
PendingIntentFactory factory = new PendingIntentFactory(context);
|
||||||
|
return factory.buildViewHabit(habit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import android.support.annotation.*;
|
|||||||
import android.view.*;
|
import android.view.*;
|
||||||
import android.view.ViewGroup.*;
|
import android.view.ViewGroup.*;
|
||||||
|
|
||||||
import org.isoron.uhabits.*;
|
|
||||||
import org.isoron.uhabits.models.*;
|
import org.isoron.uhabits.models.*;
|
||||||
|
import org.isoron.uhabits.receivers.*;
|
||||||
import org.isoron.uhabits.ui.common.views.*;
|
import org.isoron.uhabits.ui.common.views.*;
|
||||||
import org.isoron.uhabits.ui.widgets.views.*;
|
import org.isoron.uhabits.ui.widgets.views.*;
|
||||||
import org.isoron.uhabits.utils.*;
|
import org.isoron.uhabits.utils.*;
|
||||||
@@ -49,7 +49,8 @@ public class StreakWidget extends BaseWidget
|
|||||||
@Override
|
@Override
|
||||||
public PendingIntent getOnClickPendingIntent(Context context)
|
public PendingIntent getOnClickPendingIntent(Context context)
|
||||||
{
|
{
|
||||||
return HabitPendingIntents.viewHabit(context, habit);
|
PendingIntentFactory factory = new PendingIntentFactory(context);
|
||||||
|
return factory.buildViewHabit(habit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user