Skip to content

Commit

Permalink
๐Ÿ†™ ์„ค์ • ํŽ˜์ด์ง€ | ์—…๋ฐ์ดํŠธ ์œ ๋ฌด ํ™•์ธ ๊ธฐ๋Šฅ (#27)
Browse files Browse the repository at this point in the history
* โž• Add Dependency | App-Update-Ktx

* ๐Ÿซก ์—…๋ฐ์ดํŠธ ์œ ๋ฌด ํ™•์ธ ๊ธฐ๋Šฅ
  • Loading branch information
moondev03 authored Sep 21, 2024
1 parent fe9239a commit 3efe834
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 14 deletions.
2 changes: 2 additions & 0 deletions ThinkerBell/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ workRuntimeKtx = "2.9.0"
jetbrainsKotlinJvm = "1.9.0"
hilt = "2.52"
ksp = "1.9.24-1.0.20"
appUpdateKtx = "2.1.0"

[libraries]
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityKtx" }
Expand Down Expand Up @@ -52,6 +53,7 @@ firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging
androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workRuntimeKtx" }
hilt = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }
app-update-ktx = { group = "com.google.android.play", name = "app-update-ktx", version.ref = "appUpdateKtx" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
Expand Down
3 changes: 3 additions & 0 deletions ThinkerBell/presentation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,7 @@ dependencies {
// Hilt
implementation(libs.hilt)
ksp(libs.hilt.compiler)

// Update
implementation(libs.app.update.ktx)
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
package com.neverland.thinkerbell.view.setting

import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.Uri
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
import com.neverland.domain.model.keyword.Keyword
import com.neverland.thinkerbell.BuildConfig
import com.neverland.thinkerbell.R
import com.neverland.thinkerbell.base.BaseFragment
import com.neverland.thinkerbell.databinding.FragmentSettingBinding
import com.neverland.thinkerbell.utils.UiState
import com.neverland.thinkerbell.view.HomeActivity
import com.neverland.thinkerbell.view.home.HomeFragment
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class SettingFragment: BaseFragment<FragmentSettingBinding>() {
class SettingFragment : BaseFragment<FragmentSettingBinding>() {
private val viewModel: SettingViewModel by viewModels()
private lateinit var keywordAdapter : SettingKeywordAdapter
private lateinit var keywordAdapter: SettingKeywordAdapter

override fun initView() {
(requireActivity() as HomeActivity).apply {
Expand All @@ -30,15 +31,47 @@ class SettingFragment: BaseFragment<FragmentSettingBinding>() {
viewModel.fetchKeyword()
}

private fun setVersionName(){
binding.tvVersionName.text = BuildConfig.VERSION_NAME
private fun setVersionName() {
val appUpdateManager = AppUpdateManagerFactory.create(requireContext())
val appUpdateInfoTask = appUpdateManager.appUpdateInfo

appUpdateInfoTask.addOnCompleteListener { updateTask ->
if (!updateTask.isSuccessful) {
updateTask.exception?.printStackTrace()
binding.tvVersionName.text = BuildConfig.VERSION_NAME

return@addOnCompleteListener
}

val onMarketVersion = updateTask.result.availableVersionCode()
if (onMarketVersion > BuildConfig.VERSION_CODE) {
binding.tvVersionName.text = "์—…๋ฐ์ดํŠธ"
binding.tvVersionName.setOnClickListener {
val intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}")
setPackage("com.android.vending")
}
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
val webIntent = Intent(Intent.ACTION_VIEW).apply {
data =
Uri.parse("https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}")
}
startActivity(webIntent)
}
}
} else {
binding.tvVersionName.text = BuildConfig.VERSION_NAME
}
}
}

override fun setObserver() {
super.setObserver()

viewModel.keyword.observe(viewLifecycleOwner){
when(it){
viewModel.keyword.observe(viewLifecycleOwner) {
when (it) {
is UiState.Loading -> {}
is UiState.Empty -> {}
is UiState.Error -> {}
Expand All @@ -48,8 +81,8 @@ class SettingFragment: BaseFragment<FragmentSettingBinding>() {
}
}

viewModel.uiState.observe(viewLifecycleOwner){
when(it){
viewModel.uiState.observe(viewLifecycleOwner) {
when (it) {
is UiState.Loading -> {}
is UiState.Empty -> {}
is UiState.Error -> {}
Expand All @@ -61,8 +94,8 @@ class SettingFragment: BaseFragment<FragmentSettingBinding>() {
}
}

viewModel.alarmStatus.observe(viewLifecycleOwner){
when(it){
viewModel.alarmStatus.observe(viewLifecycleOwner) {
when (it) {
is UiState.Loading -> {}
is UiState.Empty -> {}
is UiState.Error -> {}
Expand All @@ -85,11 +118,23 @@ class SettingFragment: BaseFragment<FragmentSettingBinding>() {
override fun initListener() {
super.initListener()

with(binding){
with(binding) {
ibTos.setOnClickListener { openExternalBrowser("https://petite-pest-f69.notion.site/56313d788d914d6e8e996e099694272e") }
ibPrivacyPolicy.setOnClickListener { openExternalBrowser("https://petite-pest-f69.notion.site/022b7a19351a418da5cf22304c7c3137") }
ibKeyword.setOnClickListener { (requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, KeywordManageFragment(), true) }
ibError.setOnClickListener { (requireActivity() as HomeActivity).replaceFragment(R.id.fl_home, ErrorReportFragment(), true) }
ibKeyword.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(
R.id.fl_home,
KeywordManageFragment(),
true
)
}
ibError.setOnClickListener {
(requireActivity() as HomeActivity).replaceFragment(
R.id.fl_home,
ErrorReportFragment(),
true
)
}
}
}

Expand Down

0 comments on commit 3efe834

Please sign in to comment.