feat(auto): browse and play local music folders in Android Auto [size:exception]
Phase 1: pick a device folder via SAF (persisted grant, no new permission), browse its nested subfolders/tracks as a 5th Android Auto root folder (hidden until configured), and play tracks through the existing pipeline (EQ, art rotation, cold-start-safe source). No metadata/sort/filter/shuffle yet -- filename is the title, generic rotating art is the placeholder; deferred to a follow-up phase. Adds a new pluriwave/file_actions native method (listAudioChildren) and an onActivityResult override in MainActivity for the SAF folder picker -- both static-review-only, no Android build available here.
This commit is contained in:
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "اسم الجهاز",
|
||||
"eqDeviceNameHint": "مثال: مكبر صوت غرفة المعيشة",
|
||||
"eqDeviceNameConfirm": "حفظ",
|
||||
"eqDeviceConnected": "متصل"
|
||||
"eqDeviceConnected": "متصل",
|
||||
"localMusicSectionTitle": "الموسيقى المحلية (Android Auto)",
|
||||
"localMusicSectionDescription": "اختر مجلدًا على هذا الجهاز لتصفح ملفاته الصوتية وتشغيلها من السيارة.",
|
||||
"localMusicFolderNotConfigured": "لم يتم تحديد مجلد",
|
||||
"localMusicFolderTitle": "مجلد الموسيقى المحلية",
|
||||
"localMusicChoosePath": "اختيار مجلد",
|
||||
"localMusicChangePath": "تغيير المجلد",
|
||||
"localMusicFolderUpdated": "تم تحديث مجلد الموسيقى المحلية",
|
||||
"localMusicFolderSaveError": "تعذّر حفظ المجلد: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "ডিভাইসের নাম",
|
||||
"eqDeviceNameHint": "যেমন: লিভিং রুমের স্পিকার",
|
||||
"eqDeviceNameConfirm": "সংরক্ষণ করুন",
|
||||
"eqDeviceConnected": "সংযুক্ত"
|
||||
"eqDeviceConnected": "সংযুক্ত",
|
||||
"localMusicSectionTitle": "স্থানীয় সঙ্গীত (Android Auto)",
|
||||
"localMusicSectionDescription": "গাড়িতে অডিও ফাইল ব্রাউজ ও চালানোর জন্য এই ডিভাইসের একটি ফোল্ডার বেছে নিন।",
|
||||
"localMusicFolderNotConfigured": "কোনো ফোল্ডার নির্বাচিত হয়নি",
|
||||
"localMusicFolderTitle": "স্থানীয় সঙ্গীত ফোল্ডার",
|
||||
"localMusicChoosePath": "ফোল্ডার বেছে নিন",
|
||||
"localMusicChangePath": "ফোল্ডার পরিবর্তন করুন",
|
||||
"localMusicFolderUpdated": "স্থানীয় সঙ্গীত ফোল্ডার আপডেট হয়েছে",
|
||||
"localMusicFolderSaveError": "ফোল্ডার সংরক্ষণ করা যায়নি: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Gerätename",
|
||||
"eqDeviceNameHint": "z. B. Wohnzimmer-Lautsprecher",
|
||||
"eqDeviceNameConfirm": "Speichern",
|
||||
"eqDeviceConnected": "Verbunden"
|
||||
"eqDeviceConnected": "Verbunden",
|
||||
"localMusicSectionTitle": "Lokale Musik (Android Auto)",
|
||||
"localMusicSectionDescription": "Wähle einen Ordner auf diesem Gerät aus, um dessen Audiodateien im Auto zu durchsuchen und abzuspielen.",
|
||||
"localMusicFolderNotConfigured": "Kein Ordner ausgewählt",
|
||||
"localMusicFolderTitle": "Ordner für lokale Musik",
|
||||
"localMusicChoosePath": "Ordner auswählen",
|
||||
"localMusicChangePath": "Ordner ändern",
|
||||
"localMusicFolderUpdated": "Ordner für lokale Musik aktualisiert",
|
||||
"localMusicFolderSaveError": "Ordner konnte nicht gespeichert werden: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Device name",
|
||||
"eqDeviceNameHint": "e.g. Living Room Speaker",
|
||||
"eqDeviceNameConfirm": "Save",
|
||||
"eqDeviceConnected": "Connected"
|
||||
"eqDeviceConnected": "Connected",
|
||||
"localMusicSectionTitle": "Local music (Android Auto)",
|
||||
"localMusicSectionDescription": "Pick a folder on this device to browse and play its audio files from the car.",
|
||||
"localMusicFolderNotConfigured": "No folder selected",
|
||||
"localMusicFolderTitle": "Local music folder",
|
||||
"localMusicChoosePath": "Choose folder",
|
||||
"localMusicChangePath": "Change folder",
|
||||
"localMusicFolderUpdated": "Local music folder updated",
|
||||
"localMusicFolderSaveError": "Could not save the folder: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-1
@@ -619,5 +619,18 @@
|
||||
"eqDeviceNameLabel": "Nombre del dispositivo",
|
||||
"eqDeviceNameHint": "Ej: Altavoz del living",
|
||||
"eqDeviceNameConfirm": "Guardar",
|
||||
"eqDeviceConnected": "Conectado"
|
||||
"eqDeviceConnected": "Conectado",
|
||||
"localMusicSectionTitle": "Música local (Android Auto)",
|
||||
"localMusicSectionDescription": "Elegí una carpeta de este dispositivo para explorar y reproducir sus archivos de audio desde el auto.",
|
||||
"localMusicFolderNotConfigured": "No hay carpeta seleccionada",
|
||||
"localMusicFolderTitle": "Carpeta de música local",
|
||||
"localMusicChoosePath": "Elegir carpeta",
|
||||
"localMusicChangePath": "Cambiar carpeta",
|
||||
"localMusicFolderUpdated": "Carpeta de música local actualizada",
|
||||
"localMusicFolderSaveError": "No se pudo guardar la carpeta: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Nom de l'appareil",
|
||||
"eqDeviceNameHint": "ex. : Enceinte salon",
|
||||
"eqDeviceNameConfirm": "Enregistrer",
|
||||
"eqDeviceConnected": "Connecté"
|
||||
"eqDeviceConnected": "Connecté",
|
||||
"localMusicSectionTitle": "Musique locale (Android Auto)",
|
||||
"localMusicSectionDescription": "Choisissez un dossier sur cet appareil pour parcourir et lire ses fichiers audio depuis la voiture.",
|
||||
"localMusicFolderNotConfigured": "Aucun dossier sélectionné",
|
||||
"localMusicFolderTitle": "Dossier de musique locale",
|
||||
"localMusicChoosePath": "Choisir un dossier",
|
||||
"localMusicChangePath": "Changer de dossier",
|
||||
"localMusicFolderUpdated": "Dossier de musique locale mis à jour",
|
||||
"localMusicFolderSaveError": "Impossible d’enregistrer le dossier : {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "डिवाइस का नाम",
|
||||
"eqDeviceNameHint": "उदा. लिविंग रूम स्पीकर",
|
||||
"eqDeviceNameConfirm": "सहेजें",
|
||||
"eqDeviceConnected": "कनेक्टेड"
|
||||
"eqDeviceConnected": "कनेक्टेड",
|
||||
"localMusicSectionTitle": "स्थानीय संगीत (Android Auto)",
|
||||
"localMusicSectionDescription": "गाड़ी में ऑडियो फ़ाइलें ब्राउज़ और चलाने के लिए इस डिवाइस का एक फ़ोल्डर चुनें।",
|
||||
"localMusicFolderNotConfigured": "कोई फ़ोल्डर चुना नहीं गया",
|
||||
"localMusicFolderTitle": "स्थानीय संगीत फ़ोल्डर",
|
||||
"localMusicChoosePath": "फ़ोल्डर चुनें",
|
||||
"localMusicChangePath": "फ़ोल्डर बदलें",
|
||||
"localMusicFolderUpdated": "स्थानीय संगीत फ़ोल्डर अपडेट हुआ",
|
||||
"localMusicFolderSaveError": "फ़ोल्डर सहेजा नहीं जा सका: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Nama perangkat",
|
||||
"eqDeviceNameHint": "Mis: Speaker ruang tamu",
|
||||
"eqDeviceNameConfirm": "Simpan",
|
||||
"eqDeviceConnected": "Terhubung"
|
||||
"eqDeviceConnected": "Terhubung",
|
||||
"localMusicSectionTitle": "Musik lokal (Android Auto)",
|
||||
"localMusicSectionDescription": "Pilih folder di perangkat ini untuk menjelajahi dan memutar file audio di dalamnya dari mobil.",
|
||||
"localMusicFolderNotConfigured": "Belum ada folder dipilih",
|
||||
"localMusicFolderTitle": "Folder musik lokal",
|
||||
"localMusicChoosePath": "Pilih folder",
|
||||
"localMusicChangePath": "Ubah folder",
|
||||
"localMusicFolderUpdated": "Folder musik lokal diperbarui",
|
||||
"localMusicFolderSaveError": "Tidak dapat menyimpan folder: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Nome del dispositivo",
|
||||
"eqDeviceNameHint": "Es: Cassa del salotto",
|
||||
"eqDeviceNameConfirm": "Salva",
|
||||
"eqDeviceConnected": "Connesso"
|
||||
"eqDeviceConnected": "Connesso",
|
||||
"localMusicSectionTitle": "Musica locale (Android Auto)",
|
||||
"localMusicSectionDescription": "Scegli una cartella su questo dispositivo per sfogliare e riprodurre i suoi file audio dall'auto.",
|
||||
"localMusicFolderNotConfigured": "Nessuna cartella selezionata",
|
||||
"localMusicFolderTitle": "Cartella musica locale",
|
||||
"localMusicChoosePath": "Scegli cartella",
|
||||
"localMusicChangePath": "Cambia cartella",
|
||||
"localMusicFolderUpdated": "Cartella musica locale aggiornata",
|
||||
"localMusicFolderSaveError": "Impossibile salvare la cartella: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "デバイス名",
|
||||
"eqDeviceNameHint": "例:リビングのスピーカー",
|
||||
"eqDeviceNameConfirm": "保存",
|
||||
"eqDeviceConnected": "接続中"
|
||||
"eqDeviceConnected": "接続中",
|
||||
"localMusicSectionTitle": "ローカル音楽(Android Auto)",
|
||||
"localMusicSectionDescription": "この端末のフォルダーを選択して、車内でその音声ファイルを閲覧・再生します。",
|
||||
"localMusicFolderNotConfigured": "フォルダーが選択されていません",
|
||||
"localMusicFolderTitle": "ローカル音楽フォルダー",
|
||||
"localMusicChoosePath": "フォルダーを選択",
|
||||
"localMusicChangePath": "フォルダーを変更",
|
||||
"localMusicFolderUpdated": "ローカル音楽フォルダーを更新しました",
|
||||
"localMusicFolderSaveError": "フォルダーを保存できませんでした: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Nome do dispositivo",
|
||||
"eqDeviceNameHint": "Ex: Caixa da sala",
|
||||
"eqDeviceNameConfirm": "Salvar",
|
||||
"eqDeviceConnected": "Conectado"
|
||||
"eqDeviceConnected": "Conectado",
|
||||
"localMusicSectionTitle": "Música local (Android Auto)",
|
||||
"localMusicSectionDescription": "Escolha uma pasta neste dispositivo para navegar e reproduzir os arquivos de áudio dela no carro.",
|
||||
"localMusicFolderNotConfigured": "Nenhuma pasta selecionada",
|
||||
"localMusicFolderTitle": "Pasta de música local",
|
||||
"localMusicChoosePath": "Escolher pasta",
|
||||
"localMusicChangePath": "Alterar pasta",
|
||||
"localMusicFolderUpdated": "Pasta de música local atualizada",
|
||||
"localMusicFolderSaveError": "Não foi possível salvar a pasta: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "Название устройства",
|
||||
"eqDeviceNameHint": "Напр.: Колонка в гостиной",
|
||||
"eqDeviceNameConfirm": "Сохранить",
|
||||
"eqDeviceConnected": "Подключено"
|
||||
"eqDeviceConnected": "Подключено",
|
||||
"localMusicSectionTitle": "Локальная музыка (Android Auto)",
|
||||
"localMusicSectionDescription": "Выберите папку на этом устройстве, чтобы просматривать и воспроизводить её аудиофайлы в автомобиле.",
|
||||
"localMusicFolderNotConfigured": "Папка не выбрана",
|
||||
"localMusicFolderTitle": "Папка локальной музыки",
|
||||
"localMusicChoosePath": "Выбрать папку",
|
||||
"localMusicChangePath": "Изменить папку",
|
||||
"localMusicFolderUpdated": "Папка локальной музыки обновлена",
|
||||
"localMusicFolderSaveError": "Не удалось сохранить папку: {error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
-1
@@ -656,5 +656,18 @@
|
||||
"eqDeviceNameLabel": "设备名称",
|
||||
"eqDeviceNameHint": "例:客厅音箱",
|
||||
"eqDeviceNameConfirm": "保存",
|
||||
"eqDeviceConnected": "已连接"
|
||||
"eqDeviceConnected": "已连接",
|
||||
"localMusicSectionTitle": "本地音乐(Android Auto)",
|
||||
"localMusicSectionDescription": "选择此设备上的一个文件夹,以便在车内浏览和播放其中的音频文件。",
|
||||
"localMusicFolderNotConfigured": "未选择文件夹",
|
||||
"localMusicFolderTitle": "本地音乐文件夹",
|
||||
"localMusicChoosePath": "选择文件夹",
|
||||
"localMusicChangePath": "更改文件夹",
|
||||
"localMusicFolderUpdated": "本地音乐文件夹已更新",
|
||||
"localMusicFolderSaveError": "无法保存文件夹:{error}",
|
||||
"@localMusicFolderSaveError": {
|
||||
"placeholders": {
|
||||
"error": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user