62 lines
1.5 KiB
Dart
62 lines
1.5 KiB
Dart
import 'package:didvan/models/enums.dart';
|
|
import 'package:didvan/providers/core.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:intl/intl.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import '../../models/day_time.dart';
|
|
import '../../routes/routes.dart';
|
|
import '../../services/network/request.dart';
|
|
import '../../services/network/request_helper.dart';
|
|
import '../../utils/date_time.dart';
|
|
import '../profile/general_settings/settings_state.dart';
|
|
|
|
class NotificationTimeState extends CoreProvier {
|
|
late DayTime selectedTime;
|
|
|
|
late void Function( ) onTimeChanged;
|
|
|
|
Future<void> getTime() async {
|
|
appState = AppState.busy;
|
|
|
|
final service = RequestService(
|
|
RequestHelper.notificationTime(),
|
|
);
|
|
await service.httpGet();
|
|
if (service.isSuccess) {
|
|
final time = service.data('time');
|
|
selectedTime = DateTimeUtils.handleDayTime(time);
|
|
|
|
appState = AppState.idle;
|
|
} else {
|
|
appState = AppState.failed;
|
|
}
|
|
|
|
update();
|
|
}
|
|
|
|
Future<void> putTime(BuildContext context) async {
|
|
appState = AppState.busy;
|
|
|
|
final favoritesRequest = {
|
|
"time": DateTimeUtils.handleDayTimeReverse(selectedTime)
|
|
};
|
|
final service = RequestService(
|
|
RequestHelper.notificationTime(),
|
|
body: favoritesRequest,
|
|
);
|
|
await service.put();
|
|
if (service.isSuccess) {
|
|
onTimeChanged();
|
|
|
|
// Navigator.of(context).pushNamed(
|
|
// Routes.notificationStatusStep,
|
|
// );
|
|
appState = AppState.idle;
|
|
return;
|
|
}
|
|
|
|
appState = AppState.failed;
|
|
}
|
|
}
|