mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-07 01:28:52 -06:00
Refactor EditHabitsFragment
This commit is contained in:
@@ -110,7 +110,7 @@ public class ReminderAlarmReceiver extends BroadcastReceiver
|
|||||||
habit.save();
|
habit.save();
|
||||||
|
|
||||||
// Check if reminder has been turned off after alarm was scheduled
|
// Check if reminder has been turned off after alarm was scheduled
|
||||||
if (habit.reminder_hour == null) return;
|
if (habit.reminderHour == null) return;
|
||||||
|
|
||||||
Intent contentIntent = new Intent(context, MainActivity.class);
|
Intent contentIntent = new Intent(context, MainActivity.class);
|
||||||
contentIntent.setData(data);
|
contentIntent.setData(data);
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ public class ReminderHelper
|
|||||||
{
|
{
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
calendar.setTimeInMillis(System.currentTimeMillis());
|
calendar.setTimeInMillis(System.currentTimeMillis());
|
||||||
calendar.set(Calendar.HOUR_OF_DAY, habit.reminder_hour);
|
calendar.set(Calendar.HOUR_OF_DAY, habit.reminderHour);
|
||||||
calendar.set(Calendar.MINUTE, habit.reminder_min);
|
calendar.set(Calendar.MINUTE, habit.reminderMin);
|
||||||
calendar.set(Calendar.SECOND, 0);
|
calendar.set(Calendar.SECOND, 0);
|
||||||
|
|
||||||
reminderTime = calendar.getTimeInMillis();
|
reminderTime = calendar.getTimeInMillis();
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package org.isoron.uhabits.dialogs;
|
|||||||
import android.app.DialogFragment;
|
import android.app.DialogFragment;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
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;
|
||||||
@@ -46,33 +45,18 @@ import org.isoron.uhabits.models.Habit;
|
|||||||
|
|
||||||
public class EditHabitFragment extends DialogFragment implements OnClickListener
|
public class EditHabitFragment extends DialogFragment implements OnClickListener
|
||||||
{
|
{
|
||||||
private int mode;
|
private Integer 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, modifiedHabit;
|
||||||
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
|
|
||||||
{
|
|
||||||
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,
|
|
||||||
Color.green(color), 0.0f, 0.0f, 0.0f, 0.0f, Color.blue(color), 0.0f, 0.0f, 0.0f,
|
|
||||||
1.0f, 0};
|
|
||||||
set(matrix);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
||||||
* Factory *
|
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
||||||
|
|
||||||
static EditHabitFragment editSingleHabitFragment(long id)
|
static EditHabitFragment editSingleHabitFragment(long id)
|
||||||
{
|
{
|
||||||
EditHabitFragment frag = new EditHabitFragment();
|
EditHabitFragment frag = new EditHabitFragment();
|
||||||
@@ -92,11 +76,7 @@ public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|||||||
return frag;
|
return frag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
@Override
|
||||||
* Creation *
|
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState)
|
Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
@@ -105,7 +85,7 @@ public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|||||||
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.inputReminderTime);
|
||||||
|
|
||||||
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);
|
||||||
@@ -114,70 +94,52 @@ public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|||||||
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.buttonPickColor);
|
||||||
|
|
||||||
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(getActivity());
|
||||||
|
|
||||||
if (mode == CREATE_MODE)
|
if (mode == CREATE_MODE)
|
||||||
{
|
{
|
||||||
getDialog().setTitle("Create habit");
|
getDialog().setTitle("Create habit");
|
||||||
modified_habit = new Habit();
|
modifiedHabit = new Habit();
|
||||||
|
|
||||||
int defaultNum = prefs.getInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
int defaultNum = prefs.getInt("pref_default_habit_freq_num", modifiedHabit.freqNum);
|
||||||
int defaultDen = prefs.getInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
int defaultDen = prefs.getInt("pref_default_habit_freq_den", modifiedHabit.freqDen);
|
||||||
int defaultColor = prefs.getInt("pref_default_habit_color", modified_habit.color);
|
int defaultColor = prefs.getInt("pref_default_habit_color", modifiedHabit.color);
|
||||||
|
|
||||||
modified_habit.color = defaultColor;
|
modifiedHabit.color = defaultColor;
|
||||||
modified_habit.freq_num = defaultNum;
|
modifiedHabit.freqNum = defaultNum;
|
||||||
modified_habit.freq_den = defaultDen;
|
modifiedHabit.freqDen = defaultDen;
|
||||||
}
|
}
|
||||||
else if (mode == EDIT_MODE)
|
else if (mode == EDIT_MODE)
|
||||||
{
|
{
|
||||||
originalHabit = Habit.get((Long) args.get("habitId"));
|
originalHabit = Habit.get((Long) args.get("habitId"));
|
||||||
modified_habit = new Habit(originalHabit);
|
modifiedHabit = new Habit(originalHabit);
|
||||||
|
|
||||||
getDialog().setTitle("Edit habit");
|
getDialog().setTitle("Edit habit");
|
||||||
tvName.append(modified_habit.name);
|
tvName.append(modifiedHabit.name);
|
||||||
tvDescription.append(modified_habit.description);
|
tvDescription.append(modifiedHabit.description);
|
||||||
}
|
}
|
||||||
|
|
||||||
tvFreqNum.append(modified_habit.freq_num.toString());
|
tvFreqNum.append(modifiedHabit.freqNum.toString());
|
||||||
tvFreqDen.append(modified_habit.freq_den.toString());
|
tvFreqDen.append(modifiedHabit.freqDen.toString());
|
||||||
|
|
||||||
changeColor(modified_habit.color);
|
changeColor(modifiedHabit.color);
|
||||||
updateReminder();
|
updateReminder();
|
||||||
|
|
||||||
buttonPickColor.setOnClickListener(new OnClickListener()
|
buttonPickColor.setOnClickListener(this);
|
||||||
{
|
|
||||||
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;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeColor(Integer color)
|
private void changeColor(Integer color)
|
||||||
{
|
{
|
||||||
modified_habit.color = color;
|
modifiedHabit.color = color;
|
||||||
tvName.setTextColor(color);
|
tvName.setTextColor(color);
|
||||||
|
|
||||||
SharedPreferences.Editor editor = prefs.edit();
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
@@ -187,17 +149,16 @@ public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|||||||
|
|
||||||
private void updateReminder()
|
private void updateReminder()
|
||||||
{
|
{
|
||||||
if (modified_habit.reminder_hour != null)
|
if (modifiedHabit.reminderHour != null)
|
||||||
{
|
{
|
||||||
tvInputReminder.setTextColor(Color.BLACK);
|
tvInputReminder.setTextColor(Color.BLACK);
|
||||||
tvInputReminder.setText(
|
tvInputReminder.setText(DateHelper.formatTime(getActivity(),
|
||||||
DateHelper.formatTime(getActivity(), modified_habit.reminder_hour,
|
modifiedHabit.reminderHour, modifiedHabit.reminderMin));
|
||||||
modified_habit.reminder_min));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tvInputReminder.setTextColor(Color.GRAY);
|
tvInputReminder.setTextColor(Color.GRAY);
|
||||||
tvInputReminder.setText("Off");
|
tvInputReminder.setText(R.string.reminder_off);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,105 +167,131 @@ public class EditHabitFragment extends DialogFragment implements OnClickListener
|
|||||||
this.onSavedListener = onSavedListener;
|
this.onSavedListener = onSavedListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
@Override
|
||||||
* Callback *
|
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(View v)
|
public void onClick(View v)
|
||||||
{
|
{
|
||||||
int id = v.getId();
|
switch(v.getId())
|
||||||
|
|
||||||
/* Due date spinner */
|
|
||||||
if (id == R.id.input_reminder_time)
|
|
||||||
{
|
{
|
||||||
int default_hour = 8;
|
case R.id.inputReminderTime:
|
||||||
int default_min = 0;
|
onDateSpinnerClick();
|
||||||
|
break;
|
||||||
|
|
||||||
if (modified_habit.reminder_hour != null)
|
case R.id.buttonSave:
|
||||||
{
|
onSaveButtonClick();
|
||||||
default_hour = modified_habit.reminder_hour;
|
break;
|
||||||
default_min = modified_habit.reminder_min;
|
|
||||||
}
|
|
||||||
|
|
||||||
TimePickerDialog timePicker = TimePickerDialog.newInstance(new OnTimeSetListener()
|
case R.id.buttonDiscard:
|
||||||
{
|
dismiss();
|
||||||
|
break;
|
||||||
|
|
||||||
@Override
|
case R.id.buttonPickColor:
|
||||||
public void onTimeSet(RadialPickerLayout view, int hour, int minute)
|
onColorButtonClick();
|
||||||
{
|
break;
|
||||||
modified_habit.reminder_hour = hour;
|
|
||||||
modified_habit.reminder_min = minute;
|
|
||||||
updateReminder();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTimeCleared(RadialPickerLayout view)
|
|
||||||
{
|
|
||||||
modified_habit.reminder_hour = null;
|
|
||||||
modified_habit.reminder_min = null;
|
|
||||||
updateReminder();
|
|
||||||
}
|
|
||||||
}, default_hour, default_min, is24HourMode);
|
|
||||||
timePicker.show(getFragmentManager(), "timePicker");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Save button */
|
|
||||||
if (id == R.id.buttonSave)
|
|
||||||
{
|
|
||||||
Command command = null;
|
|
||||||
|
|
||||||
modified_habit.name = tvName.getText().toString().trim();
|
|
||||||
modified_habit.description = tvDescription.getText().toString().trim();
|
|
||||||
modified_habit.freq_num = Integer.parseInt(tvFreqNum.getText().toString());
|
|
||||||
modified_habit.freq_den = Integer.parseInt(tvFreqDen.getText().toString());
|
|
||||||
|
|
||||||
Boolean valid = true;
|
|
||||||
|
|
||||||
if (modified_habit.name.length() == 0)
|
|
||||||
{
|
|
||||||
tvName.setError("Name cannot be blank.");
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (modified_habit.freq_den <= 0)
|
|
||||||
{
|
|
||||||
tvFreqNum.setError("Number must be positive.");
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (modified_habit.freq_num > modified_habit.freq_den)
|
|
||||||
{
|
|
||||||
tvFreqNum.setError("You can have at most one repetition per day");
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!valid) return;
|
|
||||||
|
|
||||||
SharedPreferences.Editor editor = prefs.edit();
|
|
||||||
editor.putInt("pref_default_habit_freq_num", modified_habit.freq_num);
|
|
||||||
editor.putInt("pref_default_habit_freq_den", modified_habit.freq_den);
|
|
||||||
editor.apply();
|
|
||||||
|
|
||||||
Habit savedHabit = null;
|
|
||||||
|
|
||||||
if (mode == EDIT_MODE)
|
|
||||||
{
|
|
||||||
command = originalHabit.new EditCommand(modified_habit);
|
|
||||||
savedHabit = originalHabit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == CREATE_MODE) command = new Habit.CreateCommand(modified_habit);
|
|
||||||
|
|
||||||
if (onSavedListener != null) onSavedListener.onSaved(command, savedHabit);
|
|
||||||
|
|
||||||
dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Discard button */
|
|
||||||
if (id == R.id.buttonDiscard)
|
|
||||||
{
|
|
||||||
dismiss();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onColorButtonClick()
|
||||||
|
{
|
||||||
|
ColorPickerDialog picker = ColorPickerDialog.newInstance(
|
||||||
|
R.string.color_picker_default_title, ColorHelper.palette, modifiedHabit.color, 4,
|
||||||
|
ColorPickerDialog.SIZE_SMALL);
|
||||||
|
|
||||||
|
picker.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener()
|
||||||
|
{
|
||||||
|
public void onColorSelected(int color)
|
||||||
|
{
|
||||||
|
changeColor(color);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
picker.show(getFragmentManager(), "picker");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onSaveButtonClick()
|
||||||
|
{
|
||||||
|
Command command = null;
|
||||||
|
|
||||||
|
modifiedHabit.name = tvName.getText().toString().trim();
|
||||||
|
modifiedHabit.description = tvDescription.getText().toString().trim();
|
||||||
|
modifiedHabit.freqNum = Integer.parseInt(tvFreqNum.getText().toString());
|
||||||
|
modifiedHabit.freqDen = Integer.parseInt(tvFreqDen.getText().toString());
|
||||||
|
|
||||||
|
if (!validate()) return;
|
||||||
|
|
||||||
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
|
editor.putInt("pref_default_habit_freq_num", modifiedHabit.freqNum);
|
||||||
|
editor.putInt("pref_default_habit_freq_den", modifiedHabit.freqDen);
|
||||||
|
editor.apply();
|
||||||
|
|
||||||
|
Habit savedHabit = null;
|
||||||
|
|
||||||
|
if (mode == EDIT_MODE)
|
||||||
|
{
|
||||||
|
command = originalHabit.new EditCommand(modifiedHabit);
|
||||||
|
savedHabit = originalHabit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode == CREATE_MODE) command = new Habit.CreateCommand(modifiedHabit);
|
||||||
|
|
||||||
|
if (onSavedListener != null) onSavedListener.onSaved(command, savedHabit);
|
||||||
|
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean validate()
|
||||||
|
{
|
||||||
|
Boolean valid = true;
|
||||||
|
|
||||||
|
if (modifiedHabit.name.length() == 0)
|
||||||
|
{
|
||||||
|
tvName.setError(getString(R.string.validation_name_should_not_be_blank));
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (modifiedHabit.freqNum <= 0)
|
||||||
|
{
|
||||||
|
tvFreqNum.setError(getString(R.string.validation_number_should_be_positive));
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (modifiedHabit.freqNum > modifiedHabit.freqDen)
|
||||||
|
{
|
||||||
|
tvFreqNum.setError(getString(R.string.validation_at_most_one_rep_per_day));
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDateSpinnerClick()
|
||||||
|
{
|
||||||
|
int defaultHour = 8;
|
||||||
|
int defaultMin = 0;
|
||||||
|
|
||||||
|
if (modifiedHabit.reminderHour != null)
|
||||||
|
{
|
||||||
|
defaultHour = modifiedHabit.reminderHour;
|
||||||
|
defaultMin = modifiedHabit.reminderMin;
|
||||||
|
}
|
||||||
|
|
||||||
|
TimePickerDialog timePicker = TimePickerDialog.newInstance(new OnTimeSetListener()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void onTimeSet(RadialPickerLayout view, int hour, int minute)
|
||||||
|
{
|
||||||
|
modifiedHabit.reminderHour = hour;
|
||||||
|
modifiedHabit.reminderMin = minute;
|
||||||
|
updateReminder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTimeCleared(RadialPickerLayout view)
|
||||||
|
{
|
||||||
|
modifiedHabit.reminderHour = null;
|
||||||
|
modifiedHabit.reminderMin = null;
|
||||||
|
updateReminder();
|
||||||
|
}
|
||||||
|
}, defaultHour, defaultMin, is24HourMode);
|
||||||
|
|
||||||
|
timePicker.show(getFragmentManager(), "timePicker");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ public class Habit extends Model
|
|||||||
public String description;
|
public String description;
|
||||||
|
|
||||||
@Column(name = "freq_num")
|
@Column(name = "freq_num")
|
||||||
public Integer freq_num;
|
public Integer freqNum;
|
||||||
|
|
||||||
@Column(name = "freq_den")
|
@Column(name = "freq_den")
|
||||||
public Integer freq_den;
|
public Integer freqDen;
|
||||||
|
|
||||||
@Column(name = "color")
|
@Column(name = "color")
|
||||||
public Integer color;
|
public Integer color;
|
||||||
@@ -69,10 +69,10 @@ public class Habit extends Model
|
|||||||
public Integer position;
|
public Integer position;
|
||||||
|
|
||||||
@Column(name = "reminder_hour")
|
@Column(name = "reminder_hour")
|
||||||
public Integer reminder_hour;
|
public Integer reminderHour;
|
||||||
|
|
||||||
@Column(name = "reminder_min")
|
@Column(name = "reminder_min")
|
||||||
public Integer reminder_min;
|
public Integer reminderMin;
|
||||||
|
|
||||||
@Column(name = "highlight")
|
@Column(name = "highlight")
|
||||||
public Integer highlight;
|
public Integer highlight;
|
||||||
@@ -91,8 +91,8 @@ public class Habit extends Model
|
|||||||
this.position = Habit.getCount();
|
this.position = Habit.getCount();
|
||||||
this.highlight = 0;
|
this.highlight = 0;
|
||||||
this.archived = 0;
|
this.archived = 0;
|
||||||
this.freq_den = 7;
|
this.freqDen = 7;
|
||||||
this.freq_num = 3;
|
this.freqNum = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Habit get(Long id)
|
public static Habit get(Long id)
|
||||||
@@ -232,12 +232,12 @@ public class Habit extends Model
|
|||||||
{
|
{
|
||||||
this.name = model.name;
|
this.name = model.name;
|
||||||
this.description = model.description;
|
this.description = model.description;
|
||||||
this.freq_num = model.freq_num;
|
this.freqNum = model.freqNum;
|
||||||
this.freq_den = model.freq_den;
|
this.freqDen = model.freqDen;
|
||||||
this.color = model.color;
|
this.color = model.color;
|
||||||
this.position = model.position;
|
this.position = model.position;
|
||||||
this.reminder_hour = model.reminder_hour;
|
this.reminderHour = model.reminderHour;
|
||||||
this.reminder_min = model.reminder_min;
|
this.reminderMin = model.reminderMin;
|
||||||
this.highlight = model.highlight;
|
this.highlight = model.highlight;
|
||||||
this.archived = model.archived;
|
this.archived = model.archived;
|
||||||
}
|
}
|
||||||
@@ -343,7 +343,7 @@ public class Habit extends Model
|
|||||||
|
|
||||||
if (beginning > today) return;
|
if (beginning > today) return;
|
||||||
|
|
||||||
long beginningExtended = beginning - (long) (freq_den) * day;
|
long beginningExtended = beginning - (long) (freqDen) * day;
|
||||||
List<Repetition> reps = selectRepsFromTo(beginningExtended, today).execute();
|
List<Repetition> reps = selectRepsFromTo(beginningExtended, today).execute();
|
||||||
|
|
||||||
int nDays = (int) ((today - beginning) / day) + 1;
|
int nDays = (int) ((today - beginning) / day) + 1;
|
||||||
@@ -363,10 +363,10 @@ public class Habit extends Model
|
|||||||
{
|
{
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
|
||||||
for (int j = 0; j < freq_den; j++)
|
for (int j = 0; j < freqDen; j++)
|
||||||
if (checks[i + j] == 2) counter++;
|
if (checks[i + j] == 2) counter++;
|
||||||
|
|
||||||
if (counter >= freq_num) checks[i] = Math.max(checks[i], 1);
|
if (counter >= freqNum) checks[i] = Math.max(checks[i], 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ActiveAndroid.beginTransaction();
|
ActiveAndroid.beginTransaction();
|
||||||
@@ -491,7 +491,7 @@ public class Habit extends Model
|
|||||||
long today = DateHelper.getStartOfDay(DateHelper.getLocalTime());
|
long today = DateHelper.getStartOfDay(DateHelper.getLocalTime());
|
||||||
long day = DateHelper.millisecondsInOneDay;
|
long day = DateHelper.millisecondsInOneDay;
|
||||||
|
|
||||||
double freq = ((double) freq_num) / freq_den;
|
double freq = ((double) freqNum) / freqDen;
|
||||||
double multiplier = Math.pow(0.5, 1.0 / (14.0 / freq - 1));
|
double multiplier = Math.pow(0.5, 1.0 / (14.0 / freq - 1));
|
||||||
|
|
||||||
Score newestScore = getNewestScore();
|
Score newestScore = getNewestScore();
|
||||||
@@ -696,8 +696,8 @@ public class Habit extends Model
|
|||||||
this.modified = new Habit(modified);
|
this.modified = new Habit(modified);
|
||||||
this.original = new Habit(Habit.this);
|
this.original = new Habit(Habit.this);
|
||||||
|
|
||||||
hasIntervalChanged = (this.original.freq_den != this.modified.freq_den ||
|
hasIntervalChanged = (this.original.freqDen != this.modified.freqDen ||
|
||||||
this.original.freq_num != this.modified.freq_num);
|
this.original.freqNum != this.modified.freqNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute()
|
public void execute()
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</EditText>
|
</EditText>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/button_pick_color"
|
android:id="@+id/buttonPickColor"
|
||||||
android:src="@drawable/ic_action_pick_color"
|
android:src="@drawable/ic_action_pick_color"
|
||||||
style="@style/dialogFormInputColor" />
|
style="@style/dialogFormInputColor" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
android:text="@string/reminder" />
|
android:text="@string/reminder" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/input_reminder_time"
|
android:id="@+id/inputReminderTime"
|
||||||
style="@style/dialogFormTimePicker" />
|
style="@style/dialogFormTimePicker" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -63,5 +63,9 @@
|
|||||||
<string name="streaks">Streaks</string>
|
<string name="streaks">Streaks</string>
|
||||||
<string name="no_habits_found">You have no active habits</string>
|
<string name="no_habits_found">You have no active habits</string>
|
||||||
<string name="long_press_to_toggle">Long press to check or uncheck</string>
|
<string name="long_press_to_toggle">Long press to check or uncheck</string>
|
||||||
|
<string name="reminder_off">Off</string>
|
||||||
|
<string name="validation_name_should_not_be_blank">Name cannot be blank.</string>
|
||||||
|
<string name="validation_number_should_be_positive">Number must be positive.</string>
|
||||||
|
<string name="validation_at_most_one_rep_per_day">You can have at most one repetition per day</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user