Don't show snooze dialog on rotation change

pull/281/head
Alex Baker 11 years ago
parent bdf5b41da8
commit 88bc1cc69c

@ -9,4 +9,6 @@ public interface SnoozeCallback {
void snoozeForTime(long time); void snoozeForTime(long time);
void pickDateTime();
} }

@ -10,6 +10,8 @@ import com.todoroo.astrid.reminders.SnoozeCallback;
import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.joda.time.DateTime;
import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.activities.TimePickerActivity; import org.tasks.activities.TimePickerActivity;
import org.tasks.injection.InjectingFragmentActivity; import org.tasks.injection.InjectingFragmentActivity;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
@ -19,6 +21,8 @@ import javax.inject.Inject;
public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeCallback, DialogInterface.OnCancelListener { public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeCallback, DialogInterface.OnCancelListener {
private static final String FRAG_TAG_SNOOZE_DIALOG = "frag_tag_snooze_dialog"; private static final String FRAG_TAG_SNOOZE_DIALOG = "frag_tag_snooze_dialog";
private static final String EXTRA_PICKING_DATE_TIME = "extra_picking_date_time";
private static final int REQUEST_DATE_TIME = 10101;
public static final String EXTRA_TASK_ID = "id"; public static final String EXTRA_TASK_ID = "id";
@ -27,11 +31,21 @@ public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeC
@Inject NotificationManager notificationManager; @Inject NotificationManager notificationManager;
private long taskId; private long taskId;
private boolean pickingDateTime;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
taskId = getIntent().getLongExtra(EXTRA_TASK_ID, 0L);
if (savedInstanceState != null) {
pickingDateTime = savedInstanceState.getBoolean(EXTRA_PICKING_DATE_TIME, false);
if (pickingDateTime) {
return;
}
}
startupService.onStartupApplication(this); startupService.onStartupApplication(this);
FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentManager supportFragmentManager = getSupportFragmentManager();
@ -40,7 +54,6 @@ public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeC
fragmentByTag = new SnoozeDialog(); fragmentByTag = new SnoozeDialog();
fragmentByTag.show(supportFragmentManager, FRAG_TAG_SNOOZE_DIALOG); fragmentByTag.show(supportFragmentManager, FRAG_TAG_SNOOZE_DIALOG);
} }
taskId = getIntent().getLongExtra(EXTRA_TASK_ID, 0L);
fragmentByTag.setOnCancelListener(this); fragmentByTag.setOnCancelListener(this);
fragmentByTag.setSnoozeCallback(this); fragmentByTag.setSnoozeCallback(this);
} }
@ -56,6 +69,21 @@ public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeC
finish(); finish();
} }
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(EXTRA_PICKING_DATE_TIME, pickingDateTime);
}
@Override
public void pickDateTime() {
pickingDateTime = true;
startActivityForResult(new Intent(this, DateAndTimePickerActivity.class) {{
putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, new DateTime().plusMinutes(30).getMillis());
}}, REQUEST_DATE_TIME);
}
@Override @Override
public void onCancel(DialogInterface dialog) { public void onCancel(DialogInterface dialog) {
finish(); finish();
@ -63,13 +91,12 @@ public class SnoozeActivity extends InjectingFragmentActivity implements SnoozeC
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SnoozeDialog.REQUEST_DATE_TIME) { if (requestCode == REQUEST_DATE_TIME) {
if (resultCode == RESULT_OK && data != null) { if (resultCode == RESULT_OK && data != null) {
snoozeForTime(data.getLongExtra(TimePickerActivity.EXTRA_TIMESTAMP, 0L)); snoozeForTime(data.getLongExtra(TimePickerActivity.EXTRA_TIMESTAMP, 0L));
} else { } else {
finish(); finish();
} }
overridePendingTransition(0, 0);
} else { } else {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }

@ -3,7 +3,6 @@ package org.tasks.reminders;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
@ -13,7 +12,6 @@ import com.todoroo.astrid.reminders.SnoozeCallback;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingDialogFragment; import org.tasks.injection.InjectingDialogFragment;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -28,8 +26,6 @@ import static com.todoroo.andlib.utility.DateUtilities.getTimeString;
public class SnoozeDialog extends InjectingDialogFragment { public class SnoozeDialog extends InjectingDialogFragment {
public static final int REQUEST_DATE_TIME = 10101;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject @ForApplication Context context; @Inject @ForApplication Context context;
@ -97,9 +93,7 @@ public class SnoozeDialog extends InjectingDialogFragment {
break; break;
case 3: case 3:
dialog.dismiss(); dialog.dismiss();
getActivity().startActivityForResult(new Intent(context, DateAndTimePickerActivity.class) {{ snoozeCallback.pickDateTime();
putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, new DateTime().plusMinutes(30).getMillis());
}}, REQUEST_DATE_TIME);
break; break;
} }
} }

Loading…
Cancel
Save