Some checks failed
Main Branch CI / Test Flutter beta on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter stable on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter beta on macos-latest (push) Has been cancelled
Main Branch CI / Test Flutter stable on macos-latest (push) Has been cancelled
48 lines
1.3 KiB
Dart
48 lines
1.3 KiB
Dart
// Copyright 2024 The Flutter team. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:logging/logging.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import '../../utils/result.dart';
|
|
|
|
class SharedPreferencesService {
|
|
static const _tokenKey = 'TOKEN';
|
|
final _log = Logger('SharedPreferencesService');
|
|
|
|
Future<Result<String?>> fetchToken() async {
|
|
try {
|
|
final sharedPreferences = SharedPreferencesAsync();
|
|
|
|
_log.finer('Got token from SharedPreferences');
|
|
|
|
return Result.ok(await sharedPreferences.getString(_tokenKey));
|
|
} on Exception catch (e) {
|
|
_log.warning('Failed to get token', e);
|
|
return Result.error(e);
|
|
}
|
|
}
|
|
|
|
Future<Result<void>> saveToken(String? token) async {
|
|
try {
|
|
final sharedPreferences = SharedPreferencesAsync();
|
|
|
|
if (token == null) {
|
|
_log.finer('Removed token');
|
|
|
|
await sharedPreferences.remove(_tokenKey);
|
|
} else {
|
|
_log.finer('Replaced token');
|
|
|
|
await sharedPreferences.setString(_tokenKey, token);
|
|
}
|
|
|
|
return const Result.ok(null);
|
|
} on Exception catch (e) {
|
|
_log.warning('Failed to set token', e);
|
|
return Result.error(e);
|
|
}
|
|
}
|
|
}
|