/*
- * Copyright 2016-2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2016-2023 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
*
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
-import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
import com.google.android.material.snackbar.Snackbar
-import com.stoutner.privacybrowser.R
import com.stoutner.privacybrowser.BuildConfig
-import com.stoutner.privacybrowser.asynctasks.SaveAboutVersionImage
+import com.stoutner.privacybrowser.R
+import com.stoutner.privacybrowser.coroutines.SaveAboutVersionImageCoroutine
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
}
// Define the save about version text activity result launcher. It must be defined before `onCreate()` is run or the app will crash.
- private val saveAboutVersionTextActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { fileUri: Uri? ->
+ private val saveAboutVersionTextActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { fileUri ->
// Only save the file if the URI is not null, which happens if the user exited the file picker by pressing back.
if (fileUri != null) {
// Initialize the file name string from the file URI last path segment.
}
// Define the save about version image activity result launcher. It must be defined before `onCreate()` is run or the app will crash.
- private val saveAboutVersionImageActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("image/png")) { fileUri: Uri? ->
- // Only save the file if the URI is not null, which happens if the user exited the file picker by pressing back.
- if (fileUri != null) {
- // Save the about version image.
- SaveAboutVersionImage(requireActivity(), fileUri, aboutVersionLayout.findViewById(R.id.about_version_linearlayout)).execute()
- }
+ private val saveAboutVersionImageActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument("image/png")) { fileUri ->
+ // Save the file if the URI is not null, which happens if the user exits the file picker by pressing back.
+ if (fileUri != null)
+ SaveAboutVersionImageCoroutine.saveImage(requireActivity(), fileUri, aboutVersionLayout.findViewById(R.id.about_version_linearlayout))
}
override fun onCreate(savedInstanceState: Bundle?) {
// Setup the labels.
val version = getString(R.string.version_code, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
- val brandLabel = getString(R.string.brand) + " "
- val manufacturerLabel = getString(R.string.manufacturer) + " "
- val modelLabel = getString(R.string.model) + " "
- val deviceLabel = getString(R.string.device) + " "
- val bootloaderLabel = getString(R.string.bootloader) + " "
- val androidLabel = getString(R.string.android) + " "
- val buildLabel = getString(R.string.build) + " "
- val kernelLabel = getString(R.string.kernel) + " "
- val webViewVersionLabel = getString(R.string.webview_version) + " "
- appConsumedMemoryLabel = getString(R.string.app_consumed_memory) + " "
- appAvailableMemoryLabel = getString(R.string.app_available_memory) + " "
- appTotalMemoryLabel = getString(R.string.app_total_memory) + " "
- appMaximumMemoryLabel = getString(R.string.app_maximum_memory) + " "
- systemConsumedMemoryLabel = getString(R.string.system_consumed_memory) + " "
- systemAvailableMemoryLabel = getString(R.string.system_available_memory) + " "
- systemTotalMemoryLabel = getString(R.string.system_total_memory) + " "
- val easyListLabel = getString(R.string.easylist_label) + " "
- val easyPrivacyLabel = getString(R.string.easyprivacy_label) + " "
- val fanboyAnnoyanceLabel = getString(R.string.fanboys_annoyance_label) + " "
- val fanboySocialLabel = getString(R.string.fanboys_social_label) + " "
- val ultraListLabel = getString(R.string.ultralist_label) + " "
- val ultraPrivacyLabel = getString(R.string.ultraprivacy_label) + " "
- val issuerDNLabel = getString(R.string.issuer_dn) + " "
- val subjectDNLabel = getString(R.string.subject_dn) + " "
- val startDateLabel = getString(R.string.start_date) + " "
- val endDateLabel = getString(R.string.end_date) + " "
- val certificateVersionLabel = getString(R.string.certificate_version) + " "
- val serialNumberLabel = getString(R.string.serial_number) + " "
- val signatureAlgorithmLabel = getString(R.string.signature_algorithm) + " "
+ val brandLabel = getString(R.string.brand)
+ val manufacturerLabel = getString(R.string.manufacturer)
+ val modelLabel = getString(R.string.model)
+ val deviceLabel = getString(R.string.device)
+ val bootloaderLabel = getString(R.string.bootloader)
+ val androidLabel = getString(R.string.android)
+ val buildLabel = getString(R.string.build)
+ val kernelLabel = getString(R.string.kernel)
+ val webViewVersionLabel = getString(R.string.webview_version)
+ appConsumedMemoryLabel = getString(R.string.app_consumed_memory)
+ appAvailableMemoryLabel = getString(R.string.app_available_memory)
+ appTotalMemoryLabel = getString(R.string.app_total_memory)
+ appMaximumMemoryLabel = getString(R.string.app_maximum_memory)
+ systemConsumedMemoryLabel = getString(R.string.system_consumed_memory)
+ systemAvailableMemoryLabel = getString(R.string.system_available_memory)
+ systemTotalMemoryLabel = getString(R.string.system_total_memory)
+ val easyListLabel = getString(R.string.easylist_label)
+ val easyPrivacyLabel = getString(R.string.easyprivacy_label)
+ val fanboyAnnoyanceLabel = getString(R.string.fanboys_annoyance_label)
+ val fanboySocialLabel = getString(R.string.fanboys_social_label)
+ val ultraListLabel = getString(R.string.ultralist_label)
+ val ultraPrivacyLabel = getString(R.string.ultraprivacy_label)
+ val issuerDNLabel = getString(R.string.issuer_dn)
+ val subjectDNLabel = getString(R.string.subject_dn)
+ val startDateLabel = getString(R.string.start_date)
+ val endDateLabel = getString(R.string.end_date)
+ val certificateVersionLabel = getString(R.string.certificate_version)
+ val serialNumberLabel = getString(R.string.serial_number)
+ val signatureAlgorithmLabel = getString(R.string.signature_algorithm)
// The WebView layout is only used to get the default user agent from `bare_webview`. It is not used to render content on the screen.
// Once the minimum API >= 26 this can be accomplished with the WebView package info.
// Null must be checked because some Samsung tablets report a null value for the radio instead of an empty string. Grrrr. <https://redmine.stoutner.com/issues/701>
if (radio != null && radio.isNotEmpty()) {
// Setup the label.
- val radioLabel = getString(R.string.radio) + " "
+ val radioLabel = getString(R.string.radio)
// Create a spannable string builder.
val radioStringBuilder = SpannableStringBuilder(radioLabel + radio)
}
// Setup the label.
- val securityPatchLabel = getString(R.string.security_patch) + " "
+ val securityPatchLabel = getString(R.string.security_patch)
// Get the security patch version.
val securityPatch = Build.VERSION.SECURITY_PATCH
securityPatchTextView.text = securityPatchStringBuilder
// Create the WebView provider label.
- val webViewProviderLabel = getString(R.string.webview_provider) + " "
+ val webViewProviderLabel = getString(R.string.webview_provider)
// Get the current WebView package info.
val webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(requireContext())!!
// Only populate the Orbot text view if it is installed.
if (orbot.isNotEmpty()) {
// Setup the label.
- val orbotLabel = getString(R.string.orbot) + " "
+ val orbotLabel = getString(R.string.orbot)
// Create a spannable string builder.
val orbotStringBuilder = SpannableStringBuilder(orbotLabel + orbot)
// Only populate the I2P text view if it is installed.
if (i2p.isNotEmpty()) {
// Setup the label.
- val i2pLabel = getString(R.string.i2p) + " "
+ val i2pLabel = getString(R.string.i2p)
// Create a spannable string builder.
val i2pStringBuilder = SpannableStringBuilder(i2pLabel + i2p)
// Only populate the OpenKeychain text view if it is installed.
if (openKeychain.isNotEmpty()) {
// Setup the label.
- val openKeychainLabel = getString(R.string.openkeychain) + " "
+ val openKeychainLabel = getString(R.string.openkeychain)
// Create a spannable string builder.
val openKeychainStringBuilder = SpannableStringBuilder(openKeychainLabel + openKeychain)
updateMemoryUsageBoolean = true
}
- fun updateMemoryUsage(activity: Activity) {
+ private fun updateMemoryUsage(activity: Activity) {
try {
// Update the memory usage if enabled.
if (updateMemoryUsageBoolean) {
}
}
- fun getAboutVersionString(): String {
+ private fun getAboutVersionString(): String {
// Initialize an about version string builder.
val aboutVersionStringBuilder = StringBuilder()