Wasted/app/src/main/java/me/lucky/wasted/PanicConnectionActivity.kt

49 lines
1.6 KiB
Kotlin
Raw Normal View History

2021-12-19 16:08:21 -07:00
package me.lucky.wasted
import android.content.pm.PackageManager
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import info.guardianproject.panic.PanicResponder
class PanicConnectionActivity : MainActivity() {
private val pm by lazy { packageManager }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (PanicResponder.checkForDisconnectIntent(this)) {
finish()
return
}
val sender = PanicResponder.getConnectIntentSender(this)
val packageName = PanicResponder.getTriggerPackageName(this)
if (sender != "" && sender != packageName) {
showOptInDialog()
}
}
private fun showOptInDialog() {
var app: CharSequence = getString(R.string.panic_app_unknown_app)
val packageName = callingActivity?.packageName
if (packageName != null) {
try {
app = pm.getApplicationLabel(pm.getApplicationInfo(packageName, 0))
} catch (exc: PackageManager.NameNotFoundException) {}
}
AlertDialog.Builder(this).apply {
setTitle(getString(R.string.panic_app_dialog_title))
setMessage(String.format(getString(R.string.panic_app_dialog_message), app))
setNegativeButton(R.string.allow) { _, _ ->
PanicResponder.setTriggerPackageName(this@PanicConnectionActivity)
setResult(RESULT_OK)
}
setPositiveButton(R.string.cancel) { _, _ ->
setResult(RESULT_CANCELED)
finish()
}
show()
}
}
}