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

47 lines
1.7 KiB
Kotlin

package me.lucky.wasted.trigger.panic
import android.content.pm.PackageManager
import android.os.Bundle
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.guardianproject.panic.PanicResponder
import me.lucky.wasted.MainActivity
import me.lucky.wasted.R
class PanicConnectionActivity : MainActivity() {
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 = packageManager
.getApplicationLabel(packageManager.getApplicationInfo(packageName, 0))
} catch (exc: PackageManager.NameNotFoundException) {}
}
MaterialAlertDialogBuilder(this)
.setTitle(R.string.panic_app_dialog_title)
.setMessage(getString(R.string.panic_app_dialog_message, app))
.setNegativeButton(R.string.allow) { _, _ ->
PanicResponder.setTriggerPackageName(this@PanicConnectionActivity)
setResult(RESULT_OK)
}
.setPositiveButton(android.R.string.cancel) { _, _ ->
setResult(RESULT_CANCELED)
finish()
}
.show()
}
}