Line data Source code
1 : import 'package:flutter/cupertino.dart'; 2 : 3 : class ErrorHandler extends ChangeNotifier { 4 : // General Error Types 5 : static const String successErrorType = "success"; 6 : 7 : // Add Contact Specific Errors... 8 : static const String changePasswordErrorPrefix = "changepassword"; 9 : static const String invalidImportStringErrorType = "invalid_import_string"; 10 : static const String contactAlreadyExistsErrorType = "contact_already_exists"; 11 : 12 : // ChangePassword 13 : bool changePasswordError = false; 14 : bool explicitChangePasswordSuccess = false; 15 : 16 : static const String deleteProfileErrorPrefix = "deleteprofile"; 17 : bool deleteProfileError = false; 18 : bool deleteProfileSuccess = false; 19 : 20 : static const String deletedServerErrorPrefix = "deletedserver"; 21 : bool deletedServerError = false; 22 : bool deletedServerSuccess = false; 23 : 24 : static const String deletedHybridGroupErrorPrefix = "deletedhybridgroup"; 25 : bool deletedHybridGroupError = false; 26 : bool deletedHybridGroupSuccess = false; 27 : 28 0 : reset() { 29 0 : deleteProfileError = false; 30 0 : deleteProfileSuccess = false; 31 : 32 0 : deletedServerError = false; 33 0 : deletedServerSuccess = false; 34 : 35 0 : deletedHybridGroupError = false; 36 0 : deletedHybridGroupSuccess = false; 37 : 38 0 : changePasswordError = false; 39 0 : explicitChangePasswordSuccess = false; 40 : 41 0 : notifyListeners(); 42 : } 43 : 44 : /// Called by the event bus. 45 0 : handleUpdate(String error) { 46 0 : var parts = error.split("."); 47 0 : String prefix = parts[0]; 48 0 : String errorType = parts[1]; 49 : 50 : switch (prefix) { 51 0 : case deleteProfileErrorPrefix: 52 0 : handleDeleteProfileError(errorType); 53 : break; 54 0 : case changePasswordErrorPrefix: 55 0 : handleChangePasswordError(errorType); 56 : break; 57 0 : case deletedServerErrorPrefix: 58 0 : handleDeletedServerError(errorType); 59 : break; 60 0 : case deletedHybridGroupErrorPrefix: 61 0 : handleDeletedHybridGroupError(errorType); 62 : break; 63 : } 64 : 65 0 : notifyListeners(); 66 : } 67 : 68 0 : handleDeleteProfileError(String errorType) { 69 : // Reset add contact errors 70 0 : deleteProfileError = false; 71 0 : deleteProfileSuccess = false; 72 : 73 : switch (errorType) { 74 0 : case successErrorType: 75 0 : deleteProfileSuccess = true; 76 : break; 77 : default: 78 0 : deleteProfileError = true; 79 : break; 80 : } 81 : } 82 : 83 0 : handleChangePasswordError(String errorType) { 84 : // Reset add contact errors 85 0 : changePasswordError = false; 86 0 : explicitChangePasswordSuccess = false; 87 : 88 : switch (errorType) { 89 0 : case successErrorType: 90 0 : explicitChangePasswordSuccess = true; 91 : break; 92 : default: 93 0 : changePasswordError = true; 94 : break; 95 : } 96 : } 97 : 98 0 : handleDeletedServerError(String errorType) { 99 : // reset 100 0 : deletedServerError = false; 101 0 : deletedServerSuccess = false; 102 : 103 : switch (errorType) { 104 0 : case successErrorType: 105 0 : deletedServerSuccess = true; 106 : break; 107 : default: 108 0 : deletedServerError = true; 109 : break; 110 : } 111 : } 112 : 113 0 : handleDeletedHybridGroupError(String errorType) { 114 : // reset 115 0 : deletedHybridGroupError = false; 116 0 : deletedHybridGroupSuccess = false; 117 : 118 : switch (errorType) { 119 0 : case successErrorType: 120 0 : deletedHybridGroupSuccess = true; 121 : break; 122 : default: 123 0 : deletedHybridGroupError = true; 124 : break; 125 : } 126 : } 127 : }