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

View File

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

View File

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

View File

@@ -24,20 +24,10 @@
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/padding_small"> android:padding="@dimen/padding_small">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
style="@style/AuroraTextStyle.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Network" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/animationView" android:id="@+id/img"
android:layout_width="176dp" android:layout_width="@dimen/icon_size_avatar"
android:layout_height="176dp" android:layout_height="@dimen/icon_size_avatar"
android:layout_below="@id/title"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin_normal" android:layout_marginTop="@dimen/margin_normal"
android:layout_marginBottom="@dimen/margin_normal" android:layout_marginBottom="@dimen/margin_normal"
@@ -45,19 +35,20 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/txt_warning" android:id="@+id/txt_warning"
style="@style/AuroraTextStyle.Line1" style="@style/AuroraTextStyle.Subtitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/animationView" android:layout_below="@id/img"
android:text="No network!" android:text="@string/title_no_network"
android:textAlignment="center" /> android:textAlignment="center" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.UnelevatedButton" style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
android:id="@+id/btn_action"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/txt_warning" android:layout_below="@+id/txt_warning"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin_normal" android:layout_marginTop="@dimen/margin_normal"
android:text="Try Later" /> android:text="@string/action_try_later" />
</RelativeLayout> </RelativeLayout>

View File

@@ -115,6 +115,7 @@
<string name="action_skip">"Skip"</string> <string name="action_skip">"Skip"</string>
<string name="action_spoofed">"Spoof"</string> <string name="action_spoofed">"Spoof"</string>
<string name="action_submit">"Submit"</string> <string name="action_submit">"Submit"</string>
<string name="action_try_later">"Try later"</string>
<string name="action_uninstall">"Uninstall"</string> <string name="action_uninstall">"Uninstall"</string>
<string name="action_info">"App Info"</string> <string name="action_info">"App Info"</string>
<string name="action_update">"Update"</string> <string name="action_update">"Update"</string>
@@ -310,6 +311,7 @@
<string name="title_installer">"App Installer"</string> <string name="title_installer">"App Installer"</string>
<string name="title_language">"Language"</string> <string name="title_language">"Language"</string>
<string name="title_library">"Library"</string> <string name="title_library">"Library"</string>
<string name="title_no_network">"No network"</string>
<string name="title_purchase_history">"Purchase history"</string> <string name="title_purchase_history">"Purchase history"</string>
<string name="title_settings">"Settings"</string> <string name="title_settings">"Settings"</string>
<string name="title_spoof_manager">"Spoof manager"</string> <string name="title_spoof_manager">"Spoof manager"</string>