import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'dart:io'; import 'package:path_provider/path_provider.dart'; import 'package:path/path.dart'; import 'package:unitstocks/main.dart'; import '../../../Utils/keys.dart'; part 'clear_data_event.dart'; part 'clear_data_state.dart'; class ClearDataBloc extends Bloc { ClearDataBloc() : super(ClearDataInitial()) { on((event, emit) async{ if(event is ClearDataInit){ emit(ClearDataLoading()); try{ Directory? documentsDirectory = await getExternalStorageDirectory(); String path = join(documentsDirectory!.path, "UnitStocking.db"); File db = File(path); if(db.existsSync()){ db.deleteSync(); } await prefs.remove(Keys.lastDownload); await prefs.remove(Keys.lastUpload); await prefs.remove(Keys.targetProccess); await prefs.remove(Keys.submitProccess); await prefs.remove(Keys.stockId); emit(ClearDataFinish(msg: 'Data Cleared')); } catch(e){ emit(ClearDataFinish(cleared: false, msg: 'Failed to delete database file')); } } }); } }