11package com.yapp.home
22
3+ import android.content.Context
4+ import android.net.ConnectivityManager
5+ import android.net.NetworkCapabilities
36import android.util.Log
47import androidx.lifecycle.ViewModel
58import com.yapp.common.util.ResourceProvider
@@ -9,6 +12,7 @@ import com.yapp.domain.repository.UserInfoRepository
912import com.yapp.domain.usecase.AlarmUseCase
1013import com.yapp.home.util.AlarmDateTimeFormatter
1114import dagger.hilt.android.lifecycle.HiltViewModel
15+ import dagger.hilt.android.qualifiers.ApplicationContext
1216import feature.home.R
1317import kotlinx.coroutines.flow.combine
1418import kotlinx.coroutines.flow.first
@@ -32,6 +36,7 @@ class HomeViewModel @Inject constructor(
3236 private val fortuneRepository : FortuneRepository ,
3337 private val userInfoRepository : UserInfoRepository ,
3438 @Named(" appVersion" ) private val appVersion : String ,
39+ @ApplicationContext private val context : Context ,
3540) : ViewModel(), ContainerHost<HomeContract.State, HomeContract.SideEffect> {
3641
3742 override val container: Container <HomeContract .State , HomeContract .SideEffect > = container(
@@ -371,6 +376,11 @@ class HomeViewModel @Inject constructor(
371376 }
372377
373378 private fun loadUpdateNoticeVisibility () = intent {
379+ if (! isOnlineNow()) {
380+ reduce { state.copy(isUpdateNoticeVisible = false ) }
381+ return @intent
382+ }
383+
374384 val dontShowVersion =
375385 userInfoRepository.updateNoticeDontShowVersionFlow.firstOrNull()
376386 val lastShownDate =
@@ -443,4 +453,13 @@ class HomeViewModel @Inject constructor(
443453 reduce { state.copy(sortOrder = sortOrder) }
444454 hideDropDownMenu()
445455 }
456+
457+ private fun isOnlineNow (): Boolean {
458+ val cm = context.getSystemService(Context .CONNECTIVITY_SERVICE ) as ConnectivityManager
459+ val network = cm.activeNetwork ? : return false
460+ val caps = cm.getNetworkCapabilities(network) ? : return false
461+
462+ return caps.hasCapability(NetworkCapabilities .NET_CAPABILITY_INTERNET ) &&
463+ caps.hasCapability(NetworkCapabilities .NET_CAPABILITY_VALIDATED )
464+ }
446465}
0 commit comments