mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-23 22:27:15 +00:00
Feature: Refactor the order of days in dailies
This commit refactors the order of days in the dailies in accordance to the First Day of the Week setting. In addition, it sets the default value for the setting using the user's locale as opposed to an arbitrary value.
This commit is contained in:
parent
e02b52aac9
commit
3634980116
6 changed files with 106 additions and 4 deletions
|
|
@ -63,8 +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:key="@string/pref_first_day_of_the_week_key"
|
||||
android:entries="@array/weekdays"
|
||||
android:entryValues="@array/weekdayValues"
|
||||
android:summary="@string/pref_first_day_of_the_week_summary"
|
||||
|
|
|
|||
|
|
@ -8,29 +8,37 @@ import java.util.Calendar;
|
|||
public class FirstDayOfTheWeekHelper {
|
||||
|
||||
private int firstDayOfTheWeek;
|
||||
private int dailyTaskFormOffset;
|
||||
|
||||
public FirstDayOfTheWeekHelper(String firstDayOfTheWeekSharedPref) {
|
||||
switch (firstDayOfTheWeekSharedPref){
|
||||
case "1":
|
||||
firstDayOfTheWeek = Calendar.SUNDAY;
|
||||
dailyTaskFormOffset = 1;
|
||||
break;
|
||||
case "2":
|
||||
firstDayOfTheWeek = Calendar.MONDAY;
|
||||
dailyTaskFormOffset = 0;
|
||||
break;
|
||||
case "3":
|
||||
firstDayOfTheWeek = Calendar.TUESDAY;
|
||||
dailyTaskFormOffset = 6;
|
||||
break;
|
||||
case "4":
|
||||
firstDayOfTheWeek = Calendar.WEDNESDAY;
|
||||
dailyTaskFormOffset = 5;
|
||||
break;
|
||||
case "5":
|
||||
firstDayOfTheWeek = Calendar.THURSDAY;
|
||||
dailyTaskFormOffset = 4;
|
||||
break;
|
||||
case "6":
|
||||
firstDayOfTheWeek = Calendar.FRIDAY;
|
||||
dailyTaskFormOffset = 3;
|
||||
break;
|
||||
case "7":
|
||||
firstDayOfTheWeek = Calendar.SATURDAY;
|
||||
dailyTaskFormOffset = 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -38,4 +46,8 @@ public class FirstDayOfTheWeekHelper {
|
|||
public int getFirstDayOfTheWeek() {
|
||||
return firstDayOfTheWeek;
|
||||
}
|
||||
|
||||
public int getDailyTaskFormOffset() {
|
||||
return dailyTaskFormOffset;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ public class RemindersManager {
|
|||
DatePicker dialogDatePicker = (DatePicker) dialog.findViewById(R.id.datePicker);
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String dayOfTheWeek = sharedPreferences.getString("dayOfTheWeek", "1");
|
||||
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
|
||||
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
|
||||
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
|
||||
dialogDatePicker.getCalendarView().setFirstDayOfWeek(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,40 @@
|
|||
package com.habitrpg.android.habitica.ui.activities;
|
||||
|
||||
import android.app.AlarmManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.database.sqlite.SQLiteDoneException;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.amplitude.api.Amplitude;
|
||||
import com.habitrpg.android.habitica.APIHelper;
|
||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
|
|
@ -131,6 +166,41 @@ import android.widget.ImageView;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
||||||| merged common ancestors
|
||||
import android.app.AlarmManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.database.sqlite.SQLiteDoneException;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
package com.habitrpg.android.habitica.ui.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
|
|
@ -28,6 +30,7 @@ import org.greenrobot.eventbus.Subscribe;
|
|||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -148,6 +151,11 @@ public class SetupActivity extends BaseActivity implements View.OnClickListener,
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putString("FirstDayOfTheWeek",
|
||||
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
|
||||
editor.commit();
|
||||
if (v == this.nextButton) {
|
||||
if (this.pager.getCurrentItem() == 1) {
|
||||
List<Task> newTasks = this.taskSetupFragment.createSampleTasks();
|
||||
|
|
|
|||
|
|
@ -66,7 +66,9 @@ import java.text.DecimalFormat;
|
|||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
|
@ -569,6 +571,15 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
this.frequencyContainer.removeAllViews();
|
||||
if (this.dailyFrequencySpinner.getSelectedItemPosition() == 0) {
|
||||
String[] weekdays = getResources().getStringArray(R.array.weekdays);
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
|
||||
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
|
||||
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
|
||||
|
||||
ArrayList<String> weekdaysTemp = new ArrayList<>(Arrays.asList(weekdays));
|
||||
Collections.rotate(weekdaysTemp, firstDayOfTheWeekHelper.getDailyTaskFormOffset());
|
||||
weekdays = weekdaysTemp.toArray(new String[1]);
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
View weekdayRow = getLayoutInflater().inflate(R.layout.row_checklist, this.frequencyContainer, false);
|
||||
CheckBox checkbox = (CheckBox) weekdayRow.findViewById(R.id.checkbox);
|
||||
|
|
@ -910,7 +921,8 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
calendar.get(Calendar.DAY_OF_MONTH));
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||
String dayOfTheWeek = sharedPreferences.getString("dayOfTheWeek", "1");
|
||||
String dayOfTheWeek = sharedPreferences.getString("FirstDayOfTheWeek",
|
||||
Integer.toString(Calendar.getInstance().getFirstDayOfWeek()));
|
||||
FirstDayOfTheWeekHelper firstDayOfTheWeekHelper = new FirstDayOfTheWeekHelper(dayOfTheWeek);
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
|
||||
datePickerDialog.getDatePicker().getCalendarView().setFirstDayOfWeek(
|
||||
|
|
|
|||
Loading…
Reference in a new issue