mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-19 04:09:03 +00:00
Feature: Add logic to files where calendar views occur
This commit adds the first day of the week calendar logic to the RemindersManager & the TaskFormActivity classes. The date pickers present themselves on two occassions: reminders & due dates. Both were covered.
This commit is contained in:
parent
94ed87ba6e
commit
64e012a88a
5 changed files with 100 additions and 33 deletions
|
|
@ -20,6 +20,8 @@
|
|||
<string name="pref_account_header">Account</string>
|
||||
<string name="pref_first_day_of_the_week_title">First Day of the Week</string>
|
||||
<string name="pref_first_day_of_the_week_summary">First day of the week in all calendars</string>
|
||||
<string name="pref_first_day_of_the_week_default_value">5</string>
|
||||
<string name="pref_first_day_of_the_week_key">FirstDayOfTheWeek</string>
|
||||
<string name="pref_reminder_header">Daily Reminder</string>
|
||||
<string name="pref_reminder_checkbox">Activate Reminder</string>
|
||||
<string name="pref_reminder_picker">Set Reminder Time</string>
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
android:order="2"/>
|
||||
|
||||
<ListPreference android:title="@string/pref_first_day_of_the_week_title"
|
||||
android:defaultValue="@string/pref_first_day_of_the_week_default_value"
|
||||
android:key="dayOfTheWeek"
|
||||
android:entries="@array/weekdays"
|
||||
android:entryValues="@array/weekdayValues"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
package com.habitrpg.android.habitica.helpers;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
/**
|
||||
* Created by DanielKaparunakis on 9/10/16.
|
||||
*/
|
||||
public class FirstDayOfTheWeekHelper {
|
||||
|
||||
private int firstDayOfTheWeek;
|
||||
|
||||
public FirstDayOfTheWeekHelper(String firstDayOfTheWeekSharedPref) {
|
||||
switch (firstDayOfTheWeekSharedPref){
|
||||
case "1":
|
||||
firstDayOfTheWeek = Calendar.SUNDAY;
|
||||
break;
|
||||
case "2":
|
||||
firstDayOfTheWeek = Calendar.MONDAY;
|
||||
break;
|
||||
case "3":
|
||||
firstDayOfTheWeek = Calendar.TUESDAY;
|
||||
break;
|
||||
case "4":
|
||||
firstDayOfTheWeek = Calendar.WEDNESDAY;
|
||||
break;
|
||||
case "5":
|
||||
firstDayOfTheWeek = Calendar.THURSDAY;
|
||||
break;
|
||||
case "6":
|
||||
firstDayOfTheWeek = Calendar.FRIDAY;
|
||||
break;
|
||||
case "7":
|
||||
firstDayOfTheWeek = Calendar.SATURDAY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public int getFirstDayOfTheWeek() {
|
||||
return firstDayOfTheWeek;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,9 @@ package com.habitrpg.android.habitica.helpers;
|
|||
import android.app.Dialog;
|
||||
import android.app.TimePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.EditText;
|
||||
|
|
@ -15,7 +17,6 @@ import com.magicmicky.habitrpgwrapper.lib.models.tasks.RemindersItem;
|
|||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
|
@ -69,6 +70,16 @@ public class RemindersManager {
|
|||
TimePicker dialogTimePicker = (TimePicker) dialog.findViewById(R.id.timePicker);
|
||||
DatePicker dialogDatePicker = (DatePicker) dialog.findViewById(R.id.datePicker);
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String dayOfTheWeek = sharedPreferences.getString("dayOfTheWeek", "1");
|
||||
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
|
||||
dialogDatePicker.getCalendarView().setFirstDayOfWeek(
|
||||
firstDayOfTheWeekHelper.getFirstDayOfTheWeek());
|
||||
} else {
|
||||
dialogDatePicker.setFirstDayOfWeek(firstDayOfTheWeekHelper.getFirstDayOfTheWeek());
|
||||
}
|
||||
|
||||
dialogConfirmButton.setOnClickListener(view -> {
|
||||
int day = dialogDatePicker.getDayOfMonth();
|
||||
int month = dialogDatePicker.getMonth();
|
||||
|
|
|
|||
|
|
@ -1,42 +1,17 @@
|
|||
package com.habitrpg.android.habitica.ui.activities;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.events.commands.DeleteTaskCommand;
|
||||
import com.habitrpg.android.habitica.helpers.RemindersManager;
|
||||
import com.habitrpg.android.habitica.ui.WrapContentRecyclerViewLayoutManager;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.CheckListAdapter;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.RemindersAdapter;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
import com.habitrpg.android.habitica.ui.helpers.SimpleItemTouchHelperCallback;
|
||||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.ui.helpers.ViewHelper;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Tag;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Days;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.RemindersItem;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskTag;
|
||||
import com.raizlabs.android.dbflow.sql.builder.Condition;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiEditText;
|
||||
import net.pherth.android.emoji_library.EmojiPopup;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.TimePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.TextInputLayout;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||
|
|
@ -58,19 +33,43 @@ import android.widget.NumberPicker;
|
|||
import android.widget.Spinner;
|
||||
import android.widget.TableRow;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.events.commands.DeleteTaskCommand;
|
||||
import com.habitrpg.android.habitica.helpers.FirstDayOfTheWeekHelper;
|
||||
import com.habitrpg.android.habitica.helpers.RemindersManager;
|
||||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.ui.WrapContentRecyclerViewLayoutManager;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.CheckListAdapter;
|
||||
import com.habitrpg.android.habitica.ui.adapter.tasks.RemindersAdapter;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
import com.habitrpg.android.habitica.ui.helpers.SimpleItemTouchHelperCallback;
|
||||
import com.habitrpg.android.habitica.ui.helpers.ViewHelper;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Tag;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Days;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.RemindersItem;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskTag;
|
||||
import com.raizlabs.android.dbflow.sql.builder.Condition;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiEditText;
|
||||
import net.pherth.android.emoji_library.EmojiPopup;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
|
|
@ -901,6 +900,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
|
||||
public DateEditTextListener(EditText dateText) {
|
||||
calendar = Calendar.getInstance();
|
||||
|
||||
this.datePickerText = dateText;
|
||||
this.datePickerText.setOnClickListener(this);
|
||||
this.dateFormatter = DateFormat.getDateInstance();
|
||||
|
|
@ -908,6 +908,18 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
calendar.get(Calendar.YEAR),
|
||||
calendar.get(Calendar.MONTH),
|
||||
calendar.get(Calendar.DAY_OF_MONTH));
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||
String dayOfTheWeek = sharedPreferences.getString("dayOfTheWeek", "1");
|
||||
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
|
||||
datePickerDialog.getDatePicker().getCalendarView().setFirstDayOfWeek(
|
||||
firstDayOfTheWeekHelper.getFirstDayOfTheWeek());
|
||||
} else {
|
||||
datePickerDialog.getDatePicker().setFirstDayOfWeek(firstDayOfTheWeekHelper
|
||||
.getFirstDayOfTheWeek());
|
||||
}
|
||||
|
||||
this.datePickerDialog.setButton(DialogInterface.BUTTON_NEUTRAL, getResources().getString(R.string.today), (dialog, which) -> {
|
||||
setCalendar(Calendar.getInstance().getTime());
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue