|
|
@ -22,15 +22,12 @@ import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View.OnClickListener;
|
|
|
|
import android.view.View.OnClickListener;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.ArrayAdapter;
|
|
|
|
|
|
|
|
import android.widget.LinearLayout;
|
|
|
|
import android.widget.LinearLayout;
|
|
|
|
import android.widget.Spinner;
|
|
|
|
|
|
|
|
import android.widget.TextView;
|
|
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.annotation.StringRes;
|
|
|
|
import androidx.annotation.StringRes;
|
|
|
|
import butterknife.BindView;
|
|
|
|
import butterknife.BindView;
|
|
|
|
import butterknife.OnClick;
|
|
|
|
import butterknife.OnClick;
|
|
|
|
import butterknife.OnItemSelected;
|
|
|
|
|
|
|
|
import com.google.common.primitives.Longs;
|
|
|
|
import com.google.common.primitives.Longs;
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
import com.todoroo.astrid.alarms.AlarmService;
|
|
|
|
import com.todoroo.astrid.alarms.AlarmService;
|
|
|
@ -49,7 +46,6 @@ import org.tasks.dialogs.MyTimePickerDialog;
|
|
|
|
import org.tasks.injection.ForActivity;
|
|
|
|
import org.tasks.injection.ForActivity;
|
|
|
|
import org.tasks.injection.FragmentComponent;
|
|
|
|
import org.tasks.injection.FragmentComponent;
|
|
|
|
import org.tasks.locale.Locale;
|
|
|
|
import org.tasks.locale.Locale;
|
|
|
|
import org.tasks.ui.HiddenTopArrayAdapter;
|
|
|
|
|
|
|
|
import org.tasks.ui.TaskEditControlFragment;
|
|
|
|
import org.tasks.ui.TaskEditControlFragment;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -66,7 +62,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
private static final String EXTRA_FLAGS = "extra_flags";
|
|
|
|
private static final String EXTRA_FLAGS = "extra_flags";
|
|
|
|
private static final String EXTRA_RANDOM_REMINDER = "extra_random_reminder";
|
|
|
|
private static final String EXTRA_RANDOM_REMINDER = "extra_random_reminder";
|
|
|
|
private static final String EXTRA_ALARMS = "extra_alarms";
|
|
|
|
private static final String EXTRA_ALARMS = "extra_alarms";
|
|
|
|
private final List<String> spinnerOptions = new ArrayList<>();
|
|
|
|
|
|
|
|
private final Set<Long> alarms = new LinkedHashSet<>();
|
|
|
|
private final Set<Long> alarms = new LinkedHashSet<>();
|
|
|
|
@Inject AlarmService alarmService;
|
|
|
|
@Inject AlarmService alarmService;
|
|
|
|
@Inject @ForActivity Context context;
|
|
|
|
@Inject @ForActivity Context context;
|
|
|
@ -79,9 +74,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
@BindView(R.id.reminder_alarm)
|
|
|
|
@BindView(R.id.reminder_alarm)
|
|
|
|
TextView mode;
|
|
|
|
TextView mode;
|
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.alarms_add_spinner)
|
|
|
|
|
|
|
|
Spinner addSpinner;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private long taskId;
|
|
|
|
private long taskId;
|
|
|
|
private int flags;
|
|
|
|
private int flags;
|
|
|
|
private long randomReminder;
|
|
|
|
private long randomReminder;
|
|
|
@ -89,7 +81,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
private RandomReminderControlSet randomControlSet;
|
|
|
|
private RandomReminderControlSet randomControlSet;
|
|
|
|
private boolean whenDue;
|
|
|
|
private boolean whenDue;
|
|
|
|
private boolean whenOverdue;
|
|
|
|
private boolean whenOverdue;
|
|
|
|
private ArrayAdapter<String> remindAdapter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Nullable
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -99,9 +90,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
|
|
|
|
|
|
|
|
mode.setPaintFlags(mode.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
|
|
|
|
mode.setPaintFlags(mode.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
|
|
|
|
|
|
|
|
|
|
|
|
remindAdapter =
|
|
|
|
|
|
|
|
new HiddenTopArrayAdapter(context, android.R.layout.simple_spinner_item, spinnerOptions);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
taskId = task.getId();
|
|
|
|
taskId = task.getId();
|
|
|
|
if (savedInstanceState == null) {
|
|
|
|
if (savedInstanceState == null) {
|
|
|
|
flags = task.getReminderFlags();
|
|
|
|
flags = task.getReminderFlags();
|
|
|
@ -113,8 +101,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
setup(Longs.asList(savedInstanceState.getLongArray(EXTRA_ALARMS)));
|
|
|
|
setup(Longs.asList(savedInstanceState.getLongArray(EXTRA_ALARMS)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
addSpinner.setAdapter(remindAdapter);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return view;
|
|
|
|
return view;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -152,9 +138,7 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@OnItemSelected(R.id.alarms_add_spinner)
|
|
|
|
void addAlarm(String selected) {
|
|
|
|
void addAlarm(int position) {
|
|
|
|
|
|
|
|
String selected = spinnerOptions.get(position);
|
|
|
|
|
|
|
|
if (selected.equals(getString(R.string.when_due))) {
|
|
|
|
if (selected.equals(getString(R.string.when_due))) {
|
|
|
|
addDue();
|
|
|
|
addDue();
|
|
|
|
} else if (selected.equals(getString(R.string.when_overdue))) {
|
|
|
|
} else if (selected.equals(getString(R.string.when_overdue))) {
|
|
|
@ -164,17 +148,23 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
} else if (selected.equals(getString(R.string.pick_a_date_and_time))) {
|
|
|
|
} else if (selected.equals(getString(R.string.pick_a_date_and_time))) {
|
|
|
|
addNewAlarm();
|
|
|
|
addNewAlarm();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (position != 0) {
|
|
|
|
|
|
|
|
updateSpinner();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@OnClick(R.id.alarms_add)
|
|
|
|
@OnClick(R.id.alarms_add)
|
|
|
|
void addAlarm(View view) {
|
|
|
|
void addAlarm(View view) {
|
|
|
|
if (spinnerOptions.size() == 2) {
|
|
|
|
List<String> options = getOptions();
|
|
|
|
|
|
|
|
if (options.size() == 1) {
|
|
|
|
addNewAlarm();
|
|
|
|
addNewAlarm();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
addSpinner.performClick();
|
|
|
|
dialogBuilder
|
|
|
|
|
|
|
|
.newDialog()
|
|
|
|
|
|
|
|
.setItems(
|
|
|
|
|
|
|
|
options,
|
|
|
|
|
|
|
|
(dialog, which) -> {
|
|
|
|
|
|
|
|
addAlarm(options.get(which));
|
|
|
|
|
|
|
|
dialog.dismiss();
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -209,7 +199,6 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
for (long timestamp : alarms) {
|
|
|
|
for (long timestamp : alarms) {
|
|
|
|
addAlarmRow(timestamp);
|
|
|
|
addAlarmRow(timestamp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
updateSpinner();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -309,26 +298,22 @@ public class ReminderControlSet extends TaskEditControlFragment {
|
|
|
|
if (onRemove != null) {
|
|
|
|
if (onRemove != null) {
|
|
|
|
onRemove.onClick(v);
|
|
|
|
onRemove.onClick(v);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
updateSpinner();
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
updateSpinner();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateSpinner() {
|
|
|
|
private List<String> getOptions() {
|
|
|
|
addSpinner.setSelection(0);
|
|
|
|
List<String> options = new ArrayList<>();
|
|
|
|
spinnerOptions.clear();
|
|
|
|
|
|
|
|
spinnerOptions.add("");
|
|
|
|
|
|
|
|
if (!whenDue) {
|
|
|
|
if (!whenDue) {
|
|
|
|
spinnerOptions.add(getString(R.string.when_due));
|
|
|
|
options.add(getString(R.string.when_due));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!whenOverdue) {
|
|
|
|
if (!whenOverdue) {
|
|
|
|
spinnerOptions.add(getString(R.string.when_overdue));
|
|
|
|
options.add(getString(R.string.when_overdue));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (randomControlSet == null) {
|
|
|
|
if (randomControlSet == null) {
|
|
|
|
spinnerOptions.add(getString(R.string.randomly));
|
|
|
|
options.add(getString(R.string.randomly));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
spinnerOptions.add(getString(R.string.pick_a_date_and_time));
|
|
|
|
options.add(getString(R.string.pick_a_date_and_time));
|
|
|
|
remindAdapter.notifyDataSetChanged();
|
|
|
|
return options;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void addDue() {
|
|
|
|
private void addDue() {
|
|
|
|