From 762aeec5d3ef1433eff49c723b1184e2cf5edd73 Mon Sep 17 00:00:00 2001 From: tzugen Date: Sat, 16 Apr 2022 21:20:10 +0200 Subject: [PATCH 1/3] Cleanup --- .../media3_notification_small_icon.xml | 9 ------- ultrasonic/src/main/res/values-cs/strings.xml | 2 -- ultrasonic/src/main/res/values-de/strings.xml | 24 ------------------- ultrasonic/src/main/res/values-es/strings.xml | 5 ---- ultrasonic/src/main/res/values-fr/strings.xml | 12 ---------- ultrasonic/src/main/res/values-hu/strings.xml | 5 ---- ultrasonic/src/main/res/values-it/strings.xml | 2 -- ultrasonic/src/main/res/values-nl/strings.xml | 5 ---- ultrasonic/src/main/res/values-pl/strings.xml | 2 -- .../src/main/res/values-pt-rBR/strings.xml | 5 ---- ultrasonic/src/main/res/values-pt/strings.xml | 2 -- ultrasonic/src/main/res/values-ru/strings.xml | 5 ---- .../src/main/res/values-zh-rCN/strings.xml | 10 -------- ultrasonic/src/main/res/values/strings.xml | 3 --- 14 files changed, 91 deletions(-) delete mode 100644 ultrasonic/src/main/res/drawable/media3_notification_small_icon.xml 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 From 788538ee6a70147be2b6a673b0922dc560a39de5 Mon Sep 17 00:00:00 2001 From: tzugen Date: Sun, 17 Apr 2022 06:55:24 +0200 Subject: [PATCH 2/3] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit c7d9af4529bd9bfba49c46208819d7ef53542cd4 Author: Holger Müller Date: Sat Apr 16 17:56:41 2022 +0200 fixed CI failure commit 59e18bc5c0264a4a41ead2d819142458c8053ee8 Author: Holger Müller Date: Sat Apr 16 17:42:49 2022 +0200 removed unused dataSourceFactory, commented debug output --- .../kotlin/org/moire/ultrasonic/playback/APIDataSource.kt | 2 +- .../org/moire/ultrasonic/playback/CachedDataSource.kt | 4 ++-- .../kotlin/org/moire/ultrasonic/playback/PlaybackService.kt | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/APIDataSource.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/APIDataSource.kt index 0a071dbe..469e1f30 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/APIDataSource.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/APIDataSource.kt @@ -220,7 +220,7 @@ open class APIDataSource private constructor( @Throws(HttpDataSourceException::class) override fun read(buffer: ByteArray, offset: Int, length: Int): Int { - Timber.d("APIDatasource: Read: %s %s", offset, length) + // Timber.d("APIDatasource: Read: %s %s", offset, length) return try { readInternal(buffer, offset, length) } catch (e: IOException) { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/CachedDataSource.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/CachedDataSource.kt index 15d04580..64381403 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/CachedDataSource.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/CachedDataSource.kt @@ -85,8 +85,8 @@ class CachedDataSource( @Suppress("MagicNumber") override fun read(buffer: ByteArray, offset: Int, length: Int): Int { - if (offset > 0 || length > 4) - Timber.d("CachedDatasource: Read: %s %s", offset, length) + // if (offset > 0 || length > 4) + // Timber.d("CachedDatasource: Read: %s %s", offset, length) return if (cachePath != null) { try { readInternal(buffer, offset, length) 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 2a08df67..1d446797 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/playback/PlaybackService.kt @@ -44,7 +44,6 @@ class PlaybackService : MediaLibraryService(), KoinComponent { private lateinit var player: ExoPlayer private lateinit var mediaLibrarySession: MediaLibrarySession private lateinit var apiDataSource: APIDataSource.Factory - private lateinit var dataSourceFactory: DataSource.Factory private lateinit var librarySessionCallback: MediaLibrarySession.MediaLibrarySessionCallback @@ -102,14 +101,13 @@ class PlaybackService : MediaLibraryService(), KoinComponent { // Create a MediaSource which passes calls through our OkHttp Stack apiDataSource = APIDataSource.Factory(subsonicAPIClient) - - dataSourceFactory = APIDataSource.Factory(subsonicAPIClient) val cacheDataSourceFactory: DataSource.Factory = CachedDataSource.Factory(apiDataSource) // Create a renderer with HW rendering support val renderer = DefaultRenderersFactory(this) - if (Settings.useHwOffload) renderer.setEnableAudioOffload(true) + if (Settings.useHwOffload) + renderer.setEnableAudioOffload(true) // Create the player player = ExoPlayer.Builder(this) From 3691428a6884bbfbc300e7b2df5b4cb33918d6e1 Mon Sep 17 00:00:00 2001 From: tzugen Date: Sun, 17 Apr 2022 06:58:39 +0200 Subject: [PATCH 3/3] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 7a8f20ade7d2522c1281b63a31c3e9630df12553 Author: Holger Müller Date: Fri Apr 8 23:21:15 2022 +0200 make build working with target sdk 31 commit 5890c32b7eb91621ce628ac6d900cb00a1481d71 Author: Holger Müller Date: Fri Apr 8 22:57:23 2022 +0200 make build working with target sdk 31 commit 1c7c4839b3eed5eef8298c2ddce22812e14d6329 Merge: 48b0cdea 92ef78a3 Author: Holger Müller Date: Fri Apr 8 21:55:14 2022 +0200 Merge remote-tracking branch 'upstream/media3-flat' into media3-flat commit 48b0cdea83433cc29760972c522a497f812d6d30 Merge: 9101980c 3ca25ed1 Author: Holger Müller Date: Fri Apr 8 19:58:55 2022 +0200 Merge remote-tracking branch 'upstream/media3-flat' into media3-flat commit 9101980cb6d8972ee6e49b58737b36c4ac36e495 Merge: 515690ab 97798446 Author: Holger Müller Date: Fri Apr 8 17:07:54 2022 +0200 Merge remote-tracking branch 'upstream/media3-flat' into media3-flat commit 515690abaccd5405709b1fe877a9ef9c9bbf3e21 Author: Holger Müller Date: Thu Apr 7 08:55:42 2022 +0200 made button off mode better visible --- .../ultrasonic/playback/PlaybackService.kt | 9 +++++--- .../provider/UltrasonicAppWidgetProvider.kt | 21 +++++++++++++------ .../ultrasonic/service/DownloadService.kt | 8 ++++--- 3 files changed, 26 insertions(+), 12 deletions(-) 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) }