Pass task via bundle to task edit fragments

pull/618/head
Alex Baker 7 years ago
parent 9d4cfe0173
commit afa9622f78

@ -31,7 +31,6 @@ import static org.tasks.activities.SupportGoogleTaskListPicker.newSupportGoogleT
public class GoogleTaskListFragment extends TaskEditControlFragment {
private static final String FRAG_TAG_GOOGLE_TASK_LIST_SELECTION = "frag_tag_google_task_list_selection";
private static final String EXTRA_TASK_ID = "extra_task_id";
private static final String EXTRA_ORIGINAL_LIST = "extra_original_list";
private static final String EXTRA_SELECTED_LIST = "extra_selected_list";
@ -44,7 +43,6 @@ public class GoogleTaskListFragment extends TaskEditControlFragment {
@Inject GoogleTaskDao googleTaskDao;
@Inject Tracker tracker;
private long taskId;
@Nullable private GoogleTaskList originalList;
@Nullable private GoogleTaskList selectedList;
@ -53,12 +51,10 @@ public class GoogleTaskListFragment extends TaskEditControlFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
taskId = savedInstanceState.getLong(EXTRA_TASK_ID);
originalList = savedInstanceState.getParcelable(EXTRA_ORIGINAL_LIST);
selectedList = savedInstanceState.getParcelable(EXTRA_SELECTED_LIST);
} else {
GoogleTask googleTask = googleTaskDao.getByTaskId(taskId);
GoogleTask googleTask = googleTaskDao.getByTaskId(task.getId());
if (googleTask != null) {
originalList = gtasksListService.getList(googleTask.getListId());
}
@ -76,7 +72,6 @@ public class GoogleTaskListFragment extends TaskEditControlFragment {
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putLong(EXTRA_TASK_ID, taskId);
if (originalList != null) {
outState.putParcelable(EXTRA_ORIGINAL_LIST, originalList);
}
@ -106,11 +101,6 @@ public class GoogleTaskListFragment extends TaskEditControlFragment {
.show(getChildFragmentManager(), FRAG_TAG_GOOGLE_TASK_LIST_SELECTION);
}
@Override
public void initialize(boolean isNewTask, Task task) {
taskId = task.getId();
}
@Override
public void apply(Task task) {
if (selectedList == null) {

@ -22,11 +22,7 @@ import android.widget.LinearLayout;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.TaskDao;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.UserActivityDao;
import com.todoroo.astrid.data.Task;
import org.tasks.data.UserActivity;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.notes.CommentsController;
import com.todoroo.astrid.repeats.RepeatControlSet;
@ -38,6 +34,9 @@ import com.todoroo.astrid.utility.Flags;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.UserActivity;
import org.tasks.data.UserActivityDao;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ForActivity;
@ -64,18 +63,17 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
void taskEditFinished();
}
public static TaskEditFragment newTaskEditFragment(boolean isNewTask, Task task) {
public static TaskEditFragment newTaskEditFragment(Task task) {
TaskEditFragment taskEditFragment = new TaskEditFragment();
taskEditFragment.isNewTask = isNewTask;
taskEditFragment.model = task;
Bundle arguments = new Bundle();
arguments.putParcelable(EXTRA_TASK, task);
taskEditFragment.setArguments(arguments);
return taskEditFragment;
}
public static final String TAG_TASKEDIT_FRAGMENT = "taskedit_fragment";
public static final String TOKEN_VALUES = "v";
private static final String EXTRA_TASK = "extra_task";
private static final String EXTRA_IS_NEW_TASK = "extra_is_new_task";
@Inject TaskDao taskDao;
@Inject UserActivityDao userActivityDao;
@ -94,11 +92,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
@BindView(R.id.comments) LinearLayout comments;
@BindView(R.id.control_sets) LinearLayout controlSets;
// --- other instance variables
/** true if editing started with a new task */
private boolean isNewTask = false;
/** task model */
Task model = null;
private TaskEditFragmentCallbackHandler callback;
@ -120,10 +113,8 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
View view = inflater.inflate(R.layout.fragment_task_edit, container, false);
ButterKnife.bind(this, view);
if (savedInstanceState != null) {
model = savedInstanceState.getParcelable(EXTRA_TASK);
isNewTask = savedInstanceState.getBoolean(EXTRA_IS_NEW_TASK);
}
Bundle arguments = getArguments();
model = arguments.getParcelable(EXTRA_TASK);
final boolean backButtonSavesTask = preferences.backButtonSavesTask();
toolbar.setNavigationIcon(ContextCompat.getDrawable(context,
@ -145,7 +136,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
commentsController.reloadView();
FragmentManager fragmentManager = getChildFragmentManager();
List<TaskEditControlFragment> taskEditControlFragments = taskEditControlSetFragmentManager.getOrCreateFragments(fragmentManager, isNewTask, model);
List<TaskEditControlFragment> taskEditControlFragments = taskEditControlSetFragmentManager.getOrCreateFragments(fragmentManager, model);
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
for (int i = 0 ; i < taskEditControlFragments.size() ; i++) {
@ -208,6 +199,8 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
public void save() {
List<TaskEditControlFragment> fragments = taskEditControlSetFragmentManager.getFragmentsInPersistOrder(getChildFragmentManager());
if (hasChanges(fragments)) {
boolean isNewTask = model.isNew();
for (TaskEditControlFragment fragment : fragments) {
fragment.apply(model);
}
@ -280,7 +273,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
}
public void discard() {
if (isNewTask) {
if (model.isNew()) {
timerPlugin.stopTimer(model);
taskDeleter.delete(model);
}
@ -300,14 +293,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(EXTRA_TASK, model);
outState.putBoolean(EXTRA_IS_NEW_TASK, isNewTask);
}
/*
* ======================================================================
* ========================================== UI component helper classes

@ -372,8 +372,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
taskEditFragment.save();
}
boolean isNewTask = task.getTitle().length() == 0;
loadTaskEditFragment(newTaskEditFragment(isNewTask, task));
loadTaskEditFragment(newTaskEditFragment(task));
}
@Override

@ -638,4 +638,8 @@ public class Task extends RemoteModel {
private boolean isReminderFlagSet(int flag) {
return (getReminderFlags() & flag) > 0;
}
public boolean isNew() {
return getId() == NO_ID;
}
}

@ -24,12 +24,12 @@ import android.widget.Toast;
import com.google.common.base.Strings;
import com.todoroo.andlib.utility.AndroidUtilities;
import org.tasks.data.TaskAttachmentDao;
import com.todoroo.astrid.data.Task;
import org.tasks.data.TaskAttachment;
import org.tasks.R;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.data.TaskAttachment;
import org.tasks.data.TaskAttachmentDao;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.files.FileHelper;
import org.tasks.injection.ForActivity;
@ -52,7 +52,6 @@ public class FilesControlSet extends TaskEditControlFragment {
private static final char LEFT_TO_RIGHT_MARK = '\u200e';
private static final int REQUEST_ADD_ATTACHMENT = 50;
private static final String EXTRA_UUID = "extra_uuid";
@Inject TaskAttachmentDao taskAttachmentDao;
@Inject DialogBuilder dialogBuilder;
@ -68,9 +67,7 @@ public class FilesControlSet extends TaskEditControlFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
taskUuid = savedInstanceState.getString(EXTRA_UUID);
}
taskUuid = task.getUuid();
final List<TaskAttachment> files = new ArrayList<>();
for (TaskAttachment attachment : taskAttachmentDao.getAttachments(taskUuid)) {
@ -81,13 +78,6 @@ public class FilesControlSet extends TaskEditControlFragment {
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(EXTRA_UUID, taskUuid);
}
@OnClick(R.id.add_attachment)
void addAttachment(View view) {
startActivityForResult(new Intent(context, AddAttachmentActivity.class), REQUEST_ADD_ATTACHMENT);
@ -108,11 +98,6 @@ public class FilesControlSet extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
taskUuid = task.getUuid();
}
@Override
public void apply(Task task) {

@ -134,7 +134,19 @@ public class RepeatControlSet extends TaskEditControlFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
repeatAfterCompletion = task.repeatAfterCompletion();
dueDate = task.getDueDate();
if (dueDate <= 0) {
dueDate = currentTimeMillis();
}
try {
rrule = new RRule(task.getRecurrenceWithoutFrom());
rrule.setUntil(new DateTime(task.getRepeatUntil()).toDateValue());
} catch (ParseException e) {
rrule = null;
}
} else {
String recurrence = savedInstanceState.getString(EXTRA_RECURRENCE);
dueDate = savedInstanceState.getLong(EXTRA_DUE_DATE);
if (Strings.isNullOrEmpty(recurrence)) {
@ -308,21 +320,6 @@ public class RepeatControlSet extends TaskEditControlFragment
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
repeatAfterCompletion = task.repeatAfterCompletion();
dueDate = task.getDueDate();
if (dueDate <= 0) {
dueDate = currentTimeMillis();
}
try {
rrule = new RRule(task.getRecurrenceWithoutFrom());
rrule.setUntil(new DateTime(task.getRepeatUntil()).toDateValue());
} catch (ParseException e) {
rrule = null;
}
}
@Override
public boolean hasChanges(Task original) {
return !getRecurrenceValue().equals(original.getRecurrence()) ||

@ -93,7 +93,6 @@ public final class TagsControlSet extends TaskEditControlFragment {
@BindView(R.id.display_row_edit) TextView tagsDisplay;
private long taskId;
private LinearLayout newTagLayout;
private ListView tagListView;
private View dialogView;
@ -145,7 +144,7 @@ public final class TagsControlSet extends TaskEditControlFragment {
selectedTags = savedInstanceState.getParcelableArrayList(EXTRA_SELECTED_TAGS);
newTags = savedInstanceState.getStringArrayList(EXTRA_NEW_TAGS);
} else {
selectedTags = tagService.getTagDataForTask(taskId);
selectedTags = tagService.getTagDataForTask(task.getId());
newTags = newArrayList();
}
allTags = tagService.getTagList();
@ -196,11 +195,6 @@ public final class TagsControlSet extends TaskEditControlFragment {
return R.layout.control_set_tags;
}
@Override
public void initialize(boolean isNewTask, Task task) {
taskId = task.getId();
}
@Override
public void apply(Task task) {
if (synchronizeTags(task.getId(), task.getUUID())) {

@ -71,15 +71,19 @@ public class TimerControlSet extends TaskEditControlFragment {
private long timerStarted;
private AlertDialog dialog;
private View dialogView;
private int elapsedSeconds;
private int estimatedSeconds;
private TimerControlSetCallback callback;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
int elapsedSeconds;
int estimatedSeconds;
if (savedInstanceState == null) {
timerStarted = task.getTimerStart();
elapsedSeconds = task.getElapsedSeconds();
estimatedSeconds = task.getEstimatedSeconds();
} else {
timerStarted = savedInstanceState.getLong(EXTRA_STARTED);
elapsedSeconds = savedInstanceState.getInt(EXTRA_ELAPSED);
estimatedSeconds = savedInstanceState.getInt(EXTRA_ESTIMATED);
@ -162,13 +166,6 @@ public class TimerControlSet extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
timerStarted = task.getTimerStart();
elapsedSeconds = task.getElapsedSeconds();
estimatedSeconds = task.getEstimatedSeconds();
}
@Override
public boolean hasChanges(Task original) {
return elapsed.getTimeDurationInSeconds() != original.getElapsedSeconds() ||

@ -52,10 +52,10 @@ public class EditTitleControlSet extends TaskEditControlFragment {
@BindView(R.id.title) EditText editText;
@BindView(R.id.completeBox) CheckableImageView completeBox;
private boolean showKeyboard;
private boolean isComplete;
private boolean isRepeating;
private int importanceValue;
private boolean isNewTask;
private String title;
@Override
@ -68,7 +68,13 @@ public class EditTitleControlSet extends TaskEditControlFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(getLayout(), null);
ButterKnife.bind(this, view);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
isComplete = task.isCompleted();
title = task.getTitle();
isRepeating = !TextUtils.isEmpty(task.getRecurrence());
importanceValue = task.getImportance();
showKeyboard = task.isNew() && Strings.isNullOrEmpty(title);
} else {
isComplete = savedInstanceState.getBoolean(EXTRA_COMPLETE);
title = savedInstanceState.getString(EXTRA_TITLE);
isRepeating = savedInstanceState.getBoolean(EXTRA_REPEATING);
@ -102,7 +108,7 @@ public class EditTitleControlSet extends TaskEditControlFragment {
public void onResume() {
super.onResume();
if (isNewTask) {
if (showKeyboard) {
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
@ -163,16 +169,6 @@ public class EditTitleControlSet extends TaskEditControlFragment {
isComplete != original.isCompleted();
}
@Override
public void initialize(boolean isNewTask, Task task) {
this.isNewTask = isNewTask;
isComplete = task.isCompleted();
title = task.getTitle();
isRepeating = !TextUtils.isEmpty(task.getRecurrence());
importanceValue = task.getImportance();
}
@Override
public void apply(Task task) {
task.setTitle(Strings.isNullOrEmpty(title)

@ -71,7 +71,6 @@ public class HideUntilControlSet extends TaskEditControlFragment implements OnIt
@BindView(R.id.clear) ImageView clearButton;
private ArrayAdapter<HideUntilValue> adapter;
private long initialHideUntil;
private int previousSetting = Task.HIDE_UNTIL_NONE;
private int selection;
@ -118,7 +117,36 @@ public class HideUntilControlSet extends TaskEditControlFragment implements OnIt
}
};
if (savedInstanceState == null) {
updateSpinnerOptions(initialHideUntil);
long dueDate = task.getDueDate();
long hideUntil = task.getHideUntil();
DateTime dueDay = newDateTime(dueDate)
.withHourOfDay(0)
.withMinuteOfHour(0)
.withSecondOfMinute(0)
.withMillisOfSecond(0);
// For the hide until due case, we need the time component
long dueTime = dueDate/1000L*1000L;
if(hideUntil == 0) {
selection = 0;
hideUntil = 0;
} else if(hideUntil == dueDay.getMillis()) {
selection = 1;
hideUntil = 0;
} else if (hideUntil == dueTime){
selection = 2;
hideUntil = 0;
} else if(hideUntil + DateUtilities.ONE_DAY == dueDay.getMillis()) {
selection = 3;
hideUntil = 0;
} else if(hideUntil + DateUtilities.ONE_WEEK == dueDay.getMillis()) {
selection = 4;
hideUntil = 0;
}
updateSpinnerOptions(hideUntil);
} else {
updateSpinnerOptions(savedInstanceState.getLong(EXTRA_CUSTOM));
selection = savedInstanceState.getInt(EXTRA_SELECTION);
@ -145,40 +173,6 @@ public class HideUntilControlSet extends TaskEditControlFragment implements OnIt
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
long dueDate = task.getDueDate();
long hideUntil = task.getHideUntil();
DateTime dueDay = newDateTime(dueDate)
.withHourOfDay(0)
.withMinuteOfHour(0)
.withSecondOfMinute(0)
.withMillisOfSecond(0);
// For the hide until due case, we need the time component
long dueTime = dueDate/1000L*1000L;
if(hideUntil == 0) {
selection = 0;
hideUntil = 0;
} else if(hideUntil == dueDay.getMillis()) {
selection = 1;
hideUntil = 0;
} else if (hideUntil == dueTime){
selection = 2;
hideUntil = 0;
} else if(hideUntil + DateUtilities.ONE_DAY == dueDay.getMillis()) {
selection = 3;
hideUntil = 0;
} else if(hideUntil + DateUtilities.ONE_WEEK == dueDay.getMillis()) {
selection = 4;
hideUntil = 0;
}
initialHideUntil = hideUntil;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_HIDE_UNTIL) {

@ -73,7 +73,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
private static final int REQUEST_NEW_ALARM = 12152;
private static final int REQUEST_LOCATION_REMINDER = 12153;
private static final String EXTRA_TASK_ID = "extra_task_id";
private static final String EXTRA_FLAGS = "extra_flags";
private static final String EXTRA_RANDOM_REMINDER = "extra_random_reminder";
private static final String EXTRA_ALARMS = "extra_alarms";
@ -119,8 +118,12 @@ public class ReminderControlSet extends TaskEditControlFragment {
modeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mode.setAdapter(modeAdapter);
if (savedInstanceState != null) {
taskId = savedInstanceState.getLong(EXTRA_TASK_ID);
taskId = task.getId();
if (savedInstanceState == null) {
flags = task.getReminderFlags();
randomReminder = task.getReminderPeriod();
setup(currentAlarms(), geofenceService.getGeofences(taskId));
} else {
flags = savedInstanceState.getInt(EXTRA_FLAGS);
randomReminder = savedInstanceState.getLong(EXTRA_RANDOM_REMINDER);
List<Location> locations = new ArrayList<>();
@ -129,8 +132,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
locations.add((Location) geofence);
}
setup(Longs.asList(savedInstanceState.getLongArray(EXTRA_ALARMS)), locations);
} else {
setup(currentAlarms(), geofenceService.getGeofences(taskId));
}
addSpinner.setAdapter(remindAdapter);
@ -191,13 +192,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
taskId = task.getId();
flags = task.getReminderFlags();
randomReminder = task.getReminderPeriod();
}
private void setup(List<Long> alarms, List<Location> locations) {
setValue(flags);
@ -246,7 +240,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putLong(EXTRA_TASK_ID, taskId);
outState.putInt(EXTRA_FLAGS, getFlags());
outState.putLong(EXTRA_RANDOM_REMINDER, getRandomReminderPeriod());
outState.putLongArray(EXTRA_ALARMS, Longs.toArray(alarms));

@ -134,11 +134,6 @@ public class CommentBarFragment extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
}
@Override
public void apply(Task task) {

@ -1,9 +1,11 @@
package org.tasks.fragments;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.repeats.RepeatControlSet;
@ -102,7 +104,10 @@ public class TaskEditControlSetFragmentManager {
return fragments;
}
public List<TaskEditControlFragment> getOrCreateFragments(FragmentManager fragmentManager, boolean isNewTask, Task task) {
public List<TaskEditControlFragment> getOrCreateFragments(FragmentManager fragmentManager, Task task) {
Bundle arguments = new Bundle();
arguments.putParcelable(TaskEditControlFragment.EXTRA_TASK, task);
List<TaskEditControlFragment> fragments = new ArrayList<>();
for (int i = 0 ; i < numRows ; i++) {
String tag = displayOrder.get(i);
@ -113,7 +118,7 @@ public class TaskEditControlSetFragmentManager {
if (fragment == null) {
continue;
}
fragment.initialize(isNewTask, task);
fragment.setArguments(arguments);
}
fragments.add(fragment);
}

@ -72,7 +72,6 @@ public class CalendarControlSet extends TaskEditControlFragment {
private String calendarId;
private String eventUri;
private boolean isNewTask;
@Nullable
@Override
@ -82,7 +81,7 @@ public class CalendarControlSet extends TaskEditControlFragment {
if (savedInstanceState != null) {
eventUri = savedInstanceState.getString(EXTRA_URI);
calendarId = savedInstanceState.getString(EXTRA_ID);
} else if (isNewTask && canAccessCalendars) {
} else if (task.isNew() && canAccessCalendars) {
calendarId = preferences.getDefaultCalendar();
if (!Strings.isNullOrEmpty(calendarId)) {
try {
@ -96,6 +95,8 @@ public class CalendarControlSet extends TaskEditControlFragment {
calendarId = null;
}
}
} else {
eventUri = task.getCalendarURI();
}
if (canAccessCalendars && !calendarEntryExists(eventUri)) {
@ -120,12 +121,6 @@ public class CalendarControlSet extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
this.isNewTask = isNewTask;
eventUri = task.getCalendarURI();
}
@SuppressWarnings("SimplifiableIfStatement")
@Override
public boolean hasChanges(Task original) {

@ -137,7 +137,16 @@ public class DeadlineControlSet extends TaskEditControlFragment {
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
if (task.hasDueDate()) {
DateTime dateTime = newDateTime(task.getDueDate());
date = dateTime.startOfDay().getMillis();
time = task.hasDueTime() ? dateTime.getMillisOfDay() : -1;
} else {
date = 0;
time = -1;
}
} else {
date = savedInstanceState.getLong(EXTRA_DATE);
time = savedInstanceState.getInt(EXTRA_TIME);
}
@ -283,18 +292,6 @@ public class DeadlineControlSet extends TaskEditControlFragment {
return original.getDueDate() != getDueDateTime();
}
@Override
public void initialize(boolean isNewTask, Task task) {
if (task.hasDueDate()) {
DateTime dateTime = newDateTime(task.getDueDate());
date = dateTime.startOfDay().getMillis();
time = task.hasDueTime() ? dateTime.getMillisOfDay() : -1;
} else {
date = 0;
time = -1;
}
}
@Override
public void apply(Task task) {
long dueDate = getDueDateTime();

@ -29,7 +29,9 @@ public class DescriptionControlSet extends TaskEditControlFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
description = task.getNotes();
} else {
description = savedInstanceState.getString(EXTRA_DESCRIPTION);
}
if (!Strings.isNullOrEmpty(description)) {
@ -65,11 +67,6 @@ public class DescriptionControlSet extends TaskEditControlFragment {
description = text.toString().trim();
}
@Override
public void initialize(boolean isNewTask, Task task) {
description = task.getNotes();
}
@Override
public void apply(Task task) {
task.setNotes(description);

@ -65,7 +65,9 @@ public class PriorityControlSet extends TaskEditControlFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = super.onCreateView(inflater, container, savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
priority = task.getImportance();
} else {
priority = savedInstanceState.getInt(EXTRA_PRIORITY);
}
if (priority == 0) {
@ -108,11 +110,6 @@ public class PriorityControlSet extends TaskEditControlFragment {
return TAG;
}
@Override
public void initialize(boolean isNewTask, Task task) {
priority = task.getImportance();
}
@Override
public void apply(Task task) {
task.setImportance(priority);

@ -1,5 +1,6 @@
package org.tasks.ui;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
@ -17,6 +18,10 @@ import butterknife.ButterKnife;
public abstract class TaskEditControlFragment extends InjectingFragment {
public static final String EXTRA_TASK = "extra_task";
protected Task task;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@ -29,14 +34,22 @@ public abstract class TaskEditControlFragment extends InjectingFragment {
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Bundle arguments = getArguments();
if (arguments != null) {
task = arguments.getParcelable(EXTRA_TASK);
}
}
protected abstract int getLayout();
protected abstract int getIcon();
public abstract int controlId();
public abstract void initialize(boolean isNewTask, Task task);
public abstract void apply(Task task);
public boolean hasChanges(Task original) {

Loading…
Cancel
Save