diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ebea58d7..0c5ca96e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -44,7 +44,7 @@ dependencies { implementation(project(":core:model")) implementation(project(":core:database")) implementation(project(":core:domain")) - + implementation(project(":core:network")) implementation(project(":feature:interestedmedicine")) implementation(project(":feature:home")) diff --git a/app/src/main/java/com/android/mediproject/MainActivity.kt b/app/src/main/java/com/android/mediproject/MainActivity.kt index 4d5da2a53..f70af7233 100644 --- a/app/src/main/java/com/android/mediproject/MainActivity.kt +++ b/app/src/main/java/com/android/mediproject/MainActivity.kt @@ -18,6 +18,7 @@ import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupWithNavController import com.android.mediproject.core.common.uiutil.LayoutController import com.android.mediproject.core.common.uiutil.SystemBarStyler +import com.android.mediproject.core.network.InternetNetworkListener import com.android.mediproject.core.ui.WindowViewModel import com.android.mediproject.core.ui.base.BaseActivity import com.android.mediproject.databinding.ActivityMainBinding @@ -32,6 +33,8 @@ class MainActivity : BaseActivity(ActivityMa @Inject lateinit var systemBarStyler: SystemBarStyler + @Inject lateinit var internetNetworkListener: InternetNetworkListener + companion object { const val VISIBLE = 0 const val INVISIBLE = 1 @@ -44,6 +47,14 @@ class MainActivity : BaseActivity(ActivityMa systemBarStyler.init(this, window, this::changeFragmentContainerHeight) systemBarStyler.setStyle(SystemBarStyler.StatusBarColor.WHITE, SystemBarStyler.NavigationBarColor.BLACK) + internetNetworkListener.activityLifeCycle = this.lifecycle + internetNetworkListener.networkStateCallback = InternetNetworkListener.NetworkStateCallback { isConnected -> + if (!isConnected) { + val modalBottomSheet = NetworkStateDialogFragment() + modalBottomSheet.show(supportFragmentManager, NetworkStateDialogFragment::class.java.name) + } + } + //SDK 31이상일 때 Splash가 소소하게 사라지는 이펙트 입니다. 추후 걸리적거리면 삭제해도 됌 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { splashScreen.setOnExitAnimationListener { splashScreenView -> diff --git a/app/src/main/java/com/android/mediproject/NetworkStateDialogFragment.kt b/app/src/main/java/com/android/mediproject/NetworkStateDialogFragment.kt new file mode 100644 index 000000000..6f00d377e --- /dev/null +++ b/app/src/main/java/com/android/mediproject/NetworkStateDialogFragment.kt @@ -0,0 +1,21 @@ +package com.android.mediproject + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class NetworkStateDialogFragment : BottomSheetDialogFragment() { + + private var _binding: BindingView + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? = inflater.inflate(R.layout.modal_bottom_sheet_content, container, false) + +} \ No newline at end of file diff --git a/app/src/main/res/layout/view_network_state.xml b/app/src/main/res/layout/view_network_state.xml new file mode 100644 index 000000000..4e93c2bfd --- /dev/null +++ b/app/src/main/res/layout/view_network_state.xml @@ -0,0 +1,30 @@ + + + + + +