X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Ffragments%2FAboutVersionFragment.kt;h=f134d5e12538eeff76873b506bf29ea60633768e;hp=4a9869c44dc0e6715a703e8d1228a9d25022477f;hb=ab11ca2de00c56982e46627c8e7fc670462b0b3c;hpb=d53f0640263cf0799e7304fa459864c542ab0d2a diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt index 4a9869c4..f134d5e1 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt @@ -154,15 +154,15 @@ class AboutVersionFragment : Fragment() { } // 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()) { fileNameUri: Uri? -> + private val saveAboutVersionTextActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument()) { 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 (fileNameUri != null) { + if (fileUri != null) { try { // Get the about version string. val aboutVersionString = getAboutVersionString() // Open an output stream. - val outputStream = requireActivity().contentResolver.openOutputStream(fileNameUri)!! + val outputStream = requireActivity().contentResolver.openOutputStream(fileUri)!! // Write the about version string to the output stream. outputStream.write(aboutVersionString.toByteArray(StandardCharsets.UTF_8)) @@ -170,19 +170,19 @@ class AboutVersionFragment : Fragment() { // Close the output stream. outputStream.close() - // Initialize the file name string from the file name URI last path segment. - var fileNameString = fileNameUri.lastPathSegment + // Initialize the file name string from the file URI last path segment. + var fileNameString = fileUri.lastPathSegment // Query the exact file name if the API >= 26. if (Build.VERSION.SDK_INT >= 26) { // Get a cursor from the content resolver. - val contentResolverCursor = requireActivity().contentResolver.query(fileNameUri, null, null, null)!! + val contentResolverCursor = requireActivity().contentResolver.query(fileUri, null, null, null)!! // Move to the first row. contentResolverCursor.moveToFirst() // Get the file name from the cursor. - fileNameString = contentResolverCursor.getString(contentResolverCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)) + fileNameString = contentResolverCursor.getString(contentResolverCursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)) // Close the cursor. contentResolverCursor.close() @@ -198,11 +198,11 @@ class AboutVersionFragment : Fragment() { } // 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()) { fileNameUri: Uri? -> + private val saveAboutVersionImageActivityResultLauncher = registerForActivityResult(ActivityResultContracts.CreateDocument()) { 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 (fileNameUri != null) { + if (fileUri != null) { // Save the about version image. - SaveAboutVersionImage(requireActivity(), fileNameUri, aboutVersionLayout.findViewById(R.id.about_version_linearlayout)).execute() + SaveAboutVersionImage(requireActivity(), fileUri, aboutVersionLayout.findViewById(R.id.about_version_linearlayout)).execute() } } @@ -357,7 +357,7 @@ class AboutVersionFragment : Fragment() { val ultraPrivacyStringBuilder = SpannableStringBuilder(ultraPrivacyLabel + blocklistVersions[5]) // Set the blue color span according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23. - blueColorSpan = ForegroundColorSpan(resources.getColor(R.color.about_version_blue_text)) + blueColorSpan = ForegroundColorSpan(requireContext().getColor(R.color.about_version_blue_text)) // Set the spans to display the device information in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction. brandStringBuilder.setSpan(blueColorSpan, brandLabel.length, brandStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) @@ -411,50 +411,38 @@ class AboutVersionFragment : Fragment() { radioTextView.visibility = View.GONE } - // Build.VERSION.SECURITY_PATCH is only available for SDK_INT >= 23. - if (Build.VERSION.SDK_INT >= 23) { - // Setup the label. - val securityPatchLabel = getString(R.string.security_patch) + " " + // Setup the label. + val securityPatchLabel = getString(R.string.security_patch) + " " - // Get the security patch version. - val securityPatch = Build.VERSION.SECURITY_PATCH + // Get the security patch version. + val securityPatch = Build.VERSION.SECURITY_PATCH - // Create a spannable string builder. - val securityPatchStringBuilder = SpannableStringBuilder(securityPatchLabel + securityPatch) + // Create a spannable string builder. + val securityPatchStringBuilder = SpannableStringBuilder(securityPatchLabel + securityPatch) - // Set the span to display the security patch version in blue. - securityPatchStringBuilder.setSpan(blueColorSpan, securityPatchLabel.length, securityPatchStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + // Set the span to display the security patch version in blue. + securityPatchStringBuilder.setSpan(blueColorSpan, securityPatchLabel.length, securityPatchStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) - // Display the string in the text view. - securityPatchTextView.text = securityPatchStringBuilder - } else { // The API < 23. - // Hide the security patch text view. - securityPatchTextView.visibility = View.GONE - } + // Display the string in the text view. + securityPatchTextView.text = securityPatchStringBuilder - // Only populate the WebView provider if the SDK >= 21. - if (Build.VERSION.SDK_INT >= 21) { - // Create the WebView provider label. - val webViewProviderLabel = getString(R.string.webview_provider) + " " + // Create the WebView provider label. + val webViewProviderLabel = getString(R.string.webview_provider) + " " - // Get the current WebView package info. - val webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(requireContext())!! + // Get the current WebView package info. + val webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(requireContext())!! - // Get the WebView provider name. - val webViewPackageName = webViewPackageInfo.packageName + // Get the WebView provider name. + val webViewPackageName = webViewPackageInfo.packageName - // Create the spannable string builder. - val webViewProviderStringBuilder = SpannableStringBuilder(webViewProviderLabel + webViewPackageName) + // Create the spannable string builder. + val webViewProviderStringBuilder = SpannableStringBuilder(webViewProviderLabel + webViewPackageName) - // Apply the coloration. - webViewProviderStringBuilder.setSpan(blueColorSpan, webViewProviderLabel.length, webViewProviderStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + // Apply the coloration. + webViewProviderStringBuilder.setSpan(blueColorSpan, webViewProviderLabel.length, webViewProviderStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) - // Display the WebView provider. - webViewProviderTextView.text = webViewProviderStringBuilder - } else { // The API < 21. - // Hide the WebView provider text view. - webViewProviderTextView.visibility = View.GONE - } + // Display the WebView provider. + webViewProviderTextView.text = webViewProviderStringBuilder // Only populate the Orbot text view if it is installed. if (orbot.isNotEmpty()) {