diff --git a/sigap-mobile/lib/src/features/panic/presentation/controllers/statistics_view_controller.dart b/sigap-mobile/lib/src/features/panic/presentation/controllers/statistics_view_controller.dart index 622e474..7a0266b 100644 --- a/sigap-mobile/lib/src/features/panic/presentation/controllers/statistics_view_controller.dart +++ b/sigap-mobile/lib/src/features/panic/presentation/controllers/statistics_view_controller.dart @@ -145,6 +145,7 @@ class StatisticsViewController extends GetxController { ); currentDistrictId.value = district.id; + currentDistrict.value = district; } catch (e) { _logger.e('Error loading district data: $e'); } diff --git a/sigap-mobile/lib/src/features/panic/presentation/widgets/crime_stats_header.dart b/sigap-mobile/lib/src/features/panic/presentation/widgets/crime_stats_header.dart index 8ae26cd..772b9ea 100644 --- a/sigap-mobile/lib/src/features/panic/presentation/widgets/crime_stats_header.dart +++ b/sigap-mobile/lib/src/features/panic/presentation/widgets/crime_stats_header.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:sigap/src/features/panic/presentation/controllers/statistics_view_controller.dart'; -import 'package:sigap/src/shared/widgets/dropdown/custom_dropdown.dart'; class CrimeStatsHeader extends StatelessWidget { final String district; @@ -68,16 +67,14 @@ class CrimeStatsHeader extends StatelessWidget { const SizedBox(height: 5), - // Date picker row with custom dropdowns + // Date picker row Row( children: [ const Icon(Icons.calendar_month, size: 16, color: Colors.blue), - const SizedBox(width: 10), - Expanded(child: _buildMonthDropdownCustom()), - const SizedBox(width: 10), - Expanded( - child: _buildYearDropdownCustom(statsController.availableYears), - ), + const SizedBox(width: 5), + _buildMonthDropdown(), + const SizedBox(width: 5), + _buildYearDropdown(statsController.availableYears), ], ), ], @@ -85,13 +82,15 @@ class CrimeStatsHeader extends StatelessWidget { ); } - // Custom month dropdown using the shared custom dropdown widget - Widget _buildMonthDropdownCustom() { + Widget _buildMonthDropdown() { final int currentMonth = int.parse(month); + final monthName = DateFormat( + 'MMMM', + ).format(DateTime(int.parse(year), currentMonth)); - return CustomDropdown( - label: '', + return DropdownButton( value: currentMonth, + underline: Container(), // Remove underline onChanged: (value) { if (value != null) onMonthChanged(value); }, @@ -101,7 +100,7 @@ class CrimeStatsHeader extends StatelessWidget { 'MMMM', ).format(DateTime(int.parse(year), monthNum)); - return DropdownMenuItem( + return DropdownMenuItem( value: monthNum, child: Text(monthName, style: const TextStyle(fontSize: 14)), ); @@ -109,23 +108,21 @@ class CrimeStatsHeader extends StatelessWidget { ); } - // Custom year dropdown using the shared custom dropdown widget - Widget _buildYearDropdownCustom(List availableYears) { + Widget _buildYearDropdown(List availableYears) { final int currentYear = int.parse(year); - final selectedYear = - availableYears.contains(currentYear) - ? currentYear - : availableYears.last; - return CustomDropdown( - label: '', - value: selectedYear, + return DropdownButton( + value: + availableYears.contains(currentYear) + ? currentYear + : availableYears.last, + underline: Container(), // Remove underline onChanged: (value) { if (value != null) onYearChanged(value); }, items: availableYears.map((year) { - return DropdownMenuItem( + return DropdownMenuItem( value: year, child: Text( year.toString(), diff --git a/sigap-mobile/lib/src/features/panic/presentation/widgets/recovery_indicator.dart b/sigap-mobile/lib/src/features/panic/presentation/widgets/recovery_indicator.dart index 1c69b6a..091dc54 100644 --- a/sigap-mobile/lib/src/features/panic/presentation/widgets/recovery_indicator.dart +++ b/sigap-mobile/lib/src/features/panic/presentation/widgets/recovery_indicator.dart @@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:sigap/src/features/panic/presentation/controllers/recovery_indicator_controller.dart'; -import '../widgets/progress_arc_painter.dart'; - class RecoveryIndicator extends StatelessWidget { const RecoveryIndicator({super.key}); @@ -48,63 +46,6 @@ class RecoveryIndicator extends StatelessWidget { ), ], ), - const SizedBox(height: 10), - Row( - children: [ - Text( - controller.duration.value, - style: const TextStyle( - fontSize: 24, - fontWeight: FontWeight.bold, - color: Colors.black, - ), - ), - const SizedBox(width: 8), - Text( - controller.timeLabel.value, - style: TextStyle(fontSize: 14, color: Colors.grey.shade600), - ), - const Spacer(), - Stack( - alignment: Alignment.center, - children: [ - Container( - width: 50, - height: 50, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.grey.shade100, - ), - ), - SizedBox( - width: 45, - height: 45, - child: CustomPaint( - painter: ProgressArcPainter( - progress: controller.progress.value, - color: Colors.purple, - backgroundColor: Colors.grey.shade200, - strokeWidth: 4, - ), - ), - ), - Container( - width: 25, - height: 25, - decoration: const BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - ), - child: const Icon( - Icons.security, - color: Colors.teal, - size: 16, - ), - ), - ], - ), - ], - ), const SizedBox(height: 16), diff --git a/sigap-mobile/lib/src/features/panic/presentation/widgets/statistics_view.dart b/sigap-mobile/lib/src/features/panic/presentation/widgets/statistics_view.dart index 17b27e8..377b365 100644 --- a/sigap-mobile/lib/src/features/panic/presentation/widgets/statistics_view.dart +++ b/sigap-mobile/lib/src/features/panic/presentation/widgets/statistics_view.dart @@ -147,8 +147,8 @@ class StatisticsView extends StatelessWidget { // Helper to get color based on safety level Color _getSafetyColor(double safety) { if (safety >= 0.8) return Colors.green; - if (safety >= 0.6) return Colors.blue; - if (safety >= 0.3) return Colors.orange; - return Colors.red; + if (safety >= 0.6) return Colors.orange; + if (safety >= 0.3) return Colors.red; + return Colors.purple; } }