diff --git a/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java index dbc0113f6..91a3a4aff 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java @@ -20,8 +20,10 @@ package org.isoron.uhabits.helpers; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.Handler; +import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -39,6 +41,9 @@ import java.util.GregorianCalendar; public class ListHabitsHelper { + private static final int CHECKMARK_LEFT_TO_RIGHT = 0; + private static final int CHECKMARK_RIGHT_TO_LEFT = 1; + private final int lowContrastColor; private final int mediumContrastColor; @@ -80,8 +85,12 @@ public class ListHabitsHelper for (int i = 0; i < m; i++) { + int position = i; + + if(getCheckmarkOrder() == CHECKMARK_RIGHT_TO_LEFT) + position = m - i - 1; - TextView tvCheck = (TextView) llButtons.getChildAt(i); + TextView tvCheck = (TextView) llButtons.getChildAt(position); tvCheck.setTag(R.string.habit_key, habitId); tvCheck.setTag(R.string.offset_key, i); if(isChecked.length > i) @@ -217,11 +226,15 @@ public class ListHabitsHelper for (int i = 0; i < getButtonCount(); i++) { + int position = 0; + + if(getCheckmarkOrder() == CHECKMARK_LEFT_TO_RIGHT) + position = i; + View tvDay = inflater.inflate(R.layout.list_habits_header_check, null); TextView btCheck = (TextView) tvDay.findViewById(R.id.tvCheck); btCheck.setText(DateHelper.formatHeaderDate(day)); - header.addView(tvDay); - + header.addView(tvDay, position); day.add(GregorianCalendar.DAY_OF_MONTH, -1); } } @@ -282,4 +295,11 @@ public class ListHabitsHelper return false; } } + + public int getCheckmarkOrder() + { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean reverse = prefs.getBoolean("pref_checkmark_reverse_order", false); + return reverse ? CHECKMARK_RIGHT_TO_LEFT : CHECKMARK_LEFT_TO_RIGHT; + } } diff --git a/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java index 49220970e..c575ffcf4 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/ReminderHelper.java @@ -110,8 +110,10 @@ public class ReminderHelper return ringtoneUri; } - public static void parseRingtoneData(Context context, Intent data) + public static void parseRingtoneData(Context context, @Nullable Intent data) { + if(data == null) return; + Uri ringtoneUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); if (ringtoneUri != null) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 08bc9a21a..23f9e3719 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -159,9 +159,11 @@ Help translate this app Night mode - Pure black for night mode - Use pure black instead of grey backgrounds in night mode. Reduces battery usage in phones with AMOLED display. + Use pure black in night mode + Replaces gray backgrounds with pure black in night mode. Reduces battery usage in phones with AMOLED display. Interface + Reverse order of days + Show days in reverse order on the main screen Day Week diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index fb63696fe..1339b2d05 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -30,6 +30,13 @@ android:summary="@string/pref_toggle_description" android:title="@string/pref_toggle_title"/> + + +