diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt
index 1d446797..edd24315 100644
--- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt
+++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt
@@ -15,9 +15,9 @@
*/
package org.moire.ultrasonic.playback
-import android.annotation.SuppressLint
import android.app.PendingIntent
import android.content.Intent
+import android.os.Build
import androidx.media3.common.AudioAttributes
import androidx.media3.common.C
import androidx.media3.common.C.CONTENT_TYPE_MUSIC
@@ -132,11 +132,14 @@ class PlaybackService : MediaLibraryService(), KoinComponent {
.build()
}
- @SuppressLint("UnspecifiedImmutableFlag")
private fun getPendingIntentForContent(): PendingIntent {
val intent = Intent(this, NavigationActivity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
- val flags = PendingIntent.FLAG_UPDATE_CURRENT
+ var flags = PendingIntent.FLAG_UPDATE_CURRENT
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ // needed starting Android 12 (S = 31)
+ flags = flags or PendingIntent.FLAG_IMMUTABLE
+ }
intent.putExtra(Constants.INTENT_SHOW_PLAYER, true)
return PendingIntent.getActivity(this, 0, intent, flags)
}
diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/provider/UltrasonicAppWidgetProvider.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/provider/UltrasonicAppWidgetProvider.kt
index 7a12fdfe..ddc11e3f 100644
--- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/provider/UltrasonicAppWidgetProvider.kt
+++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/provider/UltrasonicAppWidgetProvider.kt
@@ -7,13 +7,13 @@
package org.moire.ultrasonic.provider
-import android.annotation.SuppressLint
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.ComponentName
import android.content.Context
import android.content.Intent
+import android.os.Build
import android.os.Environment
import android.view.KeyEvent
import android.widget.RemoteViews
@@ -164,7 +164,6 @@ open class UltrasonicAppWidgetProvider : AppWidgetProvider() {
/**
* Link up various button actions using [PendingIntent].
*/
- @SuppressLint("UnspecifiedImmutableFlag")
private fun linkButtons(context: Context, views: RemoteViews, playerActive: Boolean) {
var intent = Intent(
context,
@@ -173,8 +172,13 @@ open class UltrasonicAppWidgetProvider : AppWidgetProvider() {
if (playerActive) intent.putExtra(Constants.INTENT_SHOW_PLAYER, true)
intent.action = "android.intent.action.MAIN"
intent.addCategory("android.intent.category.LAUNCHER")
+ var flags = PendingIntent.FLAG_UPDATE_CURRENT
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ // needed starting Android 12 (S = 31)
+ flags = flags or PendingIntent.FLAG_IMMUTABLE
+ }
var pendingIntent =
- PendingIntent.getActivity(context, 10, intent, PendingIntent.FLAG_UPDATE_CURRENT)
+ PendingIntent.getActivity(context, 10, intent, flags)
views.setOnClickPendingIntent(R.id.appwidget_coverart, pendingIntent)
views.setOnClickPendingIntent(R.id.appwidget_top, pendingIntent)
@@ -185,7 +189,12 @@ open class UltrasonicAppWidgetProvider : AppWidgetProvider() {
Intent.EXTRA_KEY_EVENT,
KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE)
)
- pendingIntent = PendingIntent.getBroadcast(context, 11, intent, 0)
+ flags = 0
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ // needed starting Android 12 (S = 31)
+ flags = flags or PendingIntent.FLAG_IMMUTABLE
+ }
+ pendingIntent = PendingIntent.getBroadcast(context, 11, intent, flags)
views.setOnClickPendingIntent(R.id.control_play, pendingIntent)
intent = Intent(Constants.CMD_PROCESS_KEYCODE)
intent.component = ComponentName(context, MediaButtonIntentReceiver::class.java)
@@ -193,7 +202,7 @@ open class UltrasonicAppWidgetProvider : AppWidgetProvider() {
Intent.EXTRA_KEY_EVENT,
KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT)
)
- pendingIntent = PendingIntent.getBroadcast(context, 12, intent, 0)
+ pendingIntent = PendingIntent.getBroadcast(context, 12, intent, flags)
views.setOnClickPendingIntent(R.id.control_next, pendingIntent)
intent = Intent(Constants.CMD_PROCESS_KEYCODE)
intent.component = ComponentName(context, MediaButtonIntentReceiver::class.java)
@@ -201,7 +210,7 @@ open class UltrasonicAppWidgetProvider : AppWidgetProvider() {
Intent.EXTRA_KEY_EVENT,
KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS)
)
- pendingIntent = PendingIntent.getBroadcast(context, 13, intent, 0)
+ pendingIntent = PendingIntent.getBroadcast(context, 13, intent, flags)
views.setOnClickPendingIntent(R.id.control_previous, pendingIntent)
}
}
diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/DownloadService.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/DownloadService.kt
index e9cc351d..f6b2ed49 100644
--- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/DownloadService.kt
+++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/DownloadService.kt
@@ -7,7 +7,6 @@
package org.moire.ultrasonic.service
-import android.annotation.SuppressLint
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
@@ -154,11 +153,14 @@ class DownloadService : Service() {
return notificationBuilder.build()
}
- @SuppressLint("UnspecifiedImmutableFlag")
private fun getPendingIntentForContent(): PendingIntent {
val intent = Intent(this, NavigationActivity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
- val flags = PendingIntent.FLAG_UPDATE_CURRENT
+ var flags = PendingIntent.FLAG_UPDATE_CURRENT
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ // needed starting Android 12 (S = 31)
+ flags = flags or PendingIntent.FLAG_IMMUTABLE
+ }
intent.putExtra(Constants.INTENT_SHOW_PLAYER, true)
return PendingIntent.getActivity(this, 0, intent, flags)
}
diff --git a/ultrasonic/src/main/res/drawable/media3_notification_small_icon.xml b/ultrasonic/src/main/res/drawable/media3_notification_small_icon.xml
deleted file mode 100644
index e2943794..00000000
--- a/ultrasonic/src/main/res/drawable/media3_notification_small_icon.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/ultrasonic/src/main/res/values-cs/strings.xml b/ultrasonic/src/main/res/values-cs/strings.xml
index e4e015e2..bcf81ec5 100644
--- a/ultrasonic/src/main/res/values-cs/strings.xml
+++ b/ultrasonic/src/main/res/values-cs/strings.xml
@@ -179,8 +179,6 @@
Řadit skladby podle čísla CD
Řadit seznam skladeb dle čísla CD a čísla skladby
Připojovat jméno umělce, bitrate a příponu souboru
- Přehrávání bez pauz
- Zapnout přehrávání bez pauz
Skrýt hudební soubory před ostatními aplikacemi.
Skrýt před ostatními
Nabyde účinnosti při příštím skenování hudby systému Android.
diff --git a/ultrasonic/src/main/res/values-de/strings.xml b/ultrasonic/src/main/res/values-de/strings.xml
index efdf3aa2..762ecb7f 100644
--- a/ultrasonic/src/main/res/values-de/strings.xml
+++ b/ultrasonic/src/main/res/values-de/strings.xml
@@ -41,11 +41,8 @@
Name
OK
Anheften
- Pause
- Abspielen
Zuletzt spielen
Als nächstes spielen
- Vorheriges abspielen
Jetzt spielen
Zufällig spielen
Öffentlich
@@ -135,15 +132,10 @@
Löschen der Wiedergabeliste %s ist fehlgeschlagen
Downloads
Beenden
- Navigation
Einstellungen
Aktualisierung
Medienbibliothek
Offline Medien
- Netzwerkfehler. Neuer Versuch %1$d von %2$d.
- %d Künstler*innen gefunden
- Lese vom Server.
- Lese vom Server. Fertig!
Wiedergabelisten
Aktualisierungs-Informationen
Wiedergabeliste für %s aktualisiert
@@ -223,14 +215,11 @@
Bitrate und Dateityp hinter der Künstler*in anzeigen
Zeige Aktuelle Wiedergabe bei Play
Zeige Aktuelle Wiedergabe nach dem Start der Wiedergabe in der Medienansicht
- Lückenlose Wiedergabe
- Lückenlose Wiedergabe aktivieren
Musikdateien vor anderen Apps verbergen
Vor anderen verbergen
Wird beim nächsten Durchsuchen nach Musik durch Android wirksam.
Sprunglänge
Bitte eine gültige URL angeben.
- Bitte einen gültigen Benutzernamen eingeben (ohne führende Leerzeichen).
Max. Anzahl der Alben
Max. Anzahl der Künstler*innen
112 Kbps
@@ -271,8 +260,6 @@
3 Titel
5 Titel
Unbegrenzt
- Fortsetzen mit Kopfhörer
- Die App setzt eine pausierte Wiedergabe beim Anschließen der Kopfhörer fort.
Benutzername und Passwort des Scrobble Service(s) müssen im Server gesetzt sein
Gespielte Musik scrobbeln
1
@@ -385,13 +372,6 @@
Künstler*in anzeigen
Album Cover
Mehrere Jahre
- Wiedergabe fortsetzen, wenn ein Bluetooth Gerät verbunden wurde
- Wiedergabe pausieren, wenn ein Bluetooth Gerät getrennt wurde
- Alle Bluetooth Geräte
- Nur Audio (A2DP) Geräte
- Deaktiviert
- Bluetooth Gerät mit einer Play/Pause Taste
- Dies kann bei älteren Bluetooth Geräten helfen, wenn Play/Pause nicht richtig funktioniert
Debug Optionen
Schreibe Debug Log in Datei
Die Log Dateien sind unter %1$s/%2$s verfügbar
@@ -444,10 +424,6 @@
- %d Titel nach aktuellen Titel hinzugefügt
- %d Titel nach aktuellen Titel hinzugefügt
-
- - %d Tag Testphase übrig
- - %d Tage Testphase übrig
-
Allgemeiner API Fehler: %1$s
diff --git a/ultrasonic/src/main/res/values-es/strings.xml b/ultrasonic/src/main/res/values-es/strings.xml
index eced3d24..6ef40581 100644
--- a/ultrasonic/src/main/res/values-es/strings.xml
+++ b/ultrasonic/src/main/res/values-es/strings.xml
@@ -41,11 +41,8 @@
Nombre
OK
Anclar
- Pausar
- Reproducir
Reproducir última
Reproducir a continuación
- Reproducir anterior
Reproducir ahora
Reproducción aleatoria
Public
@@ -218,8 +215,6 @@
Añadir el nombre del artista con la tasa de bits y la extensión del archivo
Mostrar reproduciendo ahora al reproducir
Cambiar a reproduciendo ahora después de iniciar la reproducción en la vista multimedia
- Reproducción sin pausas
- Activa la reproducción sin pausas
Oculta los archivos de música desde otras aplicaciones.
Ocultar desde otras
Tiene efecto la próxima vez que Android escanee la música de tu dispositivo.
diff --git a/ultrasonic/src/main/res/values-fr/strings.xml b/ultrasonic/src/main/res/values-fr/strings.xml
index 111c4cd0..6be37c10 100644
--- a/ultrasonic/src/main/res/values-fr/strings.xml
+++ b/ultrasonic/src/main/res/values-fr/strings.xml
@@ -41,11 +41,8 @@
Nom
OK
Épingler
- Pause
- Lecture
Jouer en dernier
Jouer à la suite
- Lire le précédent
Jouer maintenant
Jouer aléatoirement
Public
@@ -107,7 +104,6 @@
Musique
Hors-ligne
%s - Configurer le serveur
- Lecture aléatoire
Aléatoire
Favoris
Titres
@@ -201,8 +197,6 @@
Trier la liste des titres par numéro de disques/pistes
Afficher le débit et l’extension de fichier
Ajouter le nom d\'artiste, débit et suffixe du fichier
- Lecture sans interruption
- Activer la lecture sans interruption
Masquer les fichiers musicaux et les couvertures d\'album aux autres applis (Galerie, Musique, etc.)
Masquer aux autres
Prendra effet la prochaine fois qu\'Android recensera les médias disponibles sur l\'appareil.
@@ -355,12 +349,6 @@
Afficher l\'artiste
Pochette d\'album
Années multiples
- Reprendre lorsqu’un appareil Bluetooth se connecte
- Mettre en pause lorsqu’un appareil Bluetooth se déconnecte
- Tous les appareils Bluetooth
- Seulement les appareils audio (A2DP)
- Désactivé
- Activer cela peut aider sur les anciens appareils Bluetooth lorsque Lecture/Pause ne fonctionne pas correctement
Paramètres de debug
Enregistrer les logs de debug dans des fichiers
Les fichiers de log sont disponibles dans %1$s/%2$s
diff --git a/ultrasonic/src/main/res/values-hu/strings.xml b/ultrasonic/src/main/res/values-hu/strings.xml
index 04e907e7..5327976b 100644
--- a/ultrasonic/src/main/res/values-hu/strings.xml
+++ b/ultrasonic/src/main/res/values-hu/strings.xml
@@ -39,11 +39,8 @@
Név
OK
Tárolás (Megőrzés az eszközön)
- Szünet
- Lejátszás
Lejátszás (Utolsóként)
Lejátszás (Következőként)
- Előző lejátszása
Lejátszás
Véletlen sorrendű lejátszás
Nyilvános
@@ -188,8 +185,6 @@
Dalok rendezése albumok szerint
Dalok rendezése albumsorszám és dalsorszám szerint.
Bitráta és fájlkiterjesztés megjelenítése az előadónév mellett.
- Egybefüggő lejátszás
- Kihagyás (dalszünet) nélküli egybefüggő lejátszás (Gapless).
Zenefájlok elrejtése egyéb alkalmazások elől.
Elrejtés
A következő alkalomtól lép életbe, amikor az Android zenefájlokat keres a telefonon.
diff --git a/ultrasonic/src/main/res/values-it/strings.xml b/ultrasonic/src/main/res/values-it/strings.xml
index 00e94efe..802f288f 100644
--- a/ultrasonic/src/main/res/values-it/strings.xml
+++ b/ultrasonic/src/main/res/values-it/strings.xml
@@ -175,8 +175,6 @@
Ordina Canzoni secondo Disco
Ordina lista canzoni secondo il numero disco e traccia
Aggiungi nome artista con bitrare ed estensione file
- Riproduzione Ininterrotta
- Abilita riproduzione ininterrotta
Nascondi file musicali di altre app
Nascondi Da Altro
Effettivo alla prossima scansione Android per file musicali sul telefono.
diff --git a/ultrasonic/src/main/res/values-nl/strings.xml b/ultrasonic/src/main/res/values-nl/strings.xml
index 93101248..84e4cd5e 100644
--- a/ultrasonic/src/main/res/values-nl/strings.xml
+++ b/ultrasonic/src/main/res/values-nl/strings.xml
@@ -41,11 +41,8 @@
Naam
Oké
Vastmaken
- Pauzeren
- Afspelen
Laatste afspelen
Volgende afspelen
- Vorige afspelen
Nu afspelen
Willekeurig afspelen
Openbaar
@@ -218,8 +215,6 @@
Bitsnelheid en bestandsextensie toevoegen aan artiestennaam
Nu aan het afspelen tonen op afspeelscherm
Toon ‘Nu aan het afspelen’ in de mediaweergave
- Naadloze overgang
- Naadloze overgang tussen nummers inschakelen
Muziekbestanden verbergen voor andere apps.
Verbergen voor andere apps
Dit wordt toegepast bij de volgende keer dat Android je muziek doorzoekt.
diff --git a/ultrasonic/src/main/res/values-pl/strings.xml b/ultrasonic/src/main/res/values-pl/strings.xml
index 745b3d31..1ad64489 100644
--- a/ultrasonic/src/main/res/values-pl/strings.xml
+++ b/ultrasonic/src/main/res/values-pl/strings.xml
@@ -179,8 +179,6 @@
Sortuj utwory wg dysku
Sortuje listę utworów wg numeru dysku i numeru utworu
Dołącza bitrate i typ pliku do nazwy artysty
- Odtwarzanie bez przerw
- Włącz odtwarzanie bez przerw między utworami
Ukrywa pliki muzyczne przed innymi aplikacjami.
Ukryj pliki
Efekt widoczny będzie po następnym skanowaniu muzyki przez system Android
diff --git a/ultrasonic/src/main/res/values-pt-rBR/strings.xml b/ultrasonic/src/main/res/values-pt-rBR/strings.xml
index 7a31aba0..f5aede4e 100644
--- a/ultrasonic/src/main/res/values-pt-rBR/strings.xml
+++ b/ultrasonic/src/main/res/values-pt-rBR/strings.xml
@@ -41,11 +41,8 @@
Nome
OK
Fixar
- Pausar
- Tocar
Tocar por Último
Tocar na Próxima
- Tocar a Anterior
Tocar Agora
Tocar Aleatoriamente
Público
@@ -195,8 +192,6 @@
Classificar músicas pelo número do álbum e faixas
Mostrar Bitrate se Sufixo do Arquivo
Adicionar o nome do artista com a taxa de bits e sufixo do arquivo
- Reprodução sem Interrupção
- Ativar reprodução sem interrupção
Esconder arquivos de músicas de outros aplicativos
Esconder de Outros
Será efetivado na próxima vez que o Android procurar por músicas em seu celular.
diff --git a/ultrasonic/src/main/res/values-pt/strings.xml b/ultrasonic/src/main/res/values-pt/strings.xml
index f3e6b768..404a807d 100644
--- a/ultrasonic/src/main/res/values-pt/strings.xml
+++ b/ultrasonic/src/main/res/values-pt/strings.xml
@@ -179,8 +179,6 @@
Classificar Músicas por Álbum
Classificar músicas pelo número do álbum e faixas.
Adiciona o nome do artista com a taxa de bits e sufixo do ficheiro
- Reprodução sem Interrupção
- Habilita reprodução sem interrupção
Esconder músicas de outros aplicativos.
Esconder de Outros
Será realizado na próxima vez que o Android procurar por músicas em seu telemóvel.
diff --git a/ultrasonic/src/main/res/values-ru/strings.xml b/ultrasonic/src/main/res/values-ru/strings.xml
index fb6a8e12..99e79a04 100644
--- a/ultrasonic/src/main/res/values-ru/strings.xml
+++ b/ultrasonic/src/main/res/values-ru/strings.xml
@@ -41,11 +41,8 @@
Имя
Ок
Пин
- Пауза
- Воспроизведение
Воспроизвести последний
Воспроизвести следующий
- Воспроизвести предыдущий
Воспроизвести сейчас
Играть в случайном порядке
Публичный
@@ -206,8 +203,6 @@
Время кэша каталогов
Сортировать список песен по номеру диска и треку
Добавить имя исполнителя с битрейтом и суффиксом файла
- Воспроизведение без промежутка
- Включить воспроизведение без паузы
Включить воспроизведение без паузы
Скрыть от других
Вступает в силу в следующий раз, Android сканирует ваш телефон на предмет музыки
diff --git a/ultrasonic/src/main/res/values-zh-rCN/strings.xml b/ultrasonic/src/main/res/values-zh-rCN/strings.xml
index 0431a0db..a6e84a59 100644
--- a/ultrasonic/src/main/res/values-zh-rCN/strings.xml
+++ b/ultrasonic/src/main/res/values-zh-rCN/strings.xml
@@ -41,11 +41,8 @@
名称
确定
固定
- 暂停
- 播放
最后一首
下一首
- 上一首
现在播放
随机播放
公开
@@ -107,7 +104,6 @@
音乐
离线
%s - 已设置服务器
- 随机播放
随机
收藏夹
歌曲
@@ -353,12 +349,6 @@
显示艺术家
albumArt
Multiple Years
- 连接蓝牙设备时恢复播放
- 断开蓝牙设备时暂停播放
- 所有蓝牙设备
- 仅音频 (A2DP) 设备
- 已禁用
- 当播放/暂停无法正常工作时,启用此功能可能对较旧的蓝牙设备有所帮助
调试选项
将调试日志写入文件
日志文件可在 %1$s/%2$s 获取
diff --git a/ultrasonic/src/main/res/values/strings.xml b/ultrasonic/src/main/res/values/strings.xml
index 6b60f2ba..1cddd882 100644
--- a/ultrasonic/src/main/res/values/strings.xml
+++ b/ultrasonic/src/main/res/values/strings.xml
@@ -41,11 +41,8 @@
Name
OK
Pin
- Pause
- Play
Play Last
Play Next
- Play Previous
Play Now
Play Shuffled
Public