diff --git a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt index b46b6502..829b7857 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt @@ -115,6 +115,7 @@ import java.io.StringWriter import java.lang.reflect.InvocationTargetException import java.util.LinkedList import java.util.Queue +import java.util.UUID import java.util.concurrent.ConcurrentLinkedQueue @@ -218,6 +219,8 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { } } + val mainId = UUID.randomUUID().toString().substring(0, 5) + constructor() : super() { if (BuildConfig.DEBUG) { StrictMode.setVmPolicy( @@ -269,8 +272,8 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { @UnstableApi override fun onCreate(savedInstanceState: Bundle?) { - Logger.i(TAG, "MainActivity Starting"); - StateApp.instance.setGlobalContext(this, lifecycleScope); + Logger.w(TAG, "MainActivity Starting [$mainId]"); + StateApp.instance.setGlobalContext(this, lifecycleScope, mainId); StateApp.instance.mainAppStarting(this); super.onCreate(savedInstanceState); @@ -671,13 +674,13 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { override fun onResume() { super.onResume(); - Logger.v(TAG, "onResume") + Logger.w(TAG, "onResume [$mainId]") _isVisible = true; } override fun onPause() { super.onPause(); - Logger.v(TAG, "onPause") + Logger.w(TAG, "onPause [$mainId]") _isVisible = false; _qrCodeLoadingDialog?.dismiss() @@ -686,7 +689,7 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { override fun onStop() { super.onStop() - Logger.v(TAG, "_wasStopped = true"); + Logger.w(TAG, "onStop [$mainId]"); _wasStopped = true; } @@ -1103,8 +1106,8 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { override fun onDestroy() { super.onDestroy(); - Logger.v(TAG, "onDestroy") - StateApp.instance.mainAppDestroyed(this); + Logger.w(TAG, "onDestroy [$mainId]") + StateApp.instance.mainAppDestroyed(this, mainId); } inline fun isFragmentActive(): Boolean { diff --git a/app/src/main/java/com/futo/platformplayer/states/StateApp.kt b/app/src/main/java/com/futo/platformplayer/states/StateApp.kt index e2155e8b..9757f005 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StateApp.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StateApp.kt @@ -156,6 +156,8 @@ class StateApp { return thisContext; } + private var _mainId: String? = null; + //Files private var _tempDirectory: File? = null; private var _cacheDirectory: File? = null; @@ -295,9 +297,12 @@ class StateApp { } //Lifecycle - fun setGlobalContext(context: Context, coroutineScope: CoroutineScope? = null) { + fun setGlobalContext(context: Context, coroutineScope: CoroutineScope? = null, mainId: String? = null) { + _mainId = mainId; _context = context; _scope = coroutineScope + Logger.w(TAG, "Scope initialized ${(coroutineScope != null)}\n ${Log.getStackTraceString(Throwable())}") + } fun initializeFiles(force: Boolean = false) { @@ -719,7 +724,9 @@ class StateApp { migrateStores(context, managedStores, index + 1); } - fun mainAppDestroyed(context: Context) { + fun mainAppDestroyed(context: Context, mainId: String? = null) { + if (mainId != null && (_mainId != mainId || _mainId == null)) + return Logger.i(TAG, "App ended"); _receiverBecomingNoisy?.let { _receiverBecomingNoisy = null; @@ -743,7 +750,8 @@ class StateApp { fun dispose(){ _context = null; - _scope = null; + // _scope = null; + Logger.w(TAG, "StateApp disposed: ${Log.getStackTraceString(Throwable())}") } private val _connectivityEvents = object : ConnectivityManager.NetworkCallback() { diff --git a/app/src/main/java/com/futo/platformplayer/views/fields/ToggleField.kt b/app/src/main/java/com/futo/platformplayer/views/fields/ToggleField.kt index c419092c..7675a791 100644 --- a/app/src/main/java/com/futo/platformplayer/views/fields/ToggleField.kt +++ b/app/src/main/java/com/futo/platformplayer/views/fields/ToggleField.kt @@ -90,7 +90,7 @@ class ToggleField : TableRow, IField { val advancedFieldAttr = field.getAnnotation(AdvancedField::class.java) if(advancedFieldAttr != null || advanced) { - Logger.w("ToggleField", "Found advanced field: " + field.name); + // Logger.w("ToggleField", "Found advanced field: " + field.name); isAdvanced = true; } diff --git a/app/src/unstable/AndroidManifest.xml b/app/src/unstable/AndroidManifest.xml index 7c47d7bd..de471f2d 100644 --- a/app/src/unstable/AndroidManifest.xml +++ b/app/src/unstable/AndroidManifest.xml @@ -7,7 +7,7 @@ - +