Enable the thread police 👮 for debug builds

* App will now crash if someone does funky stuff on the main thread.

Change-Id: I9026c100705f2fec6963a1d888b40906186f9d28
pull/1050/head
Ben Weiss 1 year ago
parent 4a0723441f
commit e8035622b3
No known key found for this signature in database
GPG Key ID: 8424F9C1E763A74C

@ -17,6 +17,8 @@
package com.google.samples.apps.nowinandroid
import android.app.Application
import android.content.pm.ApplicationInfo
import android.os.StrictMode
import coil.ImageLoader
import coil.ImageLoaderFactory
import com.google.samples.apps.nowinandroid.sync.initializers.Sync
@ -37,10 +39,25 @@ class NiaApplication : Application(), ImageLoaderFactory {
override fun onCreate() {
super.onCreate()
// Kill NiA if there are main thread policy violations and log the offending call.
if (isDebuggable()) {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build(),
)
}
// Initialize Sync; the system responsible for keeping data in the app up to date.
Sync.initialize(context = this)
profileVerifierLogger()
}
override fun newImageLoader(): ImageLoader = imageLoader.get()
/**
* Check if the application is debuggable.
*/
private fun isDebuggable(): Boolean {
return 0 != applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE
}
}

Loading…
Cancel
Save