RuStore Remote Config

This commit is contained in:
2024-12-22 16:39:43 +03:00
parent 86e539daf1
commit 0cda6f9a48
27 changed files with 693 additions and 380 deletions

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:intl/intl.dart' show DateFormat;
import 'package:reverse_nn/application/services/schedule.dart';
import 'package:reverse_nn/application/dto/schedule.dart';
class ScheduleItemComponent extends StatelessWidget {
final Map<String, dynamic> item;
final ScheduleItem item;
const ScheduleItemComponent({super.key, required this.item});
@override
@@ -20,7 +20,7 @@ class ScheduleItemComponent extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Icon(ScheduleService.getIconByDirection(item['direction'] as String), size: 56),
Icon(item.direction.icon(), size: 56),
const SizedBox(width: 16),
Expanded(child: Column(
mainAxisAlignment: MainAxisAlignment.start,
@@ -41,17 +41,17 @@ class ScheduleItemComponent extends StatelessWidget {
}
Widget _directionText(BuildContext context) => Text(
ScheduleService.formatDirection(item['direction'] ?? ''),
item.direction.displayName(),
style: Theme.of(context).textTheme.headlineLarge
);
Widget _startText(BuildContext context) => Text(
'C\t\t\t\t${formatDate(item['start'], showDate: item['show_start_date'] ?? false)}',
'C\t\t\t\t${formatDate(item.start!, showDate: item.showStartDate ?? false)}',
style: Theme.of(context).textTheme.titleLarge
);
Widget _endText(BuildContext context) => Text(
'До\t${formatDate(item['end'], showDate: item['show_end_date'] ?? false)}',
'До\t${formatDate(item.end!, showDate: item.showEndDate ?? false)}',
style: Theme.of(context).textTheme.titleLarge
);
}

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:reverse_nn/application/controllers/calendar_schedule_controller.dart';
import 'package:reverse_nn/application/services/schedule.dart';
import 'package:reverse_nn/application/services/remote_config/service.dart';
import 'package:reverse_nn/ui/components/schedule_item_component.dart';
import 'package:reverse_nn/ui/layouts/application_layout.dart';
import 'package:intl/intl.dart' show DateFormat;
@@ -114,11 +114,14 @@ class _SelectedDateWidget extends StatelessWidget {
void _openCalendar(BuildContext context) async {
DateTime now = DateTime.now();
DateTime firstDate = await ReverseNNRuStoreRemoteConfig().getStartScheduleDate();
DateTime lastDate = await ReverseNNRuStoreRemoteConfig().getEndScheduleDate();
DateTime? picked = await showDatePicker(
context: context,
initialDate: now,
firstDate: DateTime(2024, 8, 1, 12),
lastDate: DateTime(2025, 12, 31, 12),
firstDate: firstDate,
lastDate: lastDate,
locale: const Locale('ru')
);

View File

@@ -1,6 +1,8 @@
import 'dart:developer';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_rustore_remoteconfig/flutter_rustore_remoteconfig.dart';
import 'package:get/get.dart';
import 'package:reverse_nn/application/controllers/calendar_schedule_controller.dart';
import 'package:reverse_nn/application/controllers/home_controller.dart';
@@ -8,6 +10,7 @@ import 'package:reverse_nn/application/services/schedule.dart';
import 'package:reverse_nn/ui/components/current_status_component.dart';
import 'package:reverse_nn/ui/components/grid_menu_item.dart';
import 'package:reverse_nn/ui/layouts/application_layout.dart';
import 'package:reverse_nn/application/services/remote_config/service.dart';
class HomeScreen extends GetWidget<HomeController> {
const HomeScreen({super.key});
@@ -29,8 +32,9 @@ class HomeScreen extends GetWidget<HomeController> {
mainAxisSpacing: 10,
crossAxisSpacing: 10,
),
children: const [
GridMenuItem(icon: Icons.calendar_month, label: 'Расписание', onTap: CalendarScheduleController.openScreen),
children: [
const GridMenuItem(icon: Icons.calendar_month, label: 'Расписание', onTap: CalendarScheduleController.openScreen),
if(kDebugMode) GridMenuItem(icon: Icons.android, label: 'DEBUG', onTap: _debugRuStore),
// const GridMenuItem(icon: Icons.monetization_on, label: 'Поддержать автора'),
// GridMenuItem(),
// GridMenuItem(),
@@ -41,4 +45,10 @@ class HomeScreen extends GetWidget<HomeController> {
),
));
}
void _debugRuStore() async {
ReverseNNRuStoreRemoteConfig().getEndScheduleDate().then((value) {
log(value.toIso8601String());
});
}
}