@@ -3,6 +3,7 @@ package com.philkes.notallyx.presentation.activity
33import android.app.Activity
44import android.app.KeyguardManager
55import android.content.Intent
6+ import android.database.sqlite.SQLiteBlobTooBigException
67import android.hardware.biometrics.BiometricPrompt.BIOMETRIC_ERROR_HW_NOT_PRESENT
78import android.hardware.biometrics.BiometricPrompt.BIOMETRIC_ERROR_NO_BIOMETRICS
89import android.os.Build
@@ -15,18 +16,28 @@ import androidx.activity.result.contract.ActivityResultContracts
1516import androidx.activity.viewModels
1617import androidx.appcompat.app.AppCompatActivity
1718import androidx.core.content.ContextCompat
19+ import androidx.lifecycle.MutableLiveData
1820import androidx.lifecycle.lifecycleScope
1921import androidx.viewbinding.ViewBinding
2022import com.google.android.material.color.DynamicColors
2123import com.google.android.material.dialog.MaterialAlertDialogBuilder
2224import com.philkes.notallyx.NotallyXApplication
2325import com.philkes.notallyx.R
26+ import com.philkes.notallyx.presentation.setupProgressDialog
2427import com.philkes.notallyx.presentation.showToast
2528import com.philkes.notallyx.presentation.viewmodel.BaseNoteModel
2629import com.philkes.notallyx.presentation.viewmodel.preference.NotallyXPreferences
2730import com.philkes.notallyx.presentation.viewmodel.preference.Theme
31+ import com.philkes.notallyx.presentation.viewmodel.progress.MigrationProgress
32+ import com.philkes.notallyx.utils.log
33+ import com.philkes.notallyx.utils.secondsBetween
2834import com.philkes.notallyx.utils.security.showBiometricOrPinPrompt
35+ import com.philkes.notallyx.utils.splitOversizedNotes
36+ import kotlinx.coroutines.Dispatchers
2937import kotlinx.coroutines.launch
38+ import kotlinx.coroutines.sync.Mutex
39+ import kotlinx.coroutines.sync.withLock
40+ import kotlinx.coroutines.withContext
3041
3142abstract class LockedActivity <T : ViewBinding > : AppCompatActivity () {
3243
@@ -40,6 +51,7 @@ abstract class LockedActivity<T : ViewBinding> : AppCompatActivity() {
4051
4152 override fun onCreate (savedInstanceState : Bundle ? ) {
4253 super .onCreate(savedInstanceState)
54+ setupGlobalExceptionHandler()
4355 initViewModel()
4456 notallyXApplication = (application as NotallyXApplication )
4557 preferences = NotallyXPreferences .getInstance(notallyXApplication)
@@ -197,4 +209,10 @@ abstract class LockedActivity<T : ViewBinding> : AppCompatActivity() {
197209 }
198210 } ? : false
199211 }
212+
213+ companion object {
214+ private const val TAG = " LockedActivity"
215+ private val EXCEPTION_HANDLER_MUTEX = Mutex ()
216+ private var EXCEPTION_HANDLER_MUTEX_LAST_TIMESTAMP : Long? = null
217+ }
200218}
0 commit comments