Business Login Flutter Apps
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

40 行
1.2 KiB

  1. import 'dart:async';
  2. import 'package:bloc/bloc.dart';
  3. import 'package:equatable/equatable.dart';
  4. import 'dart:io';
  5. import 'package:path_provider/path_provider.dart';
  6. import 'package:path/path.dart';
  7. import 'package:unitstocks/main.dart';
  8. import '../../../Utils/keys.dart';
  9. part 'clear_data_event.dart';
  10. part 'clear_data_state.dart';
  11. class ClearDataBloc extends Bloc<ClearDataEvent, ClearDataState> {
  12. ClearDataBloc() : super(ClearDataInitial()) {
  13. on<ClearDataEvent>((event, emit) async{
  14. if(event is ClearDataInit){
  15. emit(ClearDataLoading());
  16. try{
  17. Directory? documentsDirectory = await getExternalStorageDirectory();
  18. String path = join(documentsDirectory!.path, "UnitStocking.db");
  19. File db = File(path);
  20. if(db.existsSync()){
  21. db.deleteSync();
  22. }
  23. await prefs.remove(Keys.lastDownload);
  24. await prefs.remove(Keys.lastUpload);
  25. await prefs.remove(Keys.targetProccess);
  26. await prefs.remove(Keys.submitProccess);
  27. await prefs.remove(Keys.stockId);
  28. emit(ClearDataFinish(msg: 'Data Cleared'));
  29. }
  30. catch(e){
  31. emit(ClearDataFinish(cleared: false, msg: 'Failed to delete database file'));
  32. }
  33. }
  34. });
  35. }
  36. }