Shared preference in Different Class

Shared preference

-------------------

class AppPreferences private constructor(context: Context) {

    private val preferences = context.getSharedPreferences(PreferencesName, Context.MODE_PRIVATE)

    fun clearAll() {
        preferences.edit().clear().apply()
    }

    var status: Boolean
        get() {
            return preferences.getBoolean(Status, true)
        }
        set(value) {
            preferences.edit().putBoolean(Status, value).apply()
        }

    var isLoggedIn: Boolean
        get() {
            return preferences.getBoolean(LoggedIn, false)
        }
        set(value) {
            preferences.edit().putBoolean(LoggedIn, value).apply()
        }

    var token: String?
        get() {
            return preferences.getString(Token, null)
        }
        set(value) {
            preferences.edit().putString(Token, value).apply()
        }

    var user_display_name: String?
        get() {
            return preferences.getString(UserDisplayName, null)
        }
        set(value) {
            preferences.edit().putString(UserDisplayName, value).apply()
        }

     var userFirstName: String?
        get() {
            return preferences.getString(UserNickName, null)
        }
        set(value) {
            preferences.edit().putString(UserNickName, value).apply()
        }

    companion object {
        const val PreferencesName = "App"
        const val DefaultPreferredVideoHeight = 720

        private const val Status = "status"

        private const val Token = "token"
        private const val UserDisplayName = "user_display_name"
        private const val LoggedIn = "Loggedin"
        private const val UserNickName = "user_nicename"

        fun from(context: Context?) = context?.let { AppPreferences(it) }
    }
}



To Store Data into SharedPreference

---------------------------------

AppPreferences.from(this)?.apply {
if (!tokenValue.isEmpty()){
token = tokenValue
isLoggedIn = true
SubscriptionPreferences.from(this@LoginActivity)?.isSubscribed = true
}
status = Status
                        }


To get Value From sharedpreference

-------------------------------------

AppPreferences.from(this)?.isLoggedIn

0 comments: