refactor: cleanup remember patches feature (#630)

This commit is contained in:
Mipirakas 2023-01-30 13:03:55 +01:00 committed by GitHub
parent 4df690c2a2
commit 1c965c3788
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 29 deletions

View file

@ -20,8 +20,8 @@ class ManagerAPI {
final RootAPI _rootAPI = RootAPI();
final String patcherRepo = 'revanced-patcher';
final String cliRepo = 'revanced-cli';
late String storedPatchesFile = '/selected-patches.json';
late SharedPreferences _prefs;
String storedPatchesFile = '/selected-patches.json';
String defaultApiUrl = 'https://releases.revanced.app/';
String defaultRepoUrl = 'https://api.github.com';
String defaultPatcherRepo = 'revanced/revanced-patcher';
@ -424,30 +424,20 @@ class ManagerAPI {
} else {
patchesMap[app] = patches;
}
if (selectedPatchesFile.existsSync()) {
selectedPatchesFile.createSync(recursive: true);
}
selectedPatchesFile.writeAsString(jsonEncode(patchesMap));
}
Future<List<String>> getSelectedPatches(String app) async {
Map<String, dynamic> patchesMap = await readSelectedPatchesFile();
if (patchesMap.isNotEmpty) {
final List<String> patches =
List.from(patchesMap.putIfAbsent(app, () => List.empty()));
return patches;
}
return List.empty();
return List.from(patchesMap.putIfAbsent(app, () => List.empty()));
}
Future<Map<String, dynamic>> readSelectedPatchesFile() async {
final File selectedPatchesFile = File(storedPatchesFile);
if (selectedPatchesFile.existsSync()) {
String string = selectedPatchesFile.readAsStringSync();
if (string.trim().isEmpty) return {};
return json.decode(string);
}
return {};
if (!selectedPatchesFile.existsSync()) return {};
String string = selectedPatchesFile.readAsStringSync();
if (string.trim().isEmpty) return {};
return jsonDecode(string);
}
Future<void> resetLastSelectedPatches() async {

View file

@ -42,7 +42,6 @@ class AppSelectorViewModel extends BaseViewModel {
patchDate: DateTime.now(),
);
locator<PatcherViewModel>().loadLastSelectedPatches();
locator<PatcherViewModel>().notifyListeners();
}
Future<void> selectAppFromStorage(BuildContext context) async {
@ -78,7 +77,6 @@ class AppSelectorViewModel extends BaseViewModel {
isFromStorage: true,
);
locator<PatcherViewModel>().loadLastSelectedPatches();
locator<PatcherViewModel>().notifyListeners();
}
}
} on Exception catch (e, s) {

View file

@ -114,8 +114,7 @@ class PatcherViewModel extends BaseViewModel {
await _managerAPI.getSelectedPatches(selectedApp!.originalPackageName);
List<Patch> patches =
_patcherAPI.getFilteredPatches(selectedApp!.originalPackageName);
this
.selectedPatches
this.selectedPatches
.addAll(patches.where((patch) => selectedPatches.contains(patch.name)));
notifyListeners();
}

View file

@ -80,9 +80,9 @@ class SettingsViewModel extends BaseViewModel {
await CRFileSaver.saveFileWithDialog(SaveFileDialogParams(
sourceFilePath: tempFilePath, destinationFileName: ''));
File(tempFilePath).delete();
locator<Toast>().showBottom('settingsView.exportedPatches');
_toast.showBottom('settingsView.exportedPatches');
} else {
locator<Toast>().showBottom('settingsView.noExportFileFound');
_toast.showBottom('settingsView.noExportFileFound');
}
} on Exception catch (e, s) {
Sentry.captureException(e, stackTrace: s);
@ -97,20 +97,16 @@ class SettingsViewModel extends BaseViewModel {
);
if (result != null && result.files.single.path != null) {
File inFile = File(result.files.single.path!);
final File storedPatchesFile = File(_managerAPI.storedPatchesFile);
if (!storedPatchesFile.existsSync()) {
storedPatchesFile.createSync(recursive: true);
}
inFile.copySync(storedPatchesFile.path);
inFile.copySync(_managerAPI.storedPatchesFile);
inFile.delete();
if (locator<PatcherViewModel>().selectedApp != null) {
locator<PatcherViewModel>().loadLastSelectedPatches();
}
locator<Toast>().showBottom('settingsView.importedPatches');
_toast.showBottom('settingsView.importedPatches');
}
} on Exception catch (e, s) {
await Sentry.captureException(e, stackTrace: s);
locator<Toast>().showBottom('settingsView.jsonSelectorErrorMessage');
_toast.showBottom('settingsView.jsonSelectorErrorMessage');
}
}