Fix snooze intent flags

pull/1051/head
Alex Baker 5 years ago
parent fc5e3be99a
commit 2027ab6858

@ -287,9 +287,8 @@
<activity <activity
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:launchMode="singleTask"
android:name=".reminders.SnoozeActivity" android:name=".reminders.SnoozeActivity"
android:taskAffinity="" android:taskAffinity=":snooze"
android:theme="@style/TranslucentDialog"/> android:theme="@style/TranslucentDialog"/>
<activity <activity

@ -304,9 +304,7 @@ public class NotificationManager {
? NotificationCompat.GROUP_ALERT_SUMMARY ? NotificationCompat.GROUP_ALERT_SUMMARY
: NotificationCompat.GROUP_ALERT_CHILDREN); : NotificationCompat.GROUP_ALERT_CHILDREN);
Intent snoozeIntent = new Intent(context, SnoozeActivity.class); Intent snoozeIntent = SnoozeActivity.newIntent(context, taskIds);
snoozeIntent.setFlags(FLAG_ACTIVITY_NEW_TASK);
snoozeIntent.putExtra(SnoozeActivity.EXTRA_TASK_IDS, taskIds);
builder.addAction( builder.addAction(
R.drawable.ic_snooze_white_24dp, R.drawable.ic_snooze_white_24dp,
context.getString(R.string.snooze_all), context.getString(R.string.snooze_all),
@ -410,9 +408,7 @@ public class NotificationManager {
completePendingIntent) completePendingIntent)
.build(); .build();
Intent snoozeIntent = new Intent(context, SnoozeActivity.class); Intent snoozeIntent = SnoozeActivity.newIntent(context, id);
snoozeIntent.setFlags(FLAG_ACTIVITY_NEW_TASK);
snoozeIntent.putExtra(SnoozeActivity.EXTRA_TASK_ID, id);
PendingIntent snoozePendingIntent = PendingIntent snoozePendingIntent =
PendingIntent.getActivity( PendingIntent.getActivity(
context, (int) id, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT); context, (int) id, snoozeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
@ -422,10 +418,8 @@ public class NotificationManager {
wearableExtender.addAction(completeAction); wearableExtender.addAction(completeAction);
for (final SnoozeOption snoozeOption : SnoozeDialog.getSnoozeOptions(preferences)) { for (final SnoozeOption snoozeOption : SnoozeDialog.getSnoozeOptions(preferences)) {
final long timestamp = snoozeOption.getDateTime().getMillis(); final long timestamp = snoozeOption.getDateTime().getMillis();
Intent wearableIntent = new Intent(context, SnoozeActivity.class); Intent wearableIntent = SnoozeActivity.newIntent(context, id);
wearableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
wearableIntent.setAction(String.format("snooze-%s-%s", id, timestamp)); wearableIntent.setAction(String.format("snooze-%s-%s", id, timestamp));
wearableIntent.putExtra(SnoozeActivity.EXTRA_TASK_ID, id);
wearableIntent.putExtra(SnoozeActivity.EXTRA_SNOOZE_TIME, timestamp); wearableIntent.putExtra(SnoozeActivity.EXTRA_SNOOZE_TIME, timestamp);
PendingIntent wearablePendingIntent = PendingIntent wearablePendingIntent =
PendingIntent.getActivity( PendingIntent.getActivity(

@ -1,7 +1,5 @@
package org.tasks.reminders; package org.tasks.reminders;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
@ -100,10 +98,7 @@ public class NotificationActivity extends InjectingAppCompatActivity
@Override @Override
public void snooze() { public void snooze() {
finish(); finish();
Intent intent = new Intent(this, SnoozeActivity.class); startActivity(SnoozeActivity.newIntent(this, taskId));
intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(SnoozeActivity.EXTRA_TASK_ID, taskId);
startActivity(intent);
} }
@Override @Override

@ -1,5 +1,6 @@
package org.tasks.reminders; package org.tasks.reminders;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@ -21,6 +22,7 @@ import org.tasks.time.DateTime;
public class SnoozeActivity extends InjectingAppCompatActivity public class SnoozeActivity extends InjectingAppCompatActivity
implements SnoozeCallback, DialogInterface.OnCancelListener { implements SnoozeCallback, DialogInterface.OnCancelListener {
private static final int FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK;
public static final String EXTRA_TASK_ID = "id"; public static final String EXTRA_TASK_ID = "id";
public static final String EXTRA_TASK_IDS = "ids"; public static final String EXTRA_TASK_IDS = "ids";
public static final String EXTRA_SNOOZE_TIME = "snooze_time"; public static final String EXTRA_SNOOZE_TIME = "snooze_time";
@ -34,23 +36,28 @@ public class SnoozeActivity extends InjectingAppCompatActivity
@Inject ThemeAccent themeAccent; @Inject ThemeAccent themeAccent;
private boolean pickingDateTime; private boolean pickingDateTime;
public static Intent newIntent(Context context, Long id) {
Intent intent = new Intent(context, SnoozeActivity.class);
intent.setFlags(FLAGS);
intent.putExtra(SnoozeActivity.EXTRA_TASK_ID, id);
return intent;
}
public static Intent newIntent(Context context, ArrayList<Long> ids) {
Intent intent = new Intent(context, SnoozeActivity.class);
intent.setFlags(FLAGS);
intent.putExtra(SnoozeActivity.EXTRA_TASK_IDS, ids);
return intent;
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
themeAccent.applyStyle(getTheme()); themeAccent.applyStyle(getTheme());
setup(getIntent(), savedInstanceState); Intent intent = getIntent();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setup(intent, null);
}
private void setup(Intent intent, Bundle savedInstanceState) {
if (intent.hasExtra(EXTRA_TASK_ID)) { if (intent.hasExtra(EXTRA_TASK_ID)) {
taskIds.add(intent.getLongExtra(EXTRA_TASK_ID, -1L)); taskIds.add(intent.getLongExtra(EXTRA_TASK_ID, -1L));
} else if (intent.hasExtra(EXTRA_TASK_IDS)) { } else if (intent.hasExtra(EXTRA_TASK_IDS)) {

Loading…
Cancel
Save