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) {}
|
|
|
|
}
|
|
|
|
|
2022-01-02 16:33:01 -07:00
|
|
|
AlertDialog.Builder(this)
|
|
|
|
.setTitle(getString(R.string.panic_app_dialog_title))
|
|
|
|
.setMessage(String.format(getString(R.string.panic_app_dialog_message), app))
|
|
|
|
.setNegativeButton(R.string.allow) { _, _ ->
|
2021-12-19 16:08:21 -07:00
|
|
|
PanicResponder.setTriggerPackageName(this@PanicConnectionActivity)
|
|
|
|
setResult(RESULT_OK)
|
|
|
|
}
|
2022-01-02 16:33:01 -07:00
|
|
|
.setPositiveButton(R.string.cancel) { _, _ ->
|
2021-12-19 16:08:21 -07:00
|
|
|
setResult(RESULT_CANCELED)
|
|
|
|
finish()
|
|
|
|
}
|
2022-01-02 16:33:01 -07:00
|
|
|
.show()
|
2021-12-19 16:08:21 -07:00
|
|
|
}
|
|
|
|
}
|