feat(eq): android auto custom equalizer and robust device detection
Build & Deploy PluriWave / Análisis de código (push) Successful in 26s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m16s

- MainActivity: onListen re-emits the current active device and registers
  the audio device callback idempotently, so recreated activities resync
  instead of freezing the active-device id on a disconnected device.
- servicio_dispositivo_audio: resubscribir() re-opens the event channel;
  estado_ecualizador exposes refrescarDispositivoActual() with an
  in-flight guard, invoked on app resume and when opening advanced EQ
  options, clearing stale green-dot device selections.
- navegacion_auto/servicio_audio: new 'Personalizado' browse tree in
  Android Auto (5 band folders, 13 gain steps each) applied live via
  setBanda; preset and gain taps persist at device level when
  multi-device EQ is active and respect station/matrix overrides,
  with apply-before-persist ordering and children-changed notifications.
- l10n: regenerate stale generated localizations; add rxdart as direct
  dependency for the subscribeToChildren override.
This commit is contained in:
Javier Bautista Fernández
2026-07-22 10:26:02 +02:00
parent 3473034b58
commit 163ff69f7a
29 changed files with 1883 additions and 42 deletions
+34 -4
View File
@@ -63,22 +63,22 @@ class AppLocalizationsAr extends AppLocalizations {
Object minutes,
Object seconds,
) {
return '$hours ? $minutes ? $seconds ?';
return '$hours س $minutes د $seconds ث';
}
@override
String durationMinutesSeconds(Object minutes, Object seconds) {
return '$minutes ? $seconds ?';
return '$minutes د $seconds ث';
}
@override
String durationMinutesOnly(Object minutes) {
return '$minutes ?';
return '$minutes د';
}
@override
String durationSecondsOnly(Object seconds) {
return '$seconds ?';
return '$seconds ث';
}
@override
@@ -1297,4 +1297,34 @@ class AppLocalizationsAr extends AppLocalizations {
@override
String get eqDeviceConnected => 'متصل';
@override
String get localMusicSectionTitle => 'الموسيقى المحلية (Android Auto)';
@override
String get localMusicSectionDescription =>
'اختر مجلدًا على هذا الجهاز لتصفح ملفاته الصوتية وتشغيلها من السيارة.';
@override
String get localMusicFolderNotConfigured => 'لم يتم تحديد مجلد';
@override
String get localMusicFolderTitle => 'مجلد الموسيقى المحلية';
@override
String get localMusicChoosePath => 'اختيار مجلد';
@override
String get localMusicChangePath => 'تغيير المجلد';
@override
String get localMusicFolderUpdated => 'تم تحديث مجلد الموسيقى المحلية';
@override
String localMusicFolderSaveError(Object error) {
return 'تعذّر حفظ المجلد: $error';
}
@override
String get localMusicFolderGenericName => 'مجلد محدد';
}