From 26207a9fc7f04532cf202aa00821edf596ef1edc Mon Sep 17 00:00:00 2001 From: Ankit Mahato Date: Thu, 4 May 2023 12:49:34 +0530 Subject: [PATCH] Users can now choose whether or not to save response results --- lib/models/request_model.dart | 8 ++++---- lib/providers/collection_providers.dart | 7 ++++++- lib/screens/settings_page.dart | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/models/request_model.dart b/lib/models/request_model.dart index 2990371c..13b0ae3c 100644 --- a/lib/models/request_model.dart +++ b/lib/models/request_model.dart @@ -139,7 +139,7 @@ class RequestModel { ); } - Map toJson() { + Map toJson({bool includeResponse = true}) { return { "id": id, "method": method.name, @@ -150,9 +150,9 @@ class RequestModel { "requestParams": rowsToMap(requestParams), "requestBodyContentType": requestBodyContentType.name, "requestBody": requestBody, - "responseStatus": responseStatus, - "message": message, - "responseModel": responseModel?.toJson(), + "responseStatus": includeResponse ? responseStatus : null, + "message": includeResponse ? message : null, + "responseModel": includeResponse ? responseModel?.toJson() : null, }; } diff --git a/lib/providers/collection_providers.dart b/lib/providers/collection_providers.dart index ebb31940..e5b81443 100644 --- a/lib/providers/collection_providers.dart +++ b/lib/providers/collection_providers.dart @@ -188,10 +188,15 @@ class CollectionStateNotifier extends StateNotifier?> { } Future saveData() async { + final saveResponse = + ref.read(settingsProvider.select((value) => value.saveResponses)); final ids = getIds(); await hiveHandler.setIds(ids); for (var e in state!) { - await hiveHandler.setRequestModel(e.id, e.toJson()); + await hiveHandler.setRequestModel( + e.id, + e.toJson(includeResponse: saveResponse), + ); } await hiveHandler.removeUnused(); } diff --git a/lib/screens/settings_page.dart b/lib/screens/settings_page.dart index 478ad35a..3f38a0fa 100644 --- a/lib/screens/settings_page.dart +++ b/lib/screens/settings_page.dart @@ -64,8 +64,8 @@ class _SettingsPageState extends ConsumerState { CheckboxListTile( contentPadding: EdgeInsets.zero, title: const Text("Save Responses"), - subtitle: const Text( - "Saves disk space & clears all previous responses on App start"), + subtitle: + const Text("Save disk space by not storing API responses"), value: settings.saveResponses, onChanged: (value) { ref