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"/>
+
+
+