11package com.velogm.presentation.ui
22
3+ import android.app.AlertDialog
34import android.content.Intent
45import android.os.Bundle
56import android.view.View
@@ -9,6 +10,10 @@ import androidx.lifecycle.lifecycleScope
910import androidx.navigation.NavController
1011import androidx.navigation.fragment.findNavController
1112import androidx.navigation.ui.setupWithNavController
13+ import com.google.firebase.ktx.Firebase
14+ import com.google.firebase.remoteconfig.FirebaseRemoteConfig
15+ import com.google.firebase.remoteconfig.ktx.remoteConfig
16+ import com.google.firebase.remoteconfig.ktx.remoteConfigSettings
1217import com.velogm.core_ui.base.BindingActivity
1318import com.velogm.core_ui.context.longToast
1419import com.velogm.core_ui.view.UiState
@@ -20,16 +25,27 @@ import com.velogm.presentation.ui.signin.SignInViewModel
2025import dagger.hilt.android.AndroidEntryPoint
2126import kotlinx.coroutines.flow.launchIn
2227import kotlinx.coroutines.flow.onEach
28+ import timber.log.Timber
2329
2430@AndroidEntryPoint
2531class MainActivity : BindingActivity <ActivityMainBinding >(R .layout.activity_main) {
2632 private val mainViewModel by viewModels<SignInViewModel >()
27-
33+ private lateinit var remoteConfig : FirebaseRemoteConfig
2834 override fun onCreate (savedInstanceState : Bundle ? ) {
2935 super .onCreate(savedInstanceState)
3036 initView()
3137 setupLogoutState()
3238 setUpWithdrawalState()
39+
40+ remoteConfig = Firebase .remoteConfig
41+
42+ val configSettings = remoteConfigSettings {
43+ minimumFetchIntervalInSeconds = 0
44+ }
45+
46+ remoteConfig.setConfigSettingsAsync(configSettings)
47+
48+ fetchAppVersion()
3349 }
3450
3551 private fun initView () {
@@ -94,4 +110,31 @@ class MainActivity : BindingActivity<ActivityMainBinding>(R.layout.activity_main
94110
95111 }
96112 }
113+ private fun fetchAppVersion () {
114+ // val appVersion = remoteConfig[REMOTE_KEY_APP_VERSION].asString()
115+ var appVersion= " 0.0.0"
116+ Timber .tag(" remote config1" ).d(" $appVersion " )
117+ appVersion= remoteConfig.getString(REMOTE_KEY_APP_VERSION )
118+ Timber .tag(" remote config2" ).d(" $appVersion " )
119+
120+ AlertDialog .Builder (this )
121+ .setTitle(" Remote Config" )
122+ .setMessage(" App version :: $appVersion " )
123+ .show()
124+
125+ remoteConfig.fetchAndActivate()
126+ .addOnCompleteListener {
127+ if (it.isSuccessful) {
128+ Timber .tag(" remoteConfig" ).d(" success" )
129+ // fetch and activate 성공
130+ } else {
131+ Timber .tag(" remoteConfig" ).d(" fail" )
132+ // fetch and activate 실패
133+ }
134+ }
135+ }
136+
137+ companion object {
138+ private const val REMOTE_KEY_APP_VERSION = " app_version"
139+ }
97140}
0 commit comments