From d132353291c5882fc47dc0159d8cf13d5cc27157 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Fri, 10 May 2024 12:05:07 +0530 Subject: [PATCH] [mob][photos] Get four random prompt data from json --- mobile/lib/services/magic_cache_service.dart | 66 ++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 mobile/lib/services/magic_cache_service.dart diff --git a/mobile/lib/services/magic_cache_service.dart b/mobile/lib/services/magic_cache_service.dart new file mode 100644 index 000000000..5fd93b688 --- /dev/null +++ b/mobile/lib/services/magic_cache_service.dart @@ -0,0 +1,66 @@ +import 'dart:math'; + +import "package:logging/logging.dart"; +import "package:shared_preferences/shared_preferences.dart"; + +const _promptsJson = { + "prompts": [ + { + "prompt": "identity document", + "title": "Identity Document", + "minimumScore": 0.269, + "minimumSize": 0.0, + }, + { + "prompt": "sunset at the beach", + "title": "Sunset", + "minimumScore": 0.25, + "minimumSize": 0.0, + }, + { + "prompt": "roadtrip", + "title": "Roadtrip", + "minimumScore": 0.26, + "minimumSize": 0.0, + }, + { + "prompt": "pizza pasta burger", + "title": "Food", + "minimumScore": 0.27, + "minimumSize": 0.0, + } + ], +}; + +class MagicCacheService { + static const _key = "magic"; + late SharedPreferences prefs; + final Logger _logger = Logger((MagicCacheService).toString()); + MagicCacheService._privateConstructor(); + + static final MagicCacheService instance = + MagicCacheService._privateConstructor(); + + void init(SharedPreferences preferences) { + prefs = preferences; + } + + List> getRandomPrompts() { + final promptsJson = _promptsJson["prompts"]; + final randomPrompts = >[]; + final randomNumbers = _generateRandomNumbers(promptsJson!.length - 1, 4); + for (int i = 0; i < randomNumbers.length; i++) { + randomPrompts.add(promptsJson[randomNumbers[i]]); + } + + return randomPrompts; + } + + List _generateRandomNumbers(int max, int count) { + final numbers = []; + for (int i = 1; i <= count; i++) { + numbers.add(Random().nextInt(max + 1)); + } + return numbers; + } +}