1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-19 06:51:57 +02:00

Interationalize weekday names

This commit is contained in:
wolkenschieber
2017-03-05 13:03:21 +01:00
parent 5e25f6a1a6
commit 63132a1830
5 changed files with 162 additions and 115 deletions

View File

@@ -77,12 +77,15 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -42,79 +42,176 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class ReminderPreferences extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
public class ReminderPreferences extends PreferenceFragment
implements SharedPreferences.OnSharedPreferenceChangeListener
{
private static final String PREFERENCE_KEY_REMINDER_ENABLE = "reminderEnable";
private static final String PREFERENCE_KEY_REMINDER_WEEKDAYS = "reminderWeekdays";
private static final String PREFERENCE_KEY_REMINDER_TIME = "reminderTime";
private static final String PREFERENCE_KEY_REMINDER_NOTIFY_TEXT = "reminderNotifyText";
private static ArrayList<PendingIntent> pendingAlarms = new ArrayList<>();
private CheckBoxPreference reminderEnable;
private MultiSelectListPreference reminderWeekdays;
private TimePreferenceDialog reminderTime;
private EditTextPreference reminderNotifyText;
private static ArrayList<PendingIntent> pendingAlarms = new ArrayList<>();
public static void scheduleAlarms(Context context)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Set<String> reminderWeekdays = prefs.getStringSet(PREFERENCE_KEY_REMINDER_WEEKDAYS, new HashSet<String>());
Long reminderTimeInMillis = prefs.getLong(PREFERENCE_KEY_REMINDER_TIME, System.currentTimeMillis());
Iterator<String> iterWeekdays = reminderWeekdays.iterator();
disableAllAlarms(context);
while (iterWeekdays.hasNext())
{
String strWeekdays = iterWeekdays.next();
switch (strWeekdays)
{
case "Monday":
pendingAlarms.add(enableAlarm(context, Calendar.MONDAY, reminderTimeInMillis));
break;
case "Tuesday":
pendingAlarms.add(enableAlarm(context, Calendar.TUESDAY, reminderTimeInMillis));
break;
case "Wednesday":
pendingAlarms.add(enableAlarm(context, Calendar.WEDNESDAY, reminderTimeInMillis));
break;
case "Thursday":
pendingAlarms.add(enableAlarm(context, Calendar.THURSDAY, reminderTimeInMillis));
break;
case "Friday":
pendingAlarms.add(enableAlarm(context, Calendar.FRIDAY, reminderTimeInMillis));
break;
case "Saturday":
pendingAlarms.add(enableAlarm(context, Calendar.SATURDAY, reminderTimeInMillis));
break;
case "Sunday":
pendingAlarms.add(enableAlarm(context, Calendar.SUNDAY, reminderTimeInMillis));
break;
}
}
}
public static PendingIntent enableAlarm(Context context, int dayOfWeek, long timeInMillis)
{
Calendar alarmCal = Calendar.getInstance();
alarmCal.setTimeInMillis(timeInMillis);
alarmCal.set(Calendar.DAY_OF_WEEK, dayOfWeek);
// Check we aren't setting it in the past which would trigger it to fire instantly
if (alarmCal.getTimeInMillis() < System.currentTimeMillis())
{
alarmCal.add(Calendar.DAY_OF_YEAR, 7);
}
//Log.d("ReminderPreferences", "Set alarm to " + calendar.getTime());
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, ReminderBootReceiver.class);
alarmIntent.putExtra("alarmIntent", true);
PendingIntent alarmPendingIntent =
PendingIntent.getBroadcast(context, dayOfWeek, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7,
alarmPendingIntent);
return alarmPendingIntent;
}
public static void disableAllAlarms(Context context)
{
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
for (int i = 0; i < pendingAlarms.size(); i++)
{
alarmMgr.cancel(pendingAlarms.get(i));
}
pendingAlarms.clear();
}
@Override
public void onCreate(Bundle savedInstanceState) {
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.reminder_preferences);
reminderEnable = (CheckBoxPreference)findPreference("reminderEnable");
reminderWeekdays = (MultiSelectListPreference)findPreference("reminderWeekdays");
reminderTime = (TimePreferenceDialog)findPreference("reminderTime");
reminderNotifyText = (EditTextPreference)findPreference("reminderNotifyText");
reminderEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_REMINDER_ENABLE);
reminderWeekdays = (MultiSelectListPreference) findPreference(PREFERENCE_KEY_REMINDER_WEEKDAYS);
reminderTime = (TimePreferenceDialog) findPreference(PREFERENCE_KEY_REMINDER_TIME);
reminderNotifyText = (EditTextPreference) findPreference(PREFERENCE_KEY_REMINDER_NOTIFY_TEXT);
updateAlarmPreferences();
initSummary(getPreferenceScreen());
}
private void initSummary(Preference p) {
if (p instanceof PreferenceGroup) {
private void initSummary(Preference p)
{
if (p instanceof PreferenceGroup)
{
PreferenceGroup pGrp = (PreferenceGroup) p;
for (int i = 0; i < pGrp.getPreferenceCount(); i++) {
for (int i = 0; i < pGrp.getPreferenceCount(); i++)
{
initSummary(pGrp.getPreference(i));
}
} else {
}
else
{
updatePrefSummary(p);
}
}
@Override
public void onResume() {
public void onResume()
{
super.onResume();
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
public void onPause()
{
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
super.onPause();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
updatePrefSummary(findPreference(key));
updateAlarmPreferences();
}
public void updateAlarmPreferences() {
public void updateAlarmPreferences()
{
ComponentName receiver = new ComponentName(getActivity().getApplicationContext(), ReminderBootReceiver.class);
PackageManager pm = getActivity().getApplicationContext().getPackageManager();
if (reminderEnable.isChecked()) {
if (reminderEnable.isChecked())
{
scheduleAlarms(getActivity());
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
reminderWeekdays.setEnabled(true);
reminderTime.setEnabled(true);
reminderNotifyText.setEnabled(true);
} else {
}
else
{
disableAllAlarms(getActivity());
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
reminderWeekdays.setEnabled(false);
@@ -123,23 +220,29 @@ public class ReminderPreferences extends PreferenceFragment implements SharedPr
}
}
private void updatePrefSummary(Preference p) {
if (p instanceof ListPreference) {
private void updatePrefSummary(Preference p)
{
if (p instanceof ListPreference)
{
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getEntry());
}
if (p instanceof EditTextPreference) {
if (p instanceof EditTextPreference)
{
EditTextPreference editTextPref = (EditTextPreference) p;
if (p.getTitle().toString().contains("assword"))
{
p.setSummary("******");
} else {
}
else
{
p.setSummary(editTextPref.getText());
}
}
if (p instanceof MultiSelectListPreference) {
if (p instanceof MultiSelectListPreference)
{
MultiSelectListPreference editMultiListPref = (MultiSelectListPreference) p;
CharSequence[] entries = editMultiListPref.getEntries();
@@ -148,86 +251,12 @@ public class ReminderPreferences extends PreferenceFragment implements SharedPr
Set<String> currentEntryValues = editMultiListPref.getValues();
for (int i = 0; i < entries.length; i++)
if (currentEntryValues.contains(entryValues[i]))
currentEntries.add(entries[i].toString());
{
if (currentEntryValues.contains(entryValues[i].toString())) currentEntries.add(entries[i].toString());
}
p.setSummary(currentEntries.toString());
}
}
public static void scheduleAlarms(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Set<String> reminderWeekdays = prefs.getStringSet("reminderWeekdays", new HashSet<String>());
Long reminderTimeInMillis = prefs.getLong("reminderTime", System.currentTimeMillis());
Iterator iterWeekdays = reminderWeekdays.iterator();
disableAllAlarms(context);
while (iterWeekdays.hasNext()) {
String strWeekdays = iterWeekdays.next().toString();
switch (Integer.parseInt(strWeekdays)){
case 0:
pendingAlarms.add(enableAlarm(context, Calendar.MONDAY, reminderTimeInMillis));
break;
case 1:
pendingAlarms.add(enableAlarm(context, Calendar.TUESDAY, reminderTimeInMillis));
break;
case 2:
pendingAlarms.add(enableAlarm(context, Calendar.WEDNESDAY, reminderTimeInMillis));
break;
case 3:
pendingAlarms.add(enableAlarm(context, Calendar.THURSDAY, reminderTimeInMillis));
break;
case 4:
pendingAlarms.add(enableAlarm(context, Calendar.FRIDAY, reminderTimeInMillis));
break;
case 5:
pendingAlarms.add(enableAlarm(context, Calendar.SATURDAY, reminderTimeInMillis));
break;
case 6:
pendingAlarms.add(enableAlarm(context, Calendar.SUNDAY, reminderTimeInMillis));
break;
}
}
}
public static PendingIntent enableAlarm(Context context, int dayOfWeek, long timeInMillis) {
Calendar alarmCal = Calendar.getInstance();
alarmCal.setTimeInMillis(timeInMillis);
alarmCal.set(Calendar.DAY_OF_WEEK, dayOfWeek);
// Check we aren't setting it in the past which would trigger it to fire instantly
if(alarmCal.getTimeInMillis() < System.currentTimeMillis()) {
alarmCal.add(Calendar.DAY_OF_YEAR, 7);
}
//Log.d("ReminderPreferences", "Set alarm to " + calendar.getTime());
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, ReminderBootReceiver.class);
alarmIntent.putExtra("alarmIntent", true);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(context, dayOfWeek, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmCal.getTimeInMillis(),
AlarmManager.INTERVAL_DAY * 7, alarmPendingIntent);
return alarmPendingIntent;
}
public static void disableAllAlarms(Context context) {
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
for (int i=0; i<pendingAlarms.size(); i++) {
alarmMgr.cancel(pendingAlarms.get(i));
}
pendingAlarms.clear();
}
}

View File

@@ -114,4 +114,11 @@
<string name="label_delete_confirmation">Löschbestätigung</string>
<string name="question_really_delete">Wollen Sie wirklich den Datenbankeintrag löschen?</string>
<string name="label_enable_points">Punkt auf den Datenpunkt</string>
<string name="Monday">Montag</string>
<string name="Tuesday">Dienstag</string>
<string name="Wednesday">Mittwoch</string>
<string name="Thursday">Donnerstag</string>
<string name="Friday">Freitag</string>
<string name="Saturday">Samstag</string>
<string name="Sunday">Sonntag</string>
</resources>

View File

@@ -132,4 +132,12 @@
<string name="info_your_waist">Your waist circumference was</string>
<string name="info_your_hip">Your hip circumference was</string>
<string name="info_on_date">on</string>
<string name="Monday">Monday</string>
<string name="Tuesday">Tuesday</string>
<string name="Wednesday">Wednesday</string>
<string name="Thursday">Thursday</string>
<string name="Friday">Friday</string>
<string name="Saturday">Saturday</string>
<string name="Sunday">Sunday</string>
</resources>

View File

@@ -1,6 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="weekdays_entries">
<item>@string/Monday</item>
<item>@string/Tuesday</item>
<item>@string/Wednesday</item>
<item>@string/Thursday</item>
<item>@string/Friday</item>
<item>@string/Saturday</item>
<item>@string/Sunday</item>
</string-array>
<string-array name="weekdays_values">
<item>Monday</item>
<item>Tuesday</item>
<item>Wednesday</item>
@@ -10,15 +20,5 @@
<item>Sunday</item>
</string-array>
<string-array name="weekdays_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
</string-array>
<string-array name="weekdays_default"></string-array>
<string-array name="weekdays_default"/>
</resources>