diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index add6ddc..169fd0d 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -8,28 +8,6 @@
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 257ba1f..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/ExoPlayer b/ExoPlayer
deleted file mode 160000
index 24a1926..0000000
--- a/ExoPlayer
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 24a19264dbf35e326bbd7bb36c232eb180e1e26d
diff --git a/app/build.gradle b/app/build.gradle
index d658187..0274953 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,8 +29,8 @@ android {
applicationId "fr.forum_thalie.tsumugi"
minSdkVersion 16
targetSdkVersion 29
- versionCode 113
- versionName "1.1.3"
+ versionCode 115
+ versionName "1.1.5"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
@@ -69,11 +69,11 @@ dependencies {
*/
implementation "androidx.media:media:1.1.0"
- //implementation 'com.google.android.exoplayer:exoplayer:2.11.1'
- implementation project(':exoplayer-library') // uses local ExoPlayer clone, from dev-v2 branch (fixes ISO-8859-1 ICY metadata
+ implementation 'com.google.android.exoplayer:exoplayer:2.11.3'
+ //implementation project(':exoplayer-library') // uses local ExoPlayer clone, from dev-v2 branch (fixes ISO-8859-1 ICY metadata
- implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0'
+ implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.preference:preference:1.1.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7e20574..4bb94a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -48,7 +48,7 @@
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
android:launchMode="singleTask"
- android:screenOrientation="fullSensor">
+ android:screenOrientation="fullUser">
diff --git a/app/src/main/assets/planning_example.json b/app/src/main/assets/planning_example.json
index 94c582a..1ef0236 100644
--- a/app/src/main/assets/planning_example.json
+++ b/app/src/main/assets/planning_example.json
@@ -62,5 +62,5 @@
}
],
"regular_programme" : "Programmation habituelle",
- "timezone": "GMT+1"
+ "timezone": "Europe/Paris"
}
\ No newline at end of file
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/NowPlayingNotification.kt b/app/src/main/java/fr/forum_thalie/tsumugi/NowPlayingNotification.kt
index 2c8d0d4..c5c6b63 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/NowPlayingNotification.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/NowPlayingNotification.kt
@@ -39,7 +39,7 @@ class NowPlayingNotification(
mediaStyle = androidx.media.app.NotificationCompat.DecoratedMediaCustomViewStyle().also {
it.setMediaSession(m.sessionToken)
- it.setShowActionsInCompactView(0) // index 0 = show actions 0 and 1 (show action #0 (play/pause))
+ it.setShowActionsInCompactView(0, 1) // index 0 = show actions 0 and 1 (show action #0 (play/pause))
it.setCancelButtonIntent(deleteIntent)
}
builder.setStyle(mediaStyle)
@@ -83,7 +83,7 @@ class NowPlayingNotification(
val intent2 = Intent(c, RadioService::class.java)
intent2.putExtra("action", Actions.KILL.name)
val pendingButtonIntent = PendingIntent.getService(c, 2, intent2, PendingIntent.FLAG_UPDATE_CURRENT)
- val stopAction = NotificationCompat.Action.Builder(R.drawable.ic_stop,"Stop", pendingButtonIntent).build()
+ val stopAction = NotificationCompat.Action.Builder(R.drawable.ic_close,"Stop", pendingButtonIntent).build()
builder.addAction(stopAction)
if (isRinging) {
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/RadioService.kt b/app/src/main/java/fr/forum_thalie/tsumugi/RadioService.kt
index 3c4a37e..c98f641 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/RadioService.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/RadioService.kt
@@ -72,7 +72,7 @@ class RadioService : MediaBrowserServiceCompat() {
}
1 -> {
//[REMOVE LOG CALLS]Log.d(tag, radioTag + "Headset is plugged")
- headsetPluggedIn = true
+ headsetPluggedIn = true && PreferenceManager.getDefaultSharedPreferences(context).getBoolean("autoStartOnPlug", false)
}
else -> {
//[REMOVE LOG CALLS]Log.d(tag, radioTag + "I have no idea what the headset state is")
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/playerstore/PlayerStore.kt b/app/src/main/java/fr/forum_thalie/tsumugi/playerstore/PlayerStore.kt
index e37fde9..7e2e03a 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/playerstore/PlayerStore.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/playerstore/PlayerStore.kt
@@ -12,6 +12,7 @@ import org.json.JSONObject
import java.net.URL
import java.text.ParseException
import java.text.SimpleDateFormat
+import java.time.format.TextStyle
import java.util.*
import kotlin.collections.ArrayList
@@ -61,7 +62,7 @@ class PlayerStore {
{
val dateFormat = SimpleDateFormat("yyyy-MM-dd hh:mm:ss z", Locale.getDefault())
try {
- val t: Date? = dateFormat.parse("$s ${Planning.instance.timeZone.id}")
+ val t: Date? = dateFormat.parse("$s ${Planning.instance.timeZone.getDisplayName(Planning.instance.timeZone.useDaylightTime(), TimeZone.SHORT)}")
//[REMOVE LOG CALLS]Log.d(tag, "date: $s -> $t")
return t!!.time
} catch (e: ParseException) {
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/AlarmFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/AlarmFragment.kt
index d876246..4b07606 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/AlarmFragment.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/AlarmFragment.kt
@@ -1,8 +1,10 @@
package fr.forum_thalie.tsumugi.preferences
import android.app.TimePickerDialog
+import android.content.Context
import android.os.Bundle
import android.util.Log
+import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
import androidx.preference.*
import fr.forum_thalie.tsumugi.*
@@ -11,6 +13,12 @@ import fr.forum_thalie.tsumugi.alarm.RadioAlarm
import java.util.*
class AlarmFragment : PreferenceFragmentCompat() {
+
+ override fun onAttach(context: Context) {
+ (activity as AppCompatActivity).supportActionBar?.title = context.getString(R.string.setupAlarmClock)
+ super.onAttach(context)
+ }
+
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.alarm_preferences, rootKey)
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/CustomizeFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/CustomizeFragment.kt
index fe3a2cd..cedcec8 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/CustomizeFragment.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/CustomizeFragment.kt
@@ -1,12 +1,19 @@
package fr.forum_thalie.tsumugi.preferences
+import android.content.Context
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
+import androidx.appcompat.app.AppCompatActivity
import androidx.preference.*
import fr.forum_thalie.tsumugi.R
import fr.forum_thalie.tsumugi.preferenceStore
class CustomizeFragment : PreferenceFragmentCompat() {
+ override fun onAttach(context: Context) {
+ (activity as AppCompatActivity).supportActionBar?.title = context.getString(R.string.customizeAppBehavior)
+ super.onAttach(context)
+ }
+
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.customize_preferences, rootKey)
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/MainPreferenceFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/MainPreferenceFragment.kt
index 61d30fd..4eb797f 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/MainPreferenceFragment.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/MainPreferenceFragment.kt
@@ -5,9 +5,14 @@ import android.net.Uri
import android.os.Bundle
import fr.forum_thalie.tsumugi.R
import android.annotation.SuppressLint
+import androidx.appcompat.app.AppCompatActivity
import androidx.preference.*
class MainPreferenceFragment : PreferenceFragmentCompat() {
+ override fun onResume() {
+ super.onResume()
+ (activity as AppCompatActivity).supportActionBar?.title = context?.getString(R.string.settings)
+ }
@SuppressLint("ApplySharedPref")
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/SleepFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/SleepFragment.kt
index 4c62ae3..9041a23 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/preferences/SleepFragment.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/preferences/SleepFragment.kt
@@ -1,13 +1,20 @@
package fr.forum_thalie.tsumugi.preferences
+import android.content.Context
import android.os.Bundle
import androidx.preference.*
import fr.forum_thalie.tsumugi.R
import android.text.InputType
+import androidx.appcompat.app.AppCompatActivity
import fr.forum_thalie.tsumugi.alarm.RadioSleeper
class SleepFragment : PreferenceFragmentCompat() {
+ override fun onAttach(context: Context) {
+ (activity as AppCompatActivity).supportActionBar?.title = context.getString(R.string.setSleepTimer)
+ super.onAttach(context)
+ }
+
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.sleep_preference, rootKey)
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/nowplaying/NowPlayingViewModel.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/nowplaying/NowPlayingViewModel.kt
index 627abeb..a6f56f3 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/nowplaying/NowPlayingViewModel.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/nowplaying/NowPlayingViewModel.kt
@@ -1,9 +1,11 @@
package fr.forum_thalie.tsumugi.ui.nowplaying
import android.widget.SeekBar
+import androidx.core.content.edit
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import fr.forum_thalie.tsumugi.playerstore.PlayerStore
+import fr.forum_thalie.tsumugi.preferenceStore
class NowPlayingViewModel: ViewModel() {
@@ -21,6 +23,10 @@ class NowPlayingViewModel: ViewModel() {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
// updated continuously as the user slides the thumb
PlayerStore.instance.volume.value = progress
+ preferenceStore.edit {
+ putInt("volume", progress)
+ commit()
+ }
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt
index 6742d87..2869b81 100644
--- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt
+++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt
@@ -1,18 +1,18 @@
package fr.forum_thalie.tsumugi.ui.programme
import android.annotation.SuppressLint
-import android.util.TypedValue
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.core.widget.TextViewCompat
import androidx.recyclerview.widget.RecyclerView
-import fr.forum_thalie.tsumugi.*
+import fr.forum_thalie.tsumugi.R
+import fr.forum_thalie.tsumugi.colorAccent
+import fr.forum_thalie.tsumugi.colorWhited
import fr.forum_thalie.tsumugi.planning.Planning
import fr.forum_thalie.tsumugi.planning.Programme
+import fr.forum_thalie.tsumugi.weekdaysSundayFirst
import java.util.*
-import kotlin.collections.ArrayList
class ProgrammeAdapter(private val dataSet: ArrayList, private val day: String
/*,
diff --git a/app/src/main/res/drawable-anydpi/ic_close.xml b/app/src/main/res/drawable-anydpi/ic_close.xml
new file mode 100644
index 0000000..443f138
--- /dev/null
+++ b/app/src/main/res/drawable-anydpi/ic_close.xml
@@ -0,0 +1,11 @@
+
+
+
diff --git a/app/src/main/res/drawable-hdpi/ic_close.png b/app/src/main/res/drawable-hdpi/ic_close.png
new file mode 100644
index 0000000..c661d15
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_close.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_close.png b/app/src/main/res/drawable-mdpi/ic_close.png
new file mode 100644
index 0000000..6060ea2
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_close.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_close.png b/app/src/main/res/drawable-xhdpi/ic_close.png
new file mode 100644
index 0000000..91f6c7a
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_close.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_close.png b/app/src/main/res/drawable-xxhdpi/ic_close.png
new file mode 100644
index 0000000..1e41c55
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_close.png differ
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 0a381f0..c2e04af 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -37,16 +37,16 @@
Derniers titres
Planning
Programme régulier
- Activer l\'alarme
+ Activer le réveil
Choisir l\'heure
Choisir les jours
Choisir le délai de répétition d\'alarme (minutes)
Volume au démarrage
Utiliser une disposition horizontale adaptée
Rendre les barres d\information persistantes
- Configurer l\'alarme
- Configurer la minuterie avant extinction
- Paramètres de l\'application
+ Réveil
+ Minuterie avant extinction
+ Comportement de l\'application
Reporter un bug
Minuterie avant fermeture de l\'application
Choisir une durée (en minutes)
@@ -54,5 +54,7 @@
Choisir la fréquence de mise à jour quand la radio est stoppée
Actualisation…
Raffraîchir les données
+ \"Play\" au branchement de la prise casque
+ Paramètres
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6408717..3847fed 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -64,9 +64,9 @@
Volume at startup
Use horizontal split layout
Make Snackbars persistent
- Set up alarm clock
- Set sleep timer
- Customize app behavior
+ Alarm
+ Sleep timer
+ Customize app behavior
Submit a bug (opens GitHub in a web browser)
Sleep - close app after some time
Set duration (minutes)
@@ -74,5 +74,7 @@
Set update period when stopped
Refreshing data…
Refresh data
+ Auto play when plugging headphones
+ Settings
diff --git a/app/src/main/res/xml/customize_preferences.xml b/app/src/main/res/xml/customize_preferences.xml
index 6331d4a..1da9a2e 100644
--- a/app/src/main/res/xml/customize_preferences.xml
+++ b/app/src/main/res/xml/customize_preferences.xml
@@ -1,7 +1,7 @@
-
+
+
diff --git a/settings.gradle b/settings.gradle
index 79be6ca..6bfed1f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,6 +1,2 @@
include ':app'
rootProject.name='Tsumugi-app'
-
-gradle.ext.exoplayerRoot = './ExoPlayer'
-gradle.ext.exoplayerModulePrefix = 'exoplayer-'
-apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')