in CodeTransparencyKotlin/app/src/main/java/com/example/codetransparencyverification/MainActivity.kt [35:70]
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater).apply {
packageName.setText(applicationContext.packageName)
verifyButton.setOnClickListener {
val packageInfo: PackageInfo? = getPackageInfo()
if (packageInfo == null) {
binding.verificationResult.text =
getString(R.string.package_not_found, packageName)
} else {
viewModel.fetchCodeTransparency(packageInfo)
}
}
setContentView(root)
}
lifecycleScope.launchWhenStarted {
viewModel.state.collect { result ->
val logs = StringBuilder()
logs.appendLine(getString(R.string.public_key_certificates))
result
.apkSigningKeyCertificateFingerprints
.forEach { certFingerprint -> logs.appendLine(certFingerprint) }
if (result.isVerified) {
logs
.appendLine(getString(R.string.code_transparency_verified))
.appendLine(result.transparencyKeyCertificateFingerprint)
} else {
logs.appendLine(result.errorMessage)
}
binding.verificationResult.text = logs.toString()
}
}
}