// ignore_for_file: constant_identifier_names import 'package:shared_preferences/shared_preferences.dart'; // Shared preference for the app to store data locally class SharedPrefUtils { SharedPrefUtils._(); static String? _token; static String? _resetToken; static String? _refreshToken; static const String PROFILE_PIC = "profile_pic"; static const String BADGE_URL = "badge_url"; static String USER_NAME = "username"; static const String INS_RANDOM = "ins_random"; static const String INS_NearBy = "ins_nearby"; static const String USER_ID = "user_id"; static String PHONE = "phone"; static const String BACK_STATUS = "back_status"; static const String HAND_OF_ACTION = "hand_of_action"; static const String VERIFIED_USER = "verified_user"; static const String KEY_TOKEN = "KEY_TOKEN"; static const String IS_PROFILE = "is_profile"; static const String IS_FRESH_INSTALL = "is_fresh_install"; static const String LAST_LOCATION = "LAST_LOCATION"; static const String COUNTRY_CODE = "COUNTRY_CODE"; static const String SELECTED_PROFILE = "selected_profile"; static const String CITY = "city"; static const String IS_SUBSCRIPTION_PURCHASE = "IS_SUBSCRIPTION_PURCHASE"; static const String FIRST_NAME = "FIRST_NAME"; static const String LAST_NAME = "FIRST_NAME"; static const String EMAIL = "EMAIL"; static const String PASSWORD = "PASSWORD"; static const String RESET_TOKEN = "RESET_TOKEN"; static const String STORE_ID = "STORE_ID"; static const String REFRESH_TOKEN = "REFRESH_TOKEN"; /// Set bearer authorization token static Future setToken({required String authToken}) { _token = authToken; return SharedPreferences.getInstance() .then((sp) async => await sp.setString(KEY_TOKEN, authToken)); } static Future setRefreshToken({required String refresh_token}) { _refreshToken = refresh_token; return SharedPreferences.getInstance() .then((sp) async => await sp.setString(REFRESH_TOKEN, refresh_token)); } static Future setStoreId({required String storeId}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(STORE_ID, storeId)); } static Future getStoreId() async { final sp = await SharedPreferences.getInstance(); _token = sp.getString(STORE_ID); return _token; } static Future setResetToken({required String resetToken}) { resetToken = resetToken; return SharedPreferences.getInstance() .then((sp) async => await sp.setString(RESET_TOKEN, resetToken)); } static Future setFistName({required String firstName}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(FIRST_NAME, firstName)); } static Future setLastName({required String LastName}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(LAST_NAME, LastName)); } static Future setEmail({required String email}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(EMAIL, email)); } static Future setPassWord({required String password}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(PASSWORD, password)); } static Future setPhone({required int phone}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setInt(PHONE, phone)); } static Future getBackPopStatus() async { final sp = await SharedPreferences.getInstance(); return sp.getBool(BACK_STATUS) ?? true; } static Future setBackPopStatus(bool status) { return SharedPreferences.getInstance() .then((sp) async => await sp.setBool(BACK_STATUS, status)); } /// Get bearer authorization token static Future getToken() async { final sp = await SharedPreferences.getInstance(); _token = sp.getString(KEY_TOKEN); return _token; } static Future getRefreshToken() async { final sp = await SharedPreferences.getInstance(); _refreshToken = sp.getString(REFRESH_TOKEN); return _refreshToken; } static Future getResetToken() async { final sp = await SharedPreferences.getInstance(); _resetToken = sp.getString(RESET_TOKEN); return _resetToken; } static Future setIsSubscriptionPurchase(bool value) { return SharedPreferences.getInstance() .then((sp) async => await sp.setBool(IS_SUBSCRIPTION_PURCHASE, value)); } ///Set availability of user profile static Future setIsUserProfileUpdated({required bool isUpdated}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setBool(IS_PROFILE, isUpdated)); } /// Get availability of user profile static Future isUserProfileUpdated() async { final sp = await SharedPreferences.getInstance(); return sp.getBool(IS_PROFILE) ?? false; } ///Set is fresh install static Future setFreshInstall({required bool isFresh}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setBool(IS_FRESH_INSTALL, isFresh)); } /// Get is Fresh install static Future isFreshInstall() async { final sp = await SharedPreferences.getInstance(); return sp.getBool(IS_FRESH_INSTALL) ?? true; } static Future getPhone() async { final sp = await SharedPreferences.getInstance(); return sp.getInt(PHONE) ?? 0; } /// Get Selected profile, will be used static Future getSelectedProfile() async { final sp = await SharedPreferences.getInstance(); return sp.getString(SELECTED_PROFILE) ; } /// Get is Fresh install /// Set last location of the user static setLatLongUserPosition(String location) async { final sp = await SharedPreferences.getInstance(); sp.setString(LAST_LOCATION, location); } /// Get last location of the user static Future getLatLongUserPosition() async { final sp = await SharedPreferences.getInstance(); return sp.getString(LAST_LOCATION); } /// Get country code of the user static Future getCountryCode() async { final sp = await SharedPreferences.getInstance(); return sp.getString(COUNTRY_CODE); } static setCountryCode(String countryCode) async { final sp = await SharedPreferences.getInstance(); sp.setString(COUNTRY_CODE, countryCode); } /// Set Selected profile, will be used static Future setSelectedProfile(String profileName) async { final sp = await SharedPreferences.getInstance(); sp.setString(SELECTED_PROFILE, profileName); } ///Set profile url static Future setUserId({required String id}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(USER_ID, id)); } // /// Set Selected display name, will be used // static Future setUsername(String displayName) async { // final sp = await SharedPreferences.getInstance(); // sp.setString(USER_NAME, displayName); // } /// Set Selected display name, will be used static Future setUsername({required String displayName}) async { final sp = await SharedPreferences.getInstance(); sp.setString(USER_NAME, displayName); } static Future setRandomInstruction({required bool status}) async { final sp = await SharedPreferences.getInstance(); sp.setBool(INS_RANDOM, status); } static Future setNerarByInstruction({required bool status}) async { final sp = await SharedPreferences.getInstance(); sp.setBool(INS_NearBy, status); } /// Get username /// /// static Future getFirstName() async { final sp = await SharedPreferences.getInstance(); final firstName = sp.getString(FIRST_NAME); print("lkjhdsgkhfdkjg ${sp.getString(FIRST_NAME)}"); return firstName!; } static Future getLastName() async { final sp = await SharedPreferences.getInstance(); return sp.getString(LAST_NAME) ?? ""; } static Future getEmail() async { final sp = await SharedPreferences.getInstance(); return sp.getString(EMAIL) ?? ""; } static Future getPassword() async { final sp = await SharedPreferences.getInstance(); return sp.getString(PASSWORD) ?? ""; } static Future getUsername() async { final sp = await SharedPreferences.getInstance(); return sp.getString(USER_NAME) ?? ""; } static Future getRandomInstruction() async { final sp = await SharedPreferences.getInstance(); return sp.getBool(INS_RANDOM) ?? true; } static Future getNerarByInstruction() async { final sp = await SharedPreferences.getInstance(); return sp.getBool(INS_NearBy) ?? true; } ///Set profile url static Future setProfilePicUrl({required String profileUrl}) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(PROFILE_PIC, profileUrl)); } /// Get profile url static Future getProfilePicUrl() async { final sp = await SharedPreferences.getInstance(); return sp.getString(PROFILE_PIC) ?? ""; } /// Get profile url static Future getBadgeUrl() async { final sp = await SharedPreferences.getInstance(); return sp.getString(BADGE_URL) ?? ""; } static Future setBadgeUrl({required String url}) async { final sp = await SharedPreferences.getInstance(); sp.setString(BADGE_URL, url); } /// Get profile url static Future getUserId() async { final sp = await SharedPreferences.getInstance(); return sp.getString(USER_ID) ?? ""; } //Back Popup static Future setCity(String city) { return SharedPreferences.getInstance() .then((sp) async => await sp.setString(CITY, city)); } static Future getCity() async { final sp = await SharedPreferences.getInstance(); return sp.getString(CITY) ?? ""; } /// Clear all preferences static Future clear() async { final sp = await SharedPreferences.getInstance(); sp.getKeys().forEach((key) async { if (key != IS_FRESH_INSTALL) { await sp.remove(key); } }); } }