Allow user to reverse the order of days

pull/84/merge
Alinson S. Xavier 10 years ago
parent a1a636c718
commit 0eb12812d4

@ -20,8 +20,10 @@
package org.isoron.uhabits.helpers; package org.isoron.uhabits.helpers;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Handler; import android.os.Handler;
import android.preference.PreferenceManager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
@ -39,6 +41,9 @@ import java.util.GregorianCalendar;
public class ListHabitsHelper 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 lowContrastColor;
private final int mediumContrastColor; private final int mediumContrastColor;
@ -80,8 +85,12 @@ public class ListHabitsHelper
for (int i = 0; i < m; i++) 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.habit_key, habitId);
tvCheck.setTag(R.string.offset_key, i); tvCheck.setTag(R.string.offset_key, i);
if(isChecked.length > i) if(isChecked.length > i)
@ -217,11 +226,15 @@ public class ListHabitsHelper
for (int i = 0; i < getButtonCount(); i++) 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); View tvDay = inflater.inflate(R.layout.list_habits_header_check, null);
TextView btCheck = (TextView) tvDay.findViewById(R.id.tvCheck); TextView btCheck = (TextView) tvDay.findViewById(R.id.tvCheck);
btCheck.setText(DateHelper.formatHeaderDate(day)); btCheck.setText(DateHelper.formatHeaderDate(day));
header.addView(tvDay); header.addView(tvDay, position);
day.add(GregorianCalendar.DAY_OF_MONTH, -1); day.add(GregorianCalendar.DAY_OF_MONTH, -1);
} }
} }
@ -282,4 +295,11 @@ public class ListHabitsHelper
return false; 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;
}
} }

@ -110,8 +110,10 @@ public class ReminderHelper
return ringtoneUri; 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); Uri ringtoneUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (ringtoneUri != null) if (ringtoneUri != null)

@ -159,9 +159,11 @@
<string name="help_translate">Help translate this app</string> <string name="help_translate">Help translate this app</string>
<string name="night_mode">Night mode</string> <string name="night_mode">Night mode</string>
<string name="use_pure_black">Pure black for night mode</string> <string name="use_pure_black">Use pure black in night mode</string>
<string name="pure_black_description">Use pure black instead of grey backgrounds in night mode. Reduces battery usage in phones with AMOLED display.</string> <string name="pure_black_description">Replaces gray backgrounds with pure black in night mode. Reduces battery usage in phones with AMOLED display.</string>
<string name="interface_preferences">Interface</string> <string name="interface_preferences">Interface</string>
<string name="reverse_days">Reverse order of days</string>
<string name="reverse_days_description">Show days in reverse order on the main screen</string>
<string name="day">Day</string> <string name="day">Day</string>
<string name="week">Week</string> <string name="week">Week</string>

@ -30,6 +30,13 @@
android:summary="@string/pref_toggle_description" android:summary="@string/pref_toggle_description"
android:title="@string/pref_toggle_title"/> android:title="@string/pref_toggle_title"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="pref_checkmark_reverse_order"
android:summary="@string/reverse_days_description"
android:title="@string/reverse_days"/>
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="false" android:defaultValue="false"
android:key="pref_pure_black" android:key="pref_pure_black"

Loading…
Cancel
Save