Fix calendar crash

* User set default calender and then revoked calendar perms
* Restore isFinishing check to onBackPressed
pull/384/head
Alex Baker 10 years ago
parent 881ab9eae8
commit eb58a70269

@ -303,7 +303,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
TaskEditFragment taskEditFragment = getTaskEditFragment(); TaskEditFragment taskEditFragment = getTaskEditFragment();
if (taskEditFragment != null) { if (taskEditFragment != null) {
taskEditFragment.discardButtonClick(); taskEditFragment.discardButtonClick();
} else { } else if (!isFinishing()) {
super.onBackPressed(); super.onBackPressed();
} }
} }

@ -23,6 +23,7 @@ import com.todoroo.astrid.gcal.GCalHelper;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.CalendarSelectionActivity; import org.tasks.activities.CalendarSelectionActivity;
import org.tasks.injection.ForActivity; import org.tasks.injection.ForActivity;
import org.tasks.preferences.PermissionChecker;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
@ -48,6 +49,7 @@ public class CalendarControlSet extends TaskEditControlFragment {
@Inject GCalHelper gcalHelper; @Inject GCalHelper gcalHelper;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject @ForActivity Context context; @Inject @ForActivity Context context;
@Inject PermissionChecker permissionChecker;
private String calendarId; private String calendarId;
private String calendarName; private String calendarName;
@ -62,7 +64,7 @@ public class CalendarControlSet extends TaskEditControlFragment {
eventUri = savedInstanceState.getString(EXTRA_URI); eventUri = savedInstanceState.getString(EXTRA_URI);
calendarName = savedInstanceState.getString(EXTRA_NAME); calendarName = savedInstanceState.getString(EXTRA_NAME);
calendarId = savedInstanceState.getString(EXTRA_ID); calendarId = savedInstanceState.getString(EXTRA_ID);
} else if (isNewTask) { } else if (isNewTask && permissionChecker.canAccessCalendars()) {
calendarId = preferences.getDefaultCalendar(); calendarId = preferences.getDefaultCalendar();
if (!Strings.isNullOrEmpty(calendarId)) { if (!Strings.isNullOrEmpty(calendarId)) {
AndroidCalendar defaultCalendar = gcalHelper.getCalendar(calendarId); AndroidCalendar defaultCalendar = gcalHelper.getCalendar(calendarId);

Loading…
Cancel
Save