import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/cupertino.dart'; import 'package:meta/meta.dart'; import 'package:unitstocks/Model/unit.dart'; import 'package:unitstocks/Utils/db_helper.dart'; import '../../../main.dart'; import '../../../Utils/keys.dart'; import '../../../Model/unit.dart'; import 'package:intl/intl.dart'; part 'restore_event.dart'; part 'restore_state.dart'; class RestoreBloc extends Bloc { RestoreBloc() : super(RestoreInitial()) { on((event, emit) async { if(event is RestoreInit){ if(defaultTargetPlatform == TargetPlatform.android){ emit(RestoreLoading()); var result = await DBHelper.database.restoreDb(event.context); if(result["STATUS"]==1){ await prefs.remove(Keys.lastDownload); await prefs.remove(Keys.lastUpload); await prefs.remove(Keys.targetProccess); await prefs.remove(Keys.submitProccess); var value = await DBHelper.database.getValue(Keys.startDate); if(value != null) await prefs.setString(Keys.lastDownload, DateFormat('dd-MM-yyyy HH:mm:ss').parse(value.value).toIso8601String()); else { await prefs.setString(Keys.lastDownload, DateTime.now().toIso8601String()); } value = await DBHelper.database.getValue(Keys.stockId); if(value != null) await prefs.setString(Keys.stockId,value.value); else { await prefs.setString(Keys.stockId,prefs.getString(Keys.backupStockId)); } emit(RestoreFinish(msg: result["MSG"])); } else{ emit(RestoreFinish(success:false,msg: result["MSG"])); } } else { emit(RestoreFinish(success:false,msg: "OS ini tidak mendukung fitur backup")); } } }); } }