Skip to content

Commit 8d6f6fd

Browse files
committed
#121 / 업데이트 다이얼로그 콜백 추가
1 parent 004e3b7 commit 8d6f6fd

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

app/src/main/java/sopt/uni/presentation/IntroActivity.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import timber.log.Timber
2121
import javax.inject.Inject
2222

2323
@AndroidEntryPoint
24-
class IntroActivity : AppCompatActivity() {
24+
class IntroActivity : AppCompatActivity(), UpdateDialogFragment.UpdateDialogListener {
2525
@Inject
2626
lateinit var shortGameRepository: ShortGameRepository
2727

@@ -52,15 +52,23 @@ class IntroActivity : AppCompatActivity() {
5252
}
5353
appUpdateInfoTask.addOnFailureListener { exception ->
5454
Timber.tag("inappUpdate").e("업데이트 체크 실패: ${exception.message}")
55-
showUpdateDialog()
55+
checkUserStatus()
5656
}
5757
}
5858

59+
override fun onDialogDismissed() {
60+
checkUserStatus()
61+
}
62+
63+
override fun onUpdateComplete() {
64+
checkUserStatus()
65+
}
66+
5967
private fun showUpdateDialog() {
60-
UpdateDialogFragment().show(
61-
supportFragmentManager,
62-
"UpdateDialog",
63-
)
68+
val dialogFragment = UpdateDialogFragment().apply {
69+
updateDialogListener = this@IntroActivity
70+
}
71+
dialogFragment.show(supportFragmentManager, "UpdateDialog")
6472
}
6573

6674
private fun checkUserStatus() {

app/src/main/java/sopt/uni/presentation/home/UpdateDialogFragment.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.app.Activity
44
import android.os.Bundle
55
import android.util.Log
66
import android.view.View
7-
import android.widget.Toast
87
import androidx.activity.result.contract.ActivityResultContracts
98
import com.google.android.play.core.appupdate.AppUpdateManager
109
import com.google.android.play.core.appupdate.AppUpdateOptions
@@ -15,12 +14,15 @@ import sopt.uni.data.datasource.local.SparkleStorage
1514
import sopt.uni.databinding.TitleAction2DialogBinding
1615
import sopt.uni.util.binding.BindingDialogFragment
1716
import sopt.uni.util.extension.setOnSingleClickListener
17+
import sopt.uni.util.extension.showSnackbar
1818
import javax.inject.Inject
1919

2020
@AndroidEntryPoint
2121
class UpdateDialogFragment :
2222
BindingDialogFragment<TitleAction2DialogBinding>(R.layout.title_action2_dialog) {
2323

24+
lateinit var updateDialogListener: UpdateDialogListener
25+
2426
@Inject
2527
lateinit var appUpdateManager: AppUpdateManager
2628

@@ -34,6 +36,7 @@ class UpdateDialogFragment :
3436
btnRight.setText(getString(R.string.update_dialog_ok))
3537
btnLeft.setOnSingleClickListener {
3638
dismiss()
39+
updateDialogListener.onDialogDismissed()
3740
}
3841
btnRight.setOnSingleClickListener {
3942
updateSparkle()
@@ -52,18 +55,23 @@ class UpdateDialogFragment :
5255
private val startForResult =
5356
registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) {
5457
if (it.resultCode != Activity.RESULT_OK) {
55-
Toast.makeText(requireContext(), "업데이트에 실패했습니다. 다시 시도해주세요.", Toast.LENGTH_SHORT)
56-
.show()
58+
showSnackbar(binding.root, "업데이트에 실패했습니다. 다시 시도해주세요.")
5759
Log.e("update", it.resultCode.toString())
5860
} else {
5961
SparkleStorage.setUpdateAvailableBoolean(
6062
IS_UPDATE_AVAILABLE,
6163
true,
6264
)
65+
updateDialogListener.onUpdateComplete()
6366
}
6467
}
6568

6669
companion object {
6770
const val IS_UPDATE_AVAILABLE = "IS_UPDATE_AVAILABLE"
6871
}
72+
73+
interface UpdateDialogListener {
74+
fun onUpdateComplete()
75+
fun onDialogDismissed()
76+
}
6977
}

0 commit comments

Comments
 (0)