refactored weekday list to keep in a single place all days names.
parent
5920c8cd21
commit
ef83c693d0
|
|
@ -20,7 +20,7 @@ class BootBroadcastReceiver : BroadcastReceiver(){
|
||||||
RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
|
RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg1.getStringExtra("action") == "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}" )
|
if (arg1.getStringExtra("action") == "$tag.${Actions.PLAY_OR_FALLBACK.name}" )
|
||||||
{
|
{
|
||||||
RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
|
RadioAlarm.instance.setNextAlarm(context) // schedule next alarm
|
||||||
if (PlayerStore.instance.streamerName.value.isNullOrBlank())
|
if (PlayerStore.instance.streamerName.value.isNullOrBlank())
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,23 @@ package fr.forum_thalie.tsumugi
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
const val tag = "fr.forum_thalie.tsumugi"
|
const val tag = "fr.forum_thalie.tsumugi"
|
||||||
const val noConnectionValue = "No connection"
|
const val noConnectionValue = "Arrêté."
|
||||||
const val streamDownValue = "Tsumugi est HS !"
|
const val streamDownValue = "Tsumugi est HS !"
|
||||||
|
val weekdaysArray : Array<String> = arrayOf( "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")
|
||||||
|
|
||||||
|
val weekdays = ArrayList<String>().apply { weekdaysArray.forEach { add(it) } }
|
||||||
|
val weekdaysSundayFirst = ArrayList<String>().apply {
|
||||||
|
weekdays.forEach {
|
||||||
|
add(it)
|
||||||
|
}
|
||||||
|
val lastDay = last()
|
||||||
|
removeAt(size - 1)
|
||||||
|
add(0, lastDay)
|
||||||
|
}
|
||||||
|
|
||||||
var colorBlue: Int = 0
|
var colorBlue: Int = 0
|
||||||
var colorWhited: Int = 0
|
var colorWhited: Int = 0
|
||||||
var colorGreenList: ColorStateList? = ColorStateList.valueOf(0)
|
var colorGreenList: ColorStateList? = ColorStateList.valueOf(0)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import fr.forum_thalie.tsumugi.BootBroadcastReceiver
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import fr.forum_thalie.tsumugi.*
|
import fr.forum_thalie.tsumugi.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
class RadioAlarm {
|
class RadioAlarm {
|
||||||
|
|
||||||
|
|
@ -38,7 +39,7 @@ class RadioAlarm {
|
||||||
|
|
||||||
val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||||
alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
|
alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
|
||||||
intent.putExtra("action", "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}")
|
intent.putExtra("action", "$tag.${Actions.PLAY_OR_FALLBACK.name}")
|
||||||
PendingIntent.getBroadcast(c, 0, intent, 0)
|
PendingIntent.getBroadcast(c, 0, intent, 0)
|
||||||
}
|
}
|
||||||
val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
|
val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
|
||||||
|
|
@ -60,7 +61,7 @@ class RadioAlarm {
|
||||||
val hourOfDay = time / 60 //time is in minutes
|
val hourOfDay = time / 60 //time is in minutes
|
||||||
val minute = time % 60
|
val minute = time % 60
|
||||||
|
|
||||||
val fullWeekOrdered = arrayListOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
|
val fullWeekOrdered = weekdaysSundayFirst //Sunday --> Saturday
|
||||||
val selectedDays = arrayListOf<Int>()
|
val selectedDays = arrayListOf<Int>()
|
||||||
for (item in fullWeekOrdered)
|
for (item in fullWeekOrdered)
|
||||||
{
|
{
|
||||||
|
|
@ -100,7 +101,7 @@ class RadioAlarm {
|
||||||
{
|
{
|
||||||
val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
val alarmManager = c.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||||
alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
|
alarmIntent = Intent(c, BootBroadcastReceiver::class.java).let { intent ->
|
||||||
intent.putExtra("action", "fr.forum_thalie.tsumugi.${Actions.PLAY_OR_FALLBACK.name}")
|
intent.putExtra("action", "$tag.${Actions.PLAY_OR_FALLBACK.name}")
|
||||||
PendingIntent.getBroadcast(c, 0, intent, 0)
|
PendingIntent.getBroadcast(c, 0, intent, 0)
|
||||||
}
|
}
|
||||||
val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
|
val showIntent = Intent(c, ParametersActivity::class.java).let { intent ->
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.preference.*
|
import androidx.preference.*
|
||||||
|
import fr.forum_thalie.tsumugi.*
|
||||||
import fr.forum_thalie.tsumugi.R
|
import fr.forum_thalie.tsumugi.R
|
||||||
import fr.forum_thalie.tsumugi.alarm.RadioAlarm
|
import fr.forum_thalie.tsumugi.alarm.RadioAlarm
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
@ -18,6 +19,9 @@ class AlarmFragment : PreferenceFragmentCompat() {
|
||||||
val alarmDays = findPreference<MultiSelectListPreference>("alarmDays")
|
val alarmDays = findPreference<MultiSelectListPreference>("alarmDays")
|
||||||
val snoozeDuration = findPreference<ListPreference>("snoozeDuration")
|
val snoozeDuration = findPreference<ListPreference>("snoozeDuration")
|
||||||
|
|
||||||
|
alarmDays?.entries = weekdaysArray
|
||||||
|
alarmDays?.entryValues = weekdaysArray
|
||||||
|
alarmDays?.setDefaultValue(weekdaysArray)
|
||||||
|
|
||||||
fun updateIsWakingUpSummary(preference: SwitchPreferenceCompat?, newValue: Boolean? = true, forceTime: Int? = null, forceDays: Set<String>? = null)
|
fun updateIsWakingUpSummary(preference: SwitchPreferenceCompat?, newValue: Boolean? = true, forceTime: Int? = null, forceDays: Set<String>? = null)
|
||||||
{
|
{
|
||||||
|
|
@ -26,15 +30,13 @@ class AlarmFragment : PreferenceFragmentCompat() {
|
||||||
calendar.timeInMillis = dateLong
|
calendar.timeInMillis = dateLong
|
||||||
if (newValue == true && calendar.timeInMillis > 0)
|
if (newValue == true && calendar.timeInMillis > 0)
|
||||||
{
|
{
|
||||||
val fullWeekOrdered = arrayListOf("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
|
val fullWeekOrdered = weekdaysSundayFirst
|
||||||
preference?.summary = "Next alarm on ${fullWeekOrdered[calendar.get(Calendar.DAY_OF_WEEK) - 1]} " +
|
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)}"
|
||||||
"at ${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)}"
|
|
||||||
} else if (newValue == true)
|
} else if (newValue == true)
|
||||||
preference?.summary = "Select at least one day"
|
preference?.summary = getString(R.string.select_one_day)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
preference?.summary = "No alarm set"
|
preference?.summary = getString(R.string.no_alarm_set)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,17 +78,15 @@ class AlarmFragment : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
fun updateDays(preference : MultiSelectListPreference?, newValue : Set<String>?)
|
fun updateDays(preference : MultiSelectListPreference?, newValue : Set<String>?)
|
||||||
{
|
{
|
||||||
Log.d(tag, newValue.toString())
|
val fullWeek = weekdays.toSet()
|
||||||
val listOfDays : String
|
val workingWeek = weekdays.toSet().minusElement(weekdays.last()).minusElement(weekdays.elementAt(weekdays.size - 2))
|
||||||
val fullWeek = context!!.resources.getStringArray(R.array.weekdays).toSet()
|
val listOfDays = when (newValue) {
|
||||||
val workingWeek = context!!.resources.getStringArray(R.array.weekdays).toSet().minusElement("Saturday").minusElement("Sunday")
|
|
||||||
listOfDays = when (newValue) {
|
|
||||||
fullWeek -> context!!.getString(R.string.every_day)
|
fullWeek -> context!!.getString(R.string.every_day)
|
||||||
workingWeek -> context!!.getString(R.string.working_days)
|
workingWeek -> context!!.getString(R.string.working_days)
|
||||||
else -> {
|
else -> {
|
||||||
// build ORDERED LIST of days... I don't know why the original one is in shambles!!
|
// build ORDERED LIST of days... I don't know why the original one is in shambles!!
|
||||||
val fullWeekOrdered = arrayListOf("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
|
val fullWeekOrdered = weekdays
|
||||||
val selectedDays = arrayListOf<String>()
|
val selectedDays = ArrayList<String>()
|
||||||
for (item in fullWeekOrdered) {
|
for (item in fullWeekOrdered) {
|
||||||
if (newValue!!.contains(item))
|
if (newValue!!.contains(item))
|
||||||
selectedDays.add(item)
|
selectedDays.add(item)
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string-array name="weekdays">
|
|
||||||
<item name="monday">Monday</item>
|
|
||||||
<item name="tuesday">Tuesday</item>
|
|
||||||
<item name="wednesday">Wednesday</item>
|
|
||||||
<item name="thursday">Thursday</item>
|
|
||||||
<item name="friday">Friday</item>
|
|
||||||
<item name="saturday">Saturday</item>
|
|
||||||
<item name="sunday">Sunday</item>
|
|
||||||
</string-array>
|
|
||||||
<string-array name="snoozeValues">
|
<string-array name="snoozeValues">
|
||||||
<item name="0">@string/disable</item>
|
<item name="0">@string/disable</item>
|
||||||
<item name="1">1</item>
|
<item name="1">1</item>
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,8 @@
|
||||||
<string name="website_url">https://tsumugi.forum-thalie.fr/</string>
|
<string name="website_url">https://tsumugi.forum-thalie.fr/</string>
|
||||||
<string name="rss_url">https://tsumugi.forum-thalie.fr/?feed=rss2</string>
|
<string name="rss_url">https://tsumugi.forum-thalie.fr/?feed=rss2</string>
|
||||||
<string name="planning_url">ADD SOME URL HERE...</string>
|
<string name="planning_url">ADD SOME URL HERE...</string>
|
||||||
|
<string name="select_one_day">Select at least one day</string>
|
||||||
|
<string name="no_alarm_set">No alarm set</string>
|
||||||
|
<string name="next_alarm">Next alarm:</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,7 @@
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
app:title="Select days of the week"
|
app:title="Select days of the week"
|
||||||
app:singleLineTitle="false"
|
app:singleLineTitle="false"
|
||||||
android:entries="@array/weekdays"
|
|
||||||
android:entryValues="@array/weekdays"
|
|
||||||
android:defaultValue="@array/weekdays"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue