sharedPrefs property

String sharedPrefs
getter/setter pair

Implementation

String sharedPrefs = '''
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

import '../../../config/translations/localization_service.dart';

class MySharedPref {
// prevent making instance
MySharedPref._();

// get storage
static late SharedPreferences _sharedPreferences;

// STORING KEYS
static const String _fcmTokenKey = 'fcm_token';
static const String _currentLocalKey = 'current_local';
static const String _lightThemeKey = 'is_theme_light';

/// init get storage services
static Future<void> init() async {
  _sharedPreferences = await SharedPreferences.getInstance();
}

static setStorage(SharedPreferences sharedPreferences) {
  _sharedPreferences = sharedPreferences;
}

/// set theme current type as light theme
static Future<void> setThemeIsLight(bool lightTheme) =>
    _sharedPreferences.setBool(_lightThemeKey, lightTheme);

/// get if the current theme type is light
static bool getThemeIsLight() =>
    _sharedPreferences.getBool(_lightThemeKey) ??
    true; // todo set the default theme (true for light, false for dark)

/// save current locale
static Future<void> setCurrentLanguage(String languageCode) =>
    _sharedPreferences.setString(_currentLocalKey, languageCode);

/// get current locale
static Locale getCurrentLocal() {
  String? langCode = _sharedPreferences.getString(_currentLocalKey);
  // default language is english
  if (langCode == null) {
    return LocalizationService.defaultLanguage;
  }
  return LocalizationService.supportedLanguages[langCode]!;
}

/// save generated fcm token
static Future<void> setFcmToken(String token) =>
    _sharedPreferences.setString(_fcmTokenKey, token);

/// get authorization token
static String? getFcmToken() => _sharedPreferences.getString(_fcmTokenKey);

/// clear all data from shared pref
static Future<void> clear() async => await _sharedPreferences.clear();
}

''';