Browse Source

refactored weekday list to keep in a single place all days names.

yattoz 4 years ago
parent
commit
ef83c693d0

+ 1 - 1
app/src/main/java/fr/forum_thalie/tsumugi/BootBroadcastReceiver.kt View File

20
             RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
20
             RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
21
         }
21
         }
22
 
22
 
23
-        if (arg1.getStringExtra("action") == "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}" )
23
+        if (arg1.getStringExtra("action") == "$tag.${Actions.PLAY_OR_FALLBACK.name}" )
24
         {
24
         {
25
             RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
25
             RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
26
             if (PlayerStore.instance.streamerName.value.isNullOrBlank())
26
             if (PlayerStore.instance.streamerName.value.isNullOrBlank())

+ 14 - 1
app/src/main/java/fr/forum_thalie/tsumugi/Values.kt View File

2
 
2
 
3
 import android.content.SharedPreferences
3
 import android.content.SharedPreferences
4
 import android.content.res.ColorStateList
4
 import android.content.res.ColorStateList
5
+import kotlin.collections.ArrayList
5
 
6
 
6
 const val tag = "fr.forum_thalie.tsumugi"
7
 const val tag = "fr.forum_thalie.tsumugi"
7
-const val noConnectionValue = "No connection"
8
+const val noConnectionValue = "Arrêté."
8
 const val streamDownValue = "Tsumugi est HS !"
9
 const val streamDownValue = "Tsumugi est HS !"
10
+val weekdaysArray : Array<String> = arrayOf( "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")
11
+
12
+val weekdays = ArrayList<String>().apply { weekdaysArray.forEach { add(it) } }
13
+val weekdaysSundayFirst = ArrayList<String>().apply {
14
+    weekdays.forEach {
15
+        add(it)
16
+    }
17
+    val lastDay = last()
18
+    removeAt(size - 1)
19
+    add(0, lastDay)
20
+}
21
+
9
 var colorBlue: Int = 0
22
 var colorBlue: Int = 0
10
 var colorWhited: Int = 0
23
 var colorWhited: Int = 0
11
 var colorGreenList: ColorStateList? = ColorStateList.valueOf(0)
24
 var colorGreenList: ColorStateList? = ColorStateList.valueOf(0)

+ 4 - 3
app/src/main/java/fr/forum_thalie/tsumugi/alarm/RadioAlarm.kt View File

10
 import androidx.preference.PreferenceManager
10
 import androidx.preference.PreferenceManager
11
 import fr.forum_thalie.tsumugi.*
11
 import fr.forum_thalie.tsumugi.*
12
 import java.util.*
12
 import java.util.*
13
+import kotlin.collections.ArrayList
13
 
14
 
14
 class RadioAlarm {
15
 class RadioAlarm {
15
 
16
 
38
 
39
 
39
         val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
40
         val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
40
         alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
41
         alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
41
-            intent.putExtra("action", "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}")
42
+            intent.putExtra("action", "$tag.${Actions.PLAY_OR_FALLBACK.name}")
42
             PendingIntent.getBroadcast(c, 0, intent, 0)
43
             PendingIntent.getBroadcast(c, 0, intent, 0)
43
         }
44
         }
44
         val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
45
         val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
60
         val hourOfDay = time / 60 //time is in minutes
61
         val hourOfDay = time / 60 //time is in minutes
61
         val minute = time % 60
62
         val minute = time % 60
62
 
63
 
63
-        val fullWeekOrdered = arrayListOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
64
+        val fullWeekOrdered = weekdaysSundayFirst //Sunday --> Saturday
64
         val selectedDays = arrayListOf<Int>()
65
         val selectedDays = arrayListOf<Int>()
65
         for (item in fullWeekOrdered)
66
         for (item in fullWeekOrdered)
66
         {
67
         {
100
         {
101
         {
101
             val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
102
             val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
102
             alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
103
             alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
103
-                intent.putExtra("action", "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}")
104
+                intent.putExtra("action", "$tag.${Actions.PLAY_OR_FALLBACK.name}")
104
                 PendingIntent.getBroadcast(c, 0, intent, 0)
105
                 PendingIntent.getBroadcast(c, 0, intent, 0)
105
             }
106
             }
106
             val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
107
             val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->

+ 13 - 13
app/src/main/java/fr/forum_thalie/tsumugi/preferences/AlarmFragment.kt View File

5
 import android.util.Log
5
 import android.util.Log
6
 import androidx.core.content.edit
6
 import androidx.core.content.edit
7
 import androidx.preference.*
7
 import androidx.preference.*
8
+import fr.forum_thalie.tsumugi.*
8
 import fr.forum_thalie.tsumugi.R
9
 import fr.forum_thalie.tsumugi.R
9
 import fr.forum_thalie.tsumugi.alarm.RadioAlarm
10
 import fr.forum_thalie.tsumugi.alarm.RadioAlarm
10
 import java.util.*
11
 import java.util.*
18
         val alarmDays = findPreference<MultiSelectListPreference>("alarmDays")
19
         val alarmDays = findPreference<MultiSelectListPreference>("alarmDays")
19
         val snoozeDuration = findPreference<ListPreference>("snoozeDuration")
20
         val snoozeDuration = findPreference<ListPreference>("snoozeDuration")
20
 
21
 
22
+        alarmDays?.entries = weekdaysArray
23
+        alarmDays?.entryValues = weekdaysArray
24
+        alarmDays?.setDefaultValue(weekdaysArray)
21
 
25
 
22
         fun updateIsWakingUpSummary(preference: SwitchPreferenceCompat?, newValue: Boolean? = true,  forceTime: Int? = null, forceDays: Set<String>? = null)
26
         fun updateIsWakingUpSummary(preference: SwitchPreferenceCompat?, newValue: Boolean? = true,  forceTime: Int? = null, forceDays: Set<String>? = null)
23
         {
27
         {
26
             calendar.timeInMillis = dateLong
30
             calendar.timeInMillis = dateLong
27
             if (newValue == true && calendar.timeInMillis > 0)
31
             if (newValue == true && calendar.timeInMillis > 0)
28
             {
32
             {
29
-                val fullWeekOrdered = arrayListOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
30
-                preference?.summary = "Next alarm on ${fullWeekOrdered[calendar.get(Calendar.DAY_OF_WEEK) - 1]} " +
31
-                        "at ${if (calendar.get(Calendar.HOUR_OF_DAY) < 10) "0" else ""}${calendar.get(Calendar.HOUR_OF_DAY)}" +
32
-                        ":${if (calendar.get(Calendar.MINUTE) < 10) "0" else ""}${calendar.get(Calendar.MINUTE)}"
33
+                val fullWeekOrdered = weekdaysSundayFirst
34
+                preference?.summary = getString(R.string.next_alarm) + " ${fullWeekOrdered[calendar.get(Calendar.DAY_OF_WEEK) - 1]} ${if (calendar.get(Calendar.HOUR_OF_DAY) < 10) "0" else ""}${calendar.get(Calendar.HOUR_OF_DAY)}:${if (calendar.get(Calendar.MINUTE) < 10) "0" else ""}${calendar.get(Calendar.MINUTE)}"
33
             } else if (newValue == true)
35
             } else if (newValue == true)
34
-                preference?.summary = "Select at least one day"
36
+                preference?.summary = getString(R.string.select_one_day)
35
             else
37
             else
36
             {
38
             {
37
-                preference?.summary = "No alarm set"
39
+                preference?.summary = getString(R.string.no_alarm_set)
38
             }
40
             }
39
         }
41
         }
40
 
42
 
76
 
78
 
77
         fun updateDays(preference : MultiSelectListPreference?, newValue : Set<String>?)
79
         fun updateDays(preference : MultiSelectListPreference?, newValue : Set<String>?)
78
         {
80
         {
79
-            Log.d(tag, newValue.toString())
80
-            val listOfDays : String
81
-            val fullWeek = context!!.resources.getStringArray(R.array.weekdays).toSet()
82
-            val workingWeek = context!!.resources.getStringArray(R.array.weekdays).toSet().minusElement("Saturday").minusElement("Sunday")
83
-            listOfDays = when (newValue) {
81
+            val fullWeek = weekdays.toSet()
82
+            val workingWeek = weekdays.toSet().minusElement(weekdays.last()).minusElement(weekdays.elementAt(weekdays.size - 2))
83
+            val listOfDays = when (newValue) {
84
                 fullWeek -> context!!.getString(R.string.every_day)
84
                 fullWeek -> context!!.getString(R.string.every_day)
85
                 workingWeek -> context!!.getString(R.string.working_days)
85
                 workingWeek -> context!!.getString(R.string.working_days)
86
                 else -> {
86
                 else -> {
87
                     // build ORDERED LIST of days... I don't know why the original one is in shambles!!
87
                     // build ORDERED LIST of days... I don't know why the original one is in shambles!!
88
-                    val fullWeekOrdered = arrayListOf("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
89
-                    val selectedDays = arrayListOf<String>()
88
+                    val fullWeekOrdered = weekdays
89
+                    val selectedDays = ArrayList<String>()
90
                     for (item in fullWeekOrdered) {
90
                     for (item in fullWeekOrdered) {
91
                         if (newValue!!.contains(item))
91
                         if (newValue!!.contains(item))
92
                             selectedDays.add(item)
92
                             selectedDays.add(item)

+ 0 - 9
app/src/main/res/values/arrays.xml View File

1
 <?xml version="1.0" encoding="utf-8"?>
1
 <?xml version="1.0" encoding="utf-8"?>
2
 <resources>
2
 <resources>
3
 
3
 
4
-    <string-array name="weekdays">
5
-        <item name="monday">Monday</item>
6
-        <item name="tuesday">Tuesday</item>
7
-        <item name="wednesday">Wednesday</item>
8
-        <item name="thursday">Thursday</item>
9
-        <item name="friday">Friday</item>
10
-        <item name="saturday">Saturday</item>
11
-        <item name="sunday">Sunday</item>
12
-    </string-array>
13
     <string-array name="snoozeValues">
4
     <string-array name="snoozeValues">
14
         <item name="0">@string/disable</item>
5
         <item name="0">@string/disable</item>
15
         <item name="1">1</item>
6
         <item name="1">1</item>

+ 3 - 0
app/src/main/res/values/strings.xml View File

44
     <string name="website_url">https://tsumugi.forum-thalie.fr/</string>
44
     <string name="website_url">https://tsumugi.forum-thalie.fr/</string>
45
     <string name="rss_url">https://tsumugi.forum-thalie.fr/?feed=rss2</string>
45
     <string name="rss_url">https://tsumugi.forum-thalie.fr/?feed=rss2</string>
46
     <string name="planning_url">ADD SOME URL HERE...</string>
46
     <string name="planning_url">ADD SOME URL HERE...</string>
47
+    <string name="select_one_day">Select at least one day</string>
48
+    <string name="no_alarm_set">No alarm set</string>
49
+    <string name="next_alarm">Next alarm:</string>
47
 
50
 
48
 </resources>
51
 </resources>

+ 1 - 3
app/src/main/res/xml/alarm_preferences.xml View File

23
         app:iconSpaceReserved="false"
23
         app:iconSpaceReserved="false"
24
         app:title="Select days of the week"
24
         app:title="Select days of the week"
25
         app:singleLineTitle="false"
25
         app:singleLineTitle="false"
26
-        android:entries="@array/weekdays"
27
-        android:entryValues="@array/weekdays"
28
-        android:defaultValue="@array/weekdays"
26
+
29
         />
27
         />
30
 
28
 
31
     <ListPreference
29
     <ListPreference