fix relay reconnecting when returning from external signer

This commit is contained in:
greenart7c3
2023-11-20 17:35:35 -03:00
committed by greenart7c3
parent 6db031b208
commit 9fc0c37845
@@ -49,6 +49,8 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.net.URLEncoder import java.net.URLEncoder
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import java.util.Timer
import kotlin.concurrent.schedule
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private val isOnMobileDataState = mutableStateOf(false) private val isOnMobileDataState = mutableStateOf(false)
@@ -108,6 +110,7 @@ class MainActivity : AppCompatActivity() {
DefaultMutedSetting.value = true DefaultMutedSetting.value = true
// Keep connection alive if it's calling the signer app // Keep connection alive if it's calling the signer app
Log.d("shouldPauseService", "shouldPauseService onResume: $shouldPauseService")
if (shouldPauseService) { if (shouldPauseService) {
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
serviceManager.justStart() serviceManager.justStart()
@@ -121,8 +124,10 @@ class MainActivity : AppCompatActivity() {
(getSystemService(ConnectivityManager::class.java) as ConnectivityManager).registerDefaultNetworkCallback(networkCallback) (getSystemService(ConnectivityManager::class.java) as ConnectivityManager).registerDefaultNetworkCallback(networkCallback)
// resets state until next External Signer Call // resets state until next External Signer Call
Timer().schedule(350) {
shouldPauseService = true shouldPauseService = true
} }
}
override fun onPause() { override fun onPause() {
LanguageTranslatorService.clear() LanguageTranslatorService.clear()
@@ -134,6 +139,7 @@ class MainActivity : AppCompatActivity() {
} }
// } // }
Log.d("shouldPauseService", "shouldPauseService onPause: $shouldPauseService")
if (shouldPauseService) { if (shouldPauseService) {
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
serviceManager.pauseForGood() serviceManager.pauseForGood()
@@ -171,10 +177,13 @@ class MainActivity : AppCompatActivity() {
override fun onAvailable(network: Network) { override fun onAvailable(network: Network) {
super.onAvailable(network) super.onAvailable(network)
Log.d("shouldPauseService", "shouldPauseService onAvailable: $shouldPauseService")
if (shouldPauseService) {
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
serviceManager.forceRestart() serviceManager.forceRestart()
} }
} }
}
// Network capabilities have changed for the network // Network capabilities have changed for the network
override fun onCapabilitiesChanged( override fun onCapabilitiesChanged(
@@ -202,7 +211,8 @@ class MainActivity : AppCompatActivity() {
changedNetwork = true changedNetwork = true
} }
if (changedNetwork) { Log.d("shouldPauseService", "shouldPauseService onCapabilitiesChanged: $shouldPauseService")
if (changedNetwork && shouldPauseService) {
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
serviceManager.forceRestart() serviceManager.forceRestart()
} }