requireContext().packageManager.getPackageInfo("org.torproject.android", 0).versionName
} catch (exception: PackageManager.NameNotFoundException) { // Orbot is not installed.
// Store an empty string.
requireContext().packageManager.getPackageInfo("org.torproject.android", 0).versionName
} catch (exception: PackageManager.NameNotFoundException) { // Orbot is not installed.
// Store an empty string.
requireContext().getString(R.string.fdroid_flavor, requireContext().packageManager.getPackageInfo("net.i2p.android.router", 0).versionName)
} catch (exception: PackageManager.NameNotFoundException) { // The F-Droid flavor is not installed.
try {
requireContext().getString(R.string.fdroid_flavor, requireContext().packageManager.getPackageInfo("net.i2p.android.router", 0).versionName)
} catch (exception: PackageManager.NameNotFoundException) { // The F-Droid flavor is not installed.
try {
requireContext().getString(R.string.google_play_flavor, requireContext().packageManager.getPackageInfo("net.i2p.android", 0).versionName)
} catch (exception: PackageManager.NameNotFoundException) { // The Google Play flavor is not installed either.
// Store an empty string.
requireContext().getString(R.string.google_play_flavor, requireContext().packageManager.getPackageInfo("net.i2p.android", 0).versionName)
} catch (exception: PackageManager.NameNotFoundException) { // The Google Play flavor is not installed either.
// Store an empty string.
requireContext().packageManager.getPackageInfo("org.sufficientlysecure.keychain", 0).versionName
} catch (exception: PackageManager.NameNotFoundException) { // OpenKeychain is not installed.
// Store an empty string.
requireContext().packageManager.getPackageInfo("org.sufficientlysecure.keychain", 0).versionName
} catch (exception: PackageManager.NameNotFoundException) { // OpenKeychain is not installed.
// Store an empty string.
// Get a handle for the clipboard manager.
val clipboardManager = (requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager)
// Get a handle for the clipboard manager.
val clipboardManager = (requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager)
val aboutVersionClipData = ClipData.newPlainText(getString(R.string.about), aboutVersionString)
// Place the clip data on the clipboard.
clipboardManager.setPrimaryClip(aboutVersionClipData)
val aboutVersionClipData = ClipData.newPlainText(getString(R.string.about), aboutVersionString)
// Place the clip data on the clipboard.
clipboardManager.setPrimaryClip(aboutVersionClipData)
- // Display a snackbar.
- Snackbar.make(aboutVersionLayout, R.string.version_info_copied, Snackbar.LENGTH_SHORT).show()
+ // Display a snackbar if the API <= 32 (Android 12L). Beginning in Android 13 the OS displays a notification that covers up the snackbar.
+ if (Build.VERSION.SDK_INT <= 32)
+ Snackbar.make(aboutVersionLayout, R.string.version_info_copied, Snackbar.LENGTH_SHORT).show()
else -> { // The home button was selected.
// Run the parents class on return.
return super.onOptionsItemSelected(menuItem)
else -> { // The home button was selected.
// Run the parents class on return.
return super.onOptionsItemSelected(menuItem)