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