Fix force close issue when network connectivity changes

This commit is contained in:
Rahul Kumar Patel
2021-02-25 16:40:50 +05:30
parent 5aa4d6fe5e
commit a0565384cc
5 changed files with 41 additions and 54 deletions

View File

@@ -70,6 +70,18 @@ class MainActivity : BaseActivity() {
private var lastBackPressed = 0L
override fun onConnected() {
hideNetworkConnectivitySheet()
}
override fun onDisconnected() {
showNetworkConnectivitySheet()
}
override fun onReconnected() {
}
companion object {
@JvmStatic
private fun matchDestination(
@@ -220,18 +232,6 @@ class MainActivity : BaseActivity() {
}
}
override fun onConnected() {
hideNetworkConnectivitySheet()
}
override fun onDisconnected() {
showNetworkConnectivitySheet()
}
override fun onReconnected() {
}
private fun pickExternalFileDir() {
val getContentIntent = Intent(Intent.ACTION_GET_CONTENT)
getContentIntent.type = "*/*"

View File

@@ -24,7 +24,6 @@ import android.content.Intent
import android.os.Build
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.aurora.Constants
import com.aurora.extensions.applyTheme
import com.aurora.extensions.getEmptyActivityBundle
@@ -138,24 +137,25 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
}
fun showNetworkConnectivitySheet() {
supportFragmentManager.beginTransaction()
.add(NetworkDialogSheet.newInstance(0), "NDS")
.commitAllowingStateLoss()
runOnUiThread {
supportFragmentManager.beginTransaction()
.add(NetworkDialogSheet.newInstance(), NetworkDialogSheet.TAG)
.commitAllowingStateLoss()
}
}
fun hideNetworkConnectivitySheet() {
val fragment: Fragment? = supportFragmentManager.findFragmentByTag("NDS")
if (fragment != null) {
supportFragmentManager.beginTransaction()
.remove(fragment)
.commitAllowingStateLoss()
runOnUiThread {
val fragment = supportFragmentManager.findFragmentByTag(NetworkDialogSheet.TAG)
fragment?.let {
supportFragmentManager.beginTransaction().remove(fragment).commitAllowingStateLoss()
}
}
}
override fun onStart() {
super.onStart()
NetworkProvider.addListener(this)
}
override fun onStop() {

View File

@@ -23,22 +23,20 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.aurora.Constants
import com.aurora.store.databinding.SheetNetworkBinding
class NetworkDialogSheet : BaseBottomSheet() {
lateinit var B: SheetNetworkBinding
private var type = 0
companion object {
const val TAG = "NetworkDialogSheet"
@JvmStatic
fun newInstance(type: Int): NetworkDialogSheet {
fun newInstance(): NetworkDialogSheet {
return NetworkDialogSheet().apply {
arguments = Bundle().apply {
putInt(Constants.INT_EXTRA, type)
}
}
}
}
@@ -47,18 +45,14 @@ class NetworkDialogSheet : BaseBottomSheet() {
inflater: LayoutInflater,
container: ViewGroup,
savedInstanceState: Bundle?
): View? {
): View {
B = SheetNetworkBinding.inflate(inflater, container, false)
val bundle = arguments
if (bundle != null) {
type = bundle.getInt(Constants.INT_EXTRA, 0)
}
return B.root
}
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
B.btnAction.setOnClickListener {
dismissAllowingStateLoss()
}
}
}