|
|
@ -11,6 +11,7 @@ import android.view.View.OnClickListener;
|
|
|
|
import android.widget.AdapterView;
|
|
|
|
import android.widget.AdapterView;
|
|
|
|
import android.widget.AdapterView.OnItemSelectedListener;
|
|
|
|
import android.widget.AdapterView.OnItemSelectedListener;
|
|
|
|
import android.widget.ArrayAdapter;
|
|
|
|
import android.widget.ArrayAdapter;
|
|
|
|
|
|
|
|
import android.widget.ImageView;
|
|
|
|
import android.widget.Spinner;
|
|
|
|
import android.widget.Spinner;
|
|
|
|
import android.widget.TextView;
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
|
|
|
@ -22,7 +23,12 @@ import com.todoroo.astrid.helper.TaskEditControlSetBase;
|
|
|
|
import org.tasks.R;
|
|
|
|
import org.tasks.R;
|
|
|
|
import org.tasks.activities.DateAndTimePickerActivity;
|
|
|
|
import org.tasks.activities.DateAndTimePickerActivity;
|
|
|
|
import org.tasks.time.DateTime;
|
|
|
|
import org.tasks.time.DateTime;
|
|
|
|
|
|
|
|
import org.tasks.ui.HiddenTopArrayAdapter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static java.util.Arrays.asList;
|
|
|
|
import static org.tasks.date.DateTimeUtils.newDateTime;
|
|
|
|
import static org.tasks.date.DateTimeUtils.newDateTime;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -45,6 +51,8 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
private long existingDate = EXISTING_TIME_UNSET;
|
|
|
|
private long existingDate = EXISTING_TIME_UNSET;
|
|
|
|
private TaskEditFragment taskEditFragment;
|
|
|
|
private TaskEditFragment taskEditFragment;
|
|
|
|
private TextView textDisplay;
|
|
|
|
private TextView textDisplay;
|
|
|
|
|
|
|
|
private ImageView clearButton;
|
|
|
|
|
|
|
|
private final List<HideUntilValue> spinnerItems = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
public HideUntilControlSet(TaskEditFragment taskEditFragment) {
|
|
|
|
public HideUntilControlSet(TaskEditFragment taskEditFragment) {
|
|
|
|
super(taskEditFragment.getActivity(), R.layout.control_set_hide);
|
|
|
|
super(taskEditFragment.getActivity(), R.layout.control_set_hide);
|
|
|
@ -80,34 +88,32 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private HideUntilValue[] createHideUntilList(long specificDate) {
|
|
|
|
private void updateSpinnerOptions(long specificDate) {
|
|
|
|
|
|
|
|
spinnerItems.clear();
|
|
|
|
// set up base values
|
|
|
|
// set up base values
|
|
|
|
String[] labels = activity.getResources().getStringArray(R.array.TEA_hideUntil);
|
|
|
|
String[] labels = activity.getResources().getStringArray(R.array.TEA_hideUntil);
|
|
|
|
HideUntilValue[] values = new HideUntilValue[labels.length];
|
|
|
|
spinnerItems.addAll(new ArrayList<>(asList(
|
|
|
|
values[0] = new HideUntilValue(labels[0], Task.HIDE_UNTIL_NONE);
|
|
|
|
new HideUntilValue(labels[1], Task.HIDE_UNTIL_DUE),
|
|
|
|
values[1] = new HideUntilValue(labels[1], Task.HIDE_UNTIL_DUE);
|
|
|
|
new HideUntilValue(labels[2], Task.HIDE_UNTIL_DUE_TIME),
|
|
|
|
values[2] = new HideUntilValue(labels[2], Task.HIDE_UNTIL_DUE_TIME);
|
|
|
|
new HideUntilValue(labels[3], Task.HIDE_UNTIL_DAY_BEFORE),
|
|
|
|
values[3] = new HideUntilValue(labels[3], Task.HIDE_UNTIL_DAY_BEFORE);
|
|
|
|
new HideUntilValue(labels[4], Task.HIDE_UNTIL_WEEK_BEFORE),
|
|
|
|
values[4] = new HideUntilValue(labels[4], Task.HIDE_UNTIL_WEEK_BEFORE);
|
|
|
|
new HideUntilValue(labels[5], Task.HIDE_UNTIL_SPECIFIC_DAY, -1))));
|
|
|
|
values[5] = new HideUntilValue(labels[5], Task.HIDE_UNTIL_SPECIFIC_DAY, -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(specificDate > 0) {
|
|
|
|
if(specificDate > 0) {
|
|
|
|
HideUntilValue[] updated = new HideUntilValue[values.length + 1];
|
|
|
|
|
|
|
|
System.arraycopy(values, 0, updated, 1, values.length);
|
|
|
|
|
|
|
|
DateTime hideUntilAsDate = newDateTime(specificDate);
|
|
|
|
DateTime hideUntilAsDate = newDateTime(specificDate);
|
|
|
|
if(hideUntilAsDate.getHourOfDay() == 0 && hideUntilAsDate.getMinuteOfHour() == 0 && hideUntilAsDate.getSecondOfMinute() == 0) {
|
|
|
|
if(hideUntilAsDate.getHourOfDay() == 0 && hideUntilAsDate.getMinuteOfHour() == 0 && hideUntilAsDate.getSecondOfMinute() == 0) {
|
|
|
|
updated[0] = new HideUntilValue(DateUtilities.getDateString(newDateTime(specificDate)),
|
|
|
|
spinnerItems.add(0, new HideUntilValue(DateUtilities.getDateString(newDateTime(specificDate)),
|
|
|
|
Task.HIDE_UNTIL_SPECIFIC_DAY, specificDate);
|
|
|
|
Task.HIDE_UNTIL_SPECIFIC_DAY, specificDate));
|
|
|
|
existingDate = specificDate;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
updated[0] = new HideUntilValue(DateUtilities.getDateStringWithTime(activity, newDateTime(specificDate)),
|
|
|
|
spinnerItems.add(0, new HideUntilValue(DateUtilities.getDateStringWithTime(activity, newDateTime(specificDate)),
|
|
|
|
Task.HIDE_UNTIL_SPECIFIC_DAY_TIME, specificDate);
|
|
|
|
Task.HIDE_UNTIL_SPECIFIC_DAY_TIME, specificDate));
|
|
|
|
existingDate = specificDate;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
values = updated;
|
|
|
|
existingDate = specificDate;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
spinnerItems.add(0, new HideUntilValue(labels[0], Task.HIDE_UNTIL_NONE));
|
|
|
|
|
|
|
|
existingDate = EXISTING_TIME_UNSET;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
adapter.notifyDataSetChanged();
|
|
|
|
return values;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- listening for events
|
|
|
|
// --- listening for events
|
|
|
@ -146,10 +152,7 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
DateTime customDate;
|
|
|
|
DateTime customDate;
|
|
|
|
|
|
|
|
|
|
|
|
private void customDateFinished() {
|
|
|
|
private void customDateFinished() {
|
|
|
|
HideUntilValue[] list = createHideUntilList(customDate.getMillis());
|
|
|
|
updateSpinnerOptions(customDate.getMillis());
|
|
|
|
adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, list);
|
|
|
|
|
|
|
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
|
|
|
|
|
|
spinner.setAdapter(adapter);
|
|
|
|
|
|
|
|
spinner.setSelection(0);
|
|
|
|
spinner.setSelection(0);
|
|
|
|
refreshDisplayView();
|
|
|
|
refreshDisplayView();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -161,6 +164,7 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
if (value.setting == Task.HIDE_UNTIL_NONE) {
|
|
|
|
if (value.setting == Task.HIDE_UNTIL_NONE) {
|
|
|
|
textDisplay.setText(R.string.TEA_hideUntil_label);
|
|
|
|
textDisplay.setText(R.string.TEA_hideUntil_label);
|
|
|
|
textDisplay.setTextColor(unsetColor);
|
|
|
|
textDisplay.setTextColor(unsetColor);
|
|
|
|
|
|
|
|
clearButton.setVisibility(View.GONE);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
String display = value.toString();
|
|
|
|
String display = value.toString();
|
|
|
|
if (value.setting != Task.HIDE_UNTIL_SPECIFIC_DAY && value.setting != Task.HIDE_UNTIL_SPECIFIC_DAY_TIME) {
|
|
|
|
if (value.setting != Task.HIDE_UNTIL_SPECIFIC_DAY && value.setting != Task.HIDE_UNTIL_SPECIFIC_DAY_TIME) {
|
|
|
@ -169,12 +173,23 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
|
|
|
|
|
|
|
|
textDisplay.setText(activity.getString(R.string.TEA_hideUntil_display, display));
|
|
|
|
textDisplay.setText(activity.getString(R.string.TEA_hideUntil_display, display));
|
|
|
|
textDisplay.setTextColor(themeColor);
|
|
|
|
textDisplay.setTextColor(themeColor);
|
|
|
|
|
|
|
|
clearButton.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void afterInflate() {
|
|
|
|
protected void afterInflate() {
|
|
|
|
textDisplay = (TextView) getView().findViewById(R.id.display_row_edit);
|
|
|
|
textDisplay = (TextView) getView().findViewById(R.id.display_row_edit);
|
|
|
|
|
|
|
|
clearButton = (ImageView) getView().findViewById(R.id.clear_hide_date);
|
|
|
|
|
|
|
|
clearButton.setOnClickListener(new OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
updateSpinnerOptions(0);
|
|
|
|
|
|
|
|
selection = 0;
|
|
|
|
|
|
|
|
spinner.setSelection(selection);
|
|
|
|
|
|
|
|
refreshDisplayView();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
textDisplay.setOnClickListener(new OnClickListener() {
|
|
|
|
textDisplay.setOnClickListener(new OnClickListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
public void onClick(View v) {
|
|
|
@ -185,6 +200,8 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.spinner = (Spinner) getView().findViewById(R.id.hideUntil);
|
|
|
|
this.spinner = (Spinner) getView().findViewById(R.id.hideUntil);
|
|
|
|
|
|
|
|
adapter = new HiddenTopArrayAdapter<>(activity, android.R.layout.simple_spinner_item, spinnerItems);
|
|
|
|
|
|
|
|
spinner.setAdapter(adapter);
|
|
|
|
this.spinner.setOnItemSelectedListener(this);
|
|
|
|
this.spinner.setOnItemSelectedListener(this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -218,9 +235,7 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
|
|
|
|
date = 0;
|
|
|
|
date = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
HideUntilValue[] list = createHideUntilList(date);
|
|
|
|
updateSpinnerOptions(date);
|
|
|
|
adapter = new ArrayAdapter<>(
|
|
|
|
|
|
|
|
activity, android.R.layout.simple_spinner_item, list);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
super.readFromTask(task);
|
|
|
|
super.readFromTask(task);
|
|
|
|
}
|
|
|
|
}
|
|
|
|