fix(macos,ios): use regular shared prefs

This commit is contained in:
Kingkor Roy Tirtho 2023-04-27 09:57:04 +06:00
parent f1f60b9ad4
commit 1b5bfec27f
3 changed files with 31 additions and 11 deletions

View File

@ -4,6 +4,8 @@ import 'dart:convert';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:hive/hive.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:spotube/utils/platform.dart';
import 'package:spotube/utils/primitive_utils.dart';
const secureStorage = FlutterSecureStorage(
@ -32,22 +34,38 @@ abstract class PersistedStateNotifier<T> extends StateNotifier<T> {
static late LazyBox _box;
static late LazyBox _encryptedBox;
static Future<String?> read(String key) async {
final localStorage = await SharedPreferences.getInstance();
if (kIsMacOS || kIsIOS) {
return localStorage.getString(key);
} else {
return secureStorage.read(key: key);
}
}
static Future<void> write(String key, String value) async {
final localStorage = await SharedPreferences.getInstance();
if (kIsMacOS || kIsIOS) {
await localStorage.setString(key, value);
return;
} else {
return secureStorage.write(key: key, value: value);
}
}
static Future<void> initializeBoxes() async {
String? boxName = await secureStorage.read(key: kKeyBoxName);
String? boxName = await read(kKeyBoxName);
if (boxName == null) {
boxName = "spotube-${PrimitiveUtils.uuid.v4()}";
await secureStorage.write(key: kKeyBoxName, value: boxName);
await write(kKeyBoxName, boxName);
}
String? encryptionKey = await secureStorage.read(key: getBoxKey(boxName));
String? encryptionKey = await read(getBoxKey(boxName));
if (encryptionKey == null) {
encryptionKey = base64Url.encode(Hive.generateSecureKey());
await secureStorage.write(
key: getBoxKey(boxName),
value: encryptionKey,
);
await write(getBoxKey(boxName), encryptionKey);
}
_encryptedBox = await Hive.openLazyBox(

View File

@ -10,7 +10,8 @@
<true />
<key>com.apple.security.network.server</key>
<true />
<key>keychain-access-groups</key>
<array />
<!-- Requires Certification -->
<!-- <key>keychain-access-groups</key>
<array /> -->
</dict>
</plist>

View File

@ -8,7 +8,8 @@
<true />
<key>com.apple.security.network.server</key>
<true />
<key>keychain-access-groups</key>
<array />
<!-- Requires Certification -->
<!-- <key>keychain-access-groups</key>
<array /> -->
</dict>
</plist>