투케이2K

98. (TWOK/UTIL) [Android/Kotlin] S_Preference - 프리퍼런스 관리 클래스 본문

투케이2K 유틸파일

98. (TWOK/UTIL) [Android/Kotlin] S_Preference - 프리퍼런스 관리 클래스

투케이2K 2022. 10. 19. 14:45

[설 명]

프로그램 : Android / Kotlin

설 명 : S_Preference - 프리퍼런스 관리 클래스

 

[소스 코드]

package kr.co.two2k.manager

import android.content.Context

import android.content.SharedPreferences

class S_Preference {


    /**
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 모바일 내부 데이터 저장 수행 클래스 (앱 종료 시에도 유지 / 앱 삭제 시 초기화)
     * // -----------------------------------------
     * 2. 저장된 전체 key 확인 : S_Preference.getTotalKey(getApplication()) // 저장된 전체 key 값 확인
     * // -----------------------------------------
     * 3. 전체 데이터 삭제 : S_Preference.clear(getApplication()) // 저장된 데이터 삭제
     * // -----------------------------------------
     * 4. String 저장 : S_Preference.setString(getApplication(), "Name", "Data_Twok2K") //특정 데이터 저장한다
     * // -----------------------------------------
     * 5. String 호출 : S_Preference.getString(getApplication(), "Name") //저장된 특정 데이터 불러온다
     * // -----------------------------------------
     */





    // TODO [빠른 로직 찾기 : 주석 로직 찾기]
    /**
     * // -----------------------------------------
     * // [SEARCH FAST] : [프로세스 시작 및 종료 시 프리퍼런스 데이터 초기화]
     * // -----------------------------------------
     */



    // TODO [companion object >> static 선언 실시]
    companion object {



        //TODO [전역 변수]
        val PREFERENCES_NAME = "rebuild_preference"
        private val DEFAULT_VALUE_STRING = ""
        private val DEFAULT_VALUE_BOOLEAN = false
        private val DEFAULT_VALUE_INT = -1





        // TODO [클래스 명칭 선언 실시]
        private val ACTIVITY_NAME = "S_Preference"






        //TODO [객체 생성]
        private fun getPreferences(context: Context): SharedPreferences {
            return context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE)
        }






        //TODO [전체 key 값 저장]
        fun setTotalKey(context: Context, key: String?, value: String?) {
            val prefs = getPreferences(context)
            val editor = prefs.edit()
            editor.putString(key, value)
            editor.commit()
            editor.apply()
        }






        //TODO [String 값 저장]
        fun setString(context: Context, key: String, value: String?) {
            val prefs = getPreferences(context)
            val editor = prefs.edit()
            editor.putString(key, value)
            editor.commit()
            editor.apply()

            // [전체 데이터에 키 저장]
            var data: String? = ""
            data = getTotalKey(context)
            if (data!!.contains("[$key]") == false) {
                data = "$data[$key]"
                setTotalKey(context, "TotalKeyAllTwoK", data)
            }
        }






        //TODO [boolean 값 저장]
        fun setBoolean(context: Context, key: String, value: Boolean) {
            val prefs = getPreferences(context)
            val editor = prefs.edit()
            editor.putBoolean(key, value)
            editor.commit()
            editor.apply()

            // [전체 데이터에 키 저장]
            var data: String? = ""
            data = getTotalKey(context)
            if (data!!.contains("[$key]") == false) {
                data = "$data[$key]"
                setTotalKey(context, "TotalKeyAllTwoK", data)
            }
        }






        //TODO [int 값 저장]
        fun setInt(context: Context, key: String, value: Int) {
            val prefs = getPreferences(context)
            val editor = prefs.edit()
            editor.putInt(key, value)
            editor.commit()
            editor.apply()

            // [전체 데이터에 키 저장]
            var data: String? = ""
            data = getTotalKey(context)
            if (data!!.contains("[$key]") == false) {
                data = "$data[$key]"
                setTotalKey(context, "TotalKeyAllTwoK", data)
            }
        }






        //TODO [전체 Key 값 호출]
        fun getTotalKey(context: Context): String? {
            val prefs = getPreferences(context)
            return prefs.getString("TotalKeyAllTwoK", DEFAULT_VALUE_STRING)
        }






        //TODO [String 값 호출]
        fun getString(context: Context, key: String?): String? {
            val prefs = getPreferences(context)
            return prefs.getString(key, DEFAULT_VALUE_STRING)
        }






        //TODO [boolean 값 호출]
        fun getBoolean(context: Context, key: String?): Boolean {
            val prefs = getPreferences(context)
            return prefs.getBoolean(key, DEFAULT_VALUE_BOOLEAN)
        }






        //TODO [int 값 호출]
        fun getInt(context: Context, key: String?): Int {
            val prefs = getPreferences(context)
            return prefs.getInt(key, DEFAULT_VALUE_INT)
        }






        //TODO [전체 key 값에서 특정 값 삭제]
        fun removeTotalKey(context: Context, key: String) {
            if (getTotalKey(context)!!.contains("[$key]") == true) {
                var data = getTotalKey(context)
                data = data!!.replace("[$key]", "")
                setTotalKey(context, "TotalKeyAllTwoK", data)
            }
        }






        //TODO [특정 key 값 데이터 삭제]
        fun removeKey(context: Context, key: String) {
            val prefs = getPreferences(context)
            val edit = prefs.edit()
            edit.remove(key)
            edit.commit()

            // [전체 데이터에서 키값 삭제]
            if (getTotalKey(context)!!.contains("[$key]") == true) {
                removeTotalKey(context, key)
            }
        }






        //TODO [전체 key 값 데이터 삭제 삭제]
        fun clear(context: Context) {
            val prefs = getPreferences(context)
            val edit = prefs.edit()
            edit.clear()
            edit.commit()

            // [전체 데이터 삭제]
            var data: String? = ""
            data = getTotalKey(context)
            if (data!!.length > 0 && data == "" == false) {
                setTotalKey(context, "TotalKeyAllTwoK", "")
            }
        }






        // TODO [인트로 화면 실행 시 초기화 해야하는 프리퍼런스 데이터 : A_Intro : onCreate]
        fun introCreateClear(context: Context) {

        }






        // TODO [앱 종료 시 초기화 해야하는 프리퍼런스 데이터 : A_Main : onDestroy]
        fun mainFinishClear(context: Context) {

        }






        // TODO [프로세스 시작 시 초기화 해야하는 프리퍼런스 데이터 : S_Application : onCreate]
        fun proccessCreateClear(context: Context) {

        }






        // TODO [프로세스 종료 시 초기화 해야하는 프리퍼런스 데이터 : S_ProgramTaskService : onTaskRemoved]
        fun proccessFinishClear(context: Context) {

        }






        // TODO [메인 웹뷰 리로드 시 초기화 데이터 : A_Main : onResume]
        fun webViewReloadClear(context: Context) {

        }


    }


} // TODO [클래스 종료]

 

반응형
Comments