From 6eb00ea786c9b2dd083edade3eac9b83904b3ca4 Mon Sep 17 00:00:00 2001 From: "Mr.Jebelli" Date: Mon, 22 Jun 2026 12:24:04 +0330 Subject: [PATCH] =?UTF-8?q?didvanvoice=20=E2=86=92=20fetch=20list=20and=20?= =?UTF-8?q?route=20to=20DidvanVoiceList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home_widget_repository.dart | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/services/app_home_widget/home_widget_repository.dart b/lib/services/app_home_widget/home_widget_repository.dart index a69c0ae..2c5a2e4 100644 --- a/lib/services/app_home_widget/home_widget_repository.dart +++ b/lib/services/app_home_widget/home_widget_repository.dart @@ -326,7 +326,41 @@ class HomeWidgetRepository { case 'didvanvoice': case 'media': - route = Routes.didvanVoiceList; + // DidvanVoiceList expects List. The notification + // doesn't carry the full list, so we fetch it on the fly the same + // way the legacy int-id branch does. + try { + final service = RequestService(RequestHelper.didvanVoice); + await service.httpGet(); + if (service.statusCode == 200) { + final rawData = service.data('result'); + List voices = []; + if (rawData is List && rawData.isNotEmpty) { + voices = rawData + .map((e) => DidvanVoiceModel.fromJson( + Map.from(e as Map))) + .toList(); + } else if (rawData is Map) { + voices = [ + DidvanVoiceModel.fromJson( + Map.from(rawData)), + ]; + } + if (voices.isNotEmpty) { + route = Routes.didvanVoiceList; + args = voices; + } else { + route = Routes.home; + } + } else { + route = Routes.home; + } + } catch (e) { + if (kDebugMode) { + print("Error fetching didvan voices for notification: $e"); + } + route = Routes.home; + } break; // Unknown type with a UUID — best effort: generic reader.