|
|
@ -23,7 +23,6 @@ import android.graphics.ColorMatrix;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.preference.PreferenceManager;
|
|
|
|
import android.preference.PreferenceManager;
|
|
|
|
import android.text.format.DateFormat;
|
|
|
|
import android.text.format.DateFormat;
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View.OnClickListener;
|
|
|
|
import android.view.View.OnClickListener;
|
|
|
@ -45,270 +44,267 @@ import org.isoron.helpers.DialogHelper.OnSavedListener;
|
|
|
|
import org.isoron.uhabits.R;
|
|
|
|
import org.isoron.uhabits.R;
|
|
|
|
import org.isoron.uhabits.models.Habit;
|
|
|
|
import org.isoron.uhabits.models.Habit;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import java.util.TimeZone;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|
|
|
public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|
|
|
{
|
|
|
|
{
|
|
|
|
private int mode;
|
|
|
|
private int mode;
|
|
|
|
static final int EDIT_MODE = 0;
|
|
|
|
static final int EDIT_MODE = 0;
|
|
|
|
static final int CREATE_MODE = 1;
|
|
|
|
static final int CREATE_MODE = 1;
|
|
|
|
|
|
|
|
|
|
|
|
private OnSavedListener onSavedListener;
|
|
|
|
private OnSavedListener onSavedListener;
|
|
|
|
|
|
|
|
|
|
|
|
private Habit originalHabit, modified_habit;
|
|
|
|
private Habit originalHabit, modified_habit;
|
|
|
|
private TextView tvName, tvDescription, tvFreqNum, tvFreqDen, tvInputReminder;
|
|
|
|
private TextView tvName, tvDescription, tvFreqNum, tvFreqDen, tvInputReminder;
|
|
|
|
|
|
|
|
|
|
|
|
private SharedPreferences prefs;
|
|
|
|
private SharedPreferences prefs;
|
|
|
|
private boolean is24HourMode;
|
|
|
|
private boolean is24HourMode;
|
|
|
|
|
|
|
|
|
|
|
|
static class SolidColorMatrix extends ColorMatrix
|
|
|
|
static class SolidColorMatrix extends ColorMatrix
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public SolidColorMatrix(int color)
|
|
|
|
public SolidColorMatrix(int color)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float matrix[] = { 0.0f, 0.0f, 0.0f, 0.0f, Color.red(color), 0.0f, 0.0f, 0.0f, 0.0f,
|
|
|
|
float matrix[] = {0.0f, 0.0f, 0.0f, 0.0f, Color.red(color), 0.0f, 0.0f, 0.0f, 0.0f,
|
|
|
|
Color.green(color), 0.0f, 0.0f, 0.0f, 0.0f, Color.blue(color), 0.0f, 0.0f,
|
|
|
|
Color.green(color), 0.0f, 0.0f, 0.0f, 0.0f, Color.blue(color), 0.0f, 0.0f, 0.0f,
|
|
|
|
0.0f, 1.0f, 0 };
|
|
|
|
1.0f, 0};
|
|
|
|
set(matrix);
|
|
|
|
set(matrix);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
* Factory *
|
|
|
|
* Factory *
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
|
|
|
|
|
|
|
static EditHabitFragment editSingleHabitFragment(long id)
|
|
|
|
static EditHabitFragment editSingleHabitFragment(long id)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
EditHabitFragment frag = new EditHabitFragment();
|
|
|
|
EditHabitFragment frag = new EditHabitFragment();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
args.putLong("habitId", id);
|
|
|
|
args.putLong("habitId", id);
|
|
|
|
args.putInt("editMode", EDIT_MODE);
|
|
|
|
args.putInt("editMode", EDIT_MODE);
|
|
|
|
frag.setArguments(args);
|
|
|
|
frag.setArguments(args);
|
|
|
|
return frag;
|
|
|
|
return frag;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static EditHabitFragment createHabitFragment()
|
|
|
|
static EditHabitFragment createHabitFragment()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
EditHabitFragment frag = new EditHabitFragment();
|
|
|
|
EditHabitFragment frag = new EditHabitFragment();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
args.putInt("editMode", CREATE_MODE);
|
|
|
|
args.putInt("editMode", CREATE_MODE);
|
|
|
|
frag.setArguments(args);
|
|
|
|
frag.setArguments(args);
|
|
|
|
return frag;
|
|
|
|
return frag;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
* Creation *
|
|
|
|
* Creation *
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
|
|
Bundle savedInstanceState)
|
|
|
|
Bundle savedInstanceState)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
View view = inflater.inflate(R.layout.edit_habit, container, false);
|
|
|
|
View view = inflater.inflate(R.layout.edit_habit, container, false);
|
|
|
|
tvName = (TextView) view.findViewById(R.id.input_name);
|
|
|
|
tvName = (TextView) view.findViewById(R.id.input_name);
|
|
|
|
tvDescription = (TextView) view.findViewById(R.id.input_description);
|
|
|
|
tvDescription = (TextView) view.findViewById(R.id.input_description);
|
|
|
|
tvFreqNum = (TextView) view.findViewById(R.id.input_freq_num);
|
|
|
|
tvFreqNum = (TextView) view.findViewById(R.id.input_freq_num);
|
|
|
|
tvFreqDen = (TextView) view.findViewById(R.id.input_freq_den);
|
|
|
|
tvFreqDen = (TextView) view.findViewById(R.id.input_freq_den);
|
|
|
|
tvInputReminder = (TextView) view.findViewById(R.id.input_reminder_time);
|
|
|
|
tvInputReminder = (TextView) view.findViewById(R.id.input_reminder_time);
|
|
|
|
|
|
|
|
|
|
|
|
Button buttonSave = (Button) view.findViewById(R.id.buttonSave);
|
|
|
|
Button buttonSave = (Button) view.findViewById(R.id.buttonSave);
|
|
|
|
Button buttonDiscard = (Button) view.findViewById(R.id.buttonDiscard);
|
|
|
|
Button buttonDiscard = (Button) view.findViewById(R.id.buttonDiscard);
|
|
|
|
|
|
|
|
|
|
|
|
buttonSave.setOnClickListener(this);
|
|
|
|
buttonSave.setOnClickListener(this);
|
|
|
|
buttonDiscard.setOnClickListener(this);
|
|
|
|
buttonDiscard.setOnClickListener(this);
|
|
|
|
tvInputReminder.setOnClickListener(this);
|
|
|
|
tvInputReminder.setOnClickListener(this);
|
|
|
|
|
|
|
|
|
|
|
|
ImageButton buttonPickColor = (ImageButton) view.findViewById(R.id.button_pick_color);
|
|
|
|
ImageButton buttonPickColor = (ImageButton) view.findViewById(R.id.button_pick_color);
|
|
|
|
|
|
|
|
|
|
|
|
prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
|
|
|
prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
|
|
|
|
|
|
|
|
|
|
|
Bundle args = getArguments();
|
|
|
|
Bundle args = getArguments();
|
|
|
|
mode = (Integer) args.get("editMode");
|
|
|
|
mode = (Integer) args.get("editMode");
|
|
|
|
|
|
|
|
|
|
|
|
is24HourMode = DateFormat.is24HourFormat(getContext());
|
|
|
|
is24HourMode = DateFormat.is24HourFormat(getContext());
|
|
|
|
|
|
|
|
|
|
|
|
if(mode == CREATE_MODE)
|
|
|
|
if (mode == CREATE_MODE)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
getDialog().setTitle("Create habit");
|
|
|
|
getDialog().setTitle("Create habit");
|
|
|
|
modified_habit = new Habit();
|
|
|
|
modified_habit = new Habit();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int defaultNum = prefs.getInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
|
|
|
|
|
|
|
int defaultDen = prefs.getInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
|
|
|
|
|
|
|
int defaultColor = prefs.getInt("pref_default_habit_color", modified_habit.color);
|
|
|
|
|
|
|
|
|
|
|
|
int defaultNum = prefs.getInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
|
|
|
modified_habit.color = defaultColor;
|
|
|
|
int defaultDen = prefs.getInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
|
|
|
modified_habit.freq_num = defaultNum;
|
|
|
|
int defaultColor = prefs.getInt("pref_default_habit_color", modified_habit.color);
|
|
|
|
modified_habit.freq_den = defaultDen;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (mode == EDIT_MODE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
originalHabit = Habit.get((Long) args.get("habitId"));
|
|
|
|
|
|
|
|
modified_habit = new Habit(originalHabit);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getDialog().setTitle("Edit habit");
|
|
|
|
|
|
|
|
tvName.append(modified_habit.name);
|
|
|
|
|
|
|
|
tvDescription.append(modified_habit.description);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
modified_habit.color = defaultColor;
|
|
|
|
tvFreqNum.append(modified_habit.freq_num.toString());
|
|
|
|
modified_habit.freq_num = defaultNum;
|
|
|
|
tvFreqDen.append(modified_habit.freq_den.toString());
|
|
|
|
modified_habit.freq_den = defaultDen;
|
|
|
|
|
|
|
|
|
|
|
|
changeColor(modified_habit.color);
|
|
|
|
|
|
|
|
updateReminder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
buttonPickColor.setOnClickListener(new OnClickListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public void onClick(View view)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ColorPickerDialog picker =
|
|
|
|
|
|
|
|
ColorPickerDialog.newInstance(R.string.color_picker_default_title,
|
|
|
|
|
|
|
|
ColorHelper.palette, modified_habit.color, 4,
|
|
|
|
|
|
|
|
ColorPickerDialog.SIZE_SMALL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
picker.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public void onColorSelected(int color)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
changeColor(color);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
picker.show(getFragmentManager(), "picker");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return view;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void changeColor(Integer color)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
modified_habit.color = color;
|
|
|
|
|
|
|
|
tvName.setTextColor(color);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
|
|
|
|
editor.putInt("pref_default_habit_color", color);
|
|
|
|
|
|
|
|
editor.apply();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void updateReminder()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (modified_habit.reminder_hour != null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tvInputReminder.setTextColor(Color.BLACK);
|
|
|
|
|
|
|
|
tvInputReminder.setText(
|
|
|
|
|
|
|
|
DateHelper.formatTime(getActivity(), modified_habit.reminder_hour,
|
|
|
|
|
|
|
|
modified_habit.reminder_min));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(mode == EDIT_MODE)
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
originalHabit = Habit.get((Long) args.get("habitId"));
|
|
|
|
tvInputReminder.setTextColor(Color.GRAY);
|
|
|
|
modified_habit = new Habit(originalHabit);
|
|
|
|
tvInputReminder.setText("Off");
|
|
|
|
|
|
|
|
}
|
|
|
|
getDialog().setTitle("Edit habit");
|
|
|
|
}
|
|
|
|
tvName.append(modified_habit.name);
|
|
|
|
|
|
|
|
tvDescription.append(modified_habit.description);
|
|
|
|
public void setOnSavedListener(OnSavedListener onSavedListener)
|
|
|
|
}
|
|
|
|
{
|
|
|
|
|
|
|
|
this.onSavedListener = onSavedListener;
|
|
|
|
tvFreqNum.append(modified_habit.freq_num.toString());
|
|
|
|
}
|
|
|
|
tvFreqDen.append(modified_habit.freq_den.toString());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
changeColor(modified_habit.color);
|
|
|
|
|
|
|
|
updateReminder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
buttonPickColor.setOnClickListener(new OnClickListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public void onClick(View view)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ColorPickerDialog picker = ColorPickerDialog.newInstance(
|
|
|
|
|
|
|
|
R.string.color_picker_default_title,
|
|
|
|
|
|
|
|
ColorHelper.palette, modified_habit.color, 4, ColorPickerDialog.SIZE_SMALL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
picker.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public void onColorSelected(int color)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
changeColor(color);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
picker.show(getFragmentManager(), "picker");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return view;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void changeColor(Integer color)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
modified_habit.color = color;
|
|
|
|
|
|
|
|
tvName.setTextColor(color);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
|
|
|
|
editor.putInt("pref_default_habit_color", color);
|
|
|
|
|
|
|
|
editor.apply();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void updateReminder()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(modified_habit.reminder_hour != null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tvInputReminder.setTextColor(Color.BLACK);
|
|
|
|
|
|
|
|
tvInputReminder.setText(DateHelper.formatTime(getActivity(),
|
|
|
|
|
|
|
|
modified_habit.reminder_hour, modified_habit.reminder_min));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
tvInputReminder.setTextColor(Color.GRAY);
|
|
|
|
|
|
|
|
tvInputReminder.setText("Off");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setOnSavedListener(OnSavedListener onSavedListener)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.onSavedListener = onSavedListener;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
|
|
* Callback *
|
|
|
|
* Callback *
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(View v)
|
|
|
|
public void onClick(View v)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int id = v.getId();
|
|
|
|
int id = v.getId();
|
|
|
|
|
|
|
|
|
|
|
|
/* Due date spinner */
|
|
|
|
/* Due date spinner */
|
|
|
|
if(id == R.id.input_reminder_time)
|
|
|
|
if (id == R.id.input_reminder_time)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int default_hour = 8;
|
|
|
|
int default_hour = 8;
|
|
|
|
int default_min = 0;
|
|
|
|
int default_min = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if(modified_habit.reminder_hour != null) {
|
|
|
|
if (modified_habit.reminder_hour != null)
|
|
|
|
default_hour = modified_habit.reminder_hour;
|
|
|
|
{
|
|
|
|
default_min = modified_habit.reminder_min;
|
|
|
|
default_hour = modified_habit.reminder_hour;
|
|
|
|
}
|
|
|
|
default_min = modified_habit.reminder_min;
|
|
|
|
|
|
|
|
}
|
|
|
|
TimePickerDialog timePicker = TimePickerDialog.newInstance(new OnTimeSetListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
TimePickerDialog timePicker = TimePickerDialog.newInstance(new OnTimeSetListener()
|
|
|
|
|
|
|
|
{
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onTimeSet(RadialPickerLayout view, int hour, int minute)
|
|
|
|
@Override
|
|
|
|
{
|
|
|
|
public void onTimeSet(RadialPickerLayout view, int hour, int minute)
|
|
|
|
modified_habit.reminder_hour = hour;
|
|
|
|
{
|
|
|
|
modified_habit.reminder_min = minute;
|
|
|
|
modified_habit.reminder_hour = hour;
|
|
|
|
updateReminder();
|
|
|
|
modified_habit.reminder_min = minute;
|
|
|
|
}
|
|
|
|
updateReminder();
|
|
|
|
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onTimeCleared(RadialPickerLayout view)
|
|
|
|
@Override
|
|
|
|
{
|
|
|
|
public void onTimeCleared(RadialPickerLayout view)
|
|
|
|
modified_habit.reminder_hour = null;
|
|
|
|
{
|
|
|
|
modified_habit.reminder_min = null;
|
|
|
|
modified_habit.reminder_hour = null;
|
|
|
|
updateReminder();
|
|
|
|
modified_habit.reminder_min = null;
|
|
|
|
}
|
|
|
|
updateReminder();
|
|
|
|
}, default_hour, default_min, is24HourMode);
|
|
|
|
}
|
|
|
|
timePicker.show(getFragmentManager(), "timePicker");
|
|
|
|
}, default_hour, default_min, is24HourMode);
|
|
|
|
}
|
|
|
|
timePicker.show(getFragmentManager(), "timePicker");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Save button */
|
|
|
|
/* Save button */
|
|
|
|
if(id == R.id.buttonSave)
|
|
|
|
if (id == R.id.buttonSave)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Command command = null;
|
|
|
|
Command command = null;
|
|
|
|
|
|
|
|
|
|
|
|
modified_habit.name = tvName.getText().toString().trim();
|
|
|
|
modified_habit.name = tvName.getText().toString().trim();
|
|
|
|
modified_habit.description = tvDescription.getText().toString().trim();
|
|
|
|
modified_habit.description = tvDescription.getText().toString().trim();
|
|
|
|
modified_habit.freq_num = Integer.parseInt(tvFreqNum.getText().toString());
|
|
|
|
modified_habit.freq_num = Integer.parseInt(tvFreqNum.getText().toString());
|
|
|
|
modified_habit.freq_den = Integer.parseInt(tvFreqDen.getText().toString());
|
|
|
|
modified_habit.freq_den = Integer.parseInt(tvFreqDen.getText().toString());
|
|
|
|
|
|
|
|
|
|
|
|
Boolean valid = true;
|
|
|
|
Boolean valid = true;
|
|
|
|
|
|
|
|
|
|
|
|
if(modified_habit.name.length() == 0)
|
|
|
|
if (modified_habit.name.length() == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
tvName.setError("Name cannot be blank.");
|
|
|
|
tvName.setError("Name cannot be blank.");
|
|
|
|
valid = false;
|
|
|
|
valid = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(modified_habit.freq_den <= 0)
|
|
|
|
if (modified_habit.freq_den <= 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
tvFreqNum.setError("Number must be positive.");
|
|
|
|
tvFreqNum.setError("Number must be positive.");
|
|
|
|
valid = false;
|
|
|
|
valid = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(modified_habit.freq_num > modified_habit.freq_den)
|
|
|
|
if (modified_habit.freq_num > modified_habit.freq_den)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
tvFreqNum.setError("You can have at most one repetition per day");
|
|
|
|
tvFreqNum.setError("You can have at most one repetition per day");
|
|
|
|
valid = false;
|
|
|
|
valid = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!valid)
|
|
|
|
if (!valid) return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
editor.putInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
|
|
|
editor.putInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
|
|
|
editor.putInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
|
|
|
editor.putInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
|
|
|
editor.apply();
|
|
|
|
editor.apply();
|
|
|
|
|
|
|
|
|
|
|
|
Habit savedHabit = null;
|
|
|
|
Habit savedHabit = null;
|
|
|
|
|
|
|
|
|
|
|
|
if(mode == EDIT_MODE)
|
|
|
|
if (mode == EDIT_MODE)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
command = originalHabit.new EditCommand(modified_habit);
|
|
|
|
command = originalHabit.new EditCommand(modified_habit);
|
|
|
|
savedHabit = originalHabit;
|
|
|
|
savedHabit = originalHabit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(mode == CREATE_MODE)
|
|
|
|
if (mode == CREATE_MODE) command = new Habit.CreateCommand(modified_habit);
|
|
|
|
command = new Habit.CreateCommand(modified_habit);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(onSavedListener != null)
|
|
|
|
if (onSavedListener != null) onSavedListener.onSaved(command, savedHabit);
|
|
|
|
onSavedListener.onSaved(command, savedHabit);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dismiss();
|
|
|
|
dismiss();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Discard button */
|
|
|
|
/* Discard button */
|
|
|
|
if(id == R.id.buttonDiscard)
|
|
|
|
if (id == R.id.buttonDiscard)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
dismiss();
|
|
|
|
dismiss();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|