]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/activities/ViewHeadersActivity.kt
Bump the minimum API to 26. https://redmine.stoutner.com/issues/1163
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / activities / ViewHeadersActivity.kt
index ce86183b021b79f83053a1f276a759ba59cb6390..b18365a5954362eef3e67a53815ffc806462f8d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017-2023 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2017-2024 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
  *
@@ -37,7 +37,6 @@ import android.view.View
 import android.view.View.OnFocusChangeListener
 import android.view.WindowManager
 import android.view.inputmethod.InputMethodManager
-import android.widget.Button
 import android.widget.EditText
 import android.widget.ProgressBar
 import android.widget.TextView
@@ -46,6 +45,7 @@ import androidx.activity.result.contract.ActivityResultContracts
 import androidx.appcompat.app.ActionBar
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.widget.Toolbar
+import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.core.app.NavUtils
 import androidx.lifecycle.ViewModelProvider
 import androidx.preference.PreferenceManager
@@ -90,8 +90,7 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
     private lateinit var urlEditText: EditText
     private lateinit var sslInformationTitleTextView: TextView
     private lateinit var sslInformationTextView: TextView
-    private lateinit var ciphersButton: Button
-    private lateinit var certificateButton: Button
+    private lateinit var sslButtonsConstraintLayout: ConstraintLayout
     private lateinit var requestHeadersTitleTextView: TextView
     private lateinit var requestHeadersTextView: TextView
     private lateinit var responseMessageTitleTextView: TextView
@@ -105,23 +104,17 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
     private val saveTextActivityResultLauncher = 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.
-            var fileNameString = fileUri.lastPathSegment
+            // Get a cursor from the content resolver.
+            val contentResolverCursor = contentResolver.query(fileUri, null, null, null)!!
 
-            // Query the exact file name if the API >= 26.
-            if (Build.VERSION.SDK_INT >= 26) {
-                // Get a cursor from the content resolver.
-                val contentResolverCursor = contentResolver.query(fileUri, null, null, null)!!
+            // Move to the first row.
+            contentResolverCursor.moveToFirst()
 
-                // Move to the first row.
-                contentResolverCursor.moveToFirst()
+            // Get the file name from the cursor.
+            val fileNameString = contentResolverCursor.getString(contentResolverCursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))
 
-                // Get the file name from the cursor.
-                fileNameString = contentResolverCursor.getString(contentResolverCursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))
-
-                // Close the cursor.
-                contentResolverCursor.close()
-            }
+            // Close the cursor.
+            contentResolverCursor.close()
 
             try {
                 // Get the about version string.
@@ -201,8 +194,7 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
         val swipeRefreshLayout = findViewById<SwipeRefreshLayout>(R.id.swiperefreshlayout)
         sslInformationTitleTextView = findViewById(R.id.ssl_information_title_textview)
         sslInformationTextView = findViewById(R.id.ssl_information_textview)
-        ciphersButton = findViewById(R.id.ciphers_button)
-        certificateButton = findViewById(R.id.certificate_button)
+        sslButtonsConstraintLayout = findViewById(R.id.ssl_buttons_constraintlayout)
         requestHeadersTitleTextView = findViewById(R.id.request_headers_title_textview)
         requestHeadersTextView = findViewById(R.id.request_headers_textview)
         responseMessageTitleTextView = findViewById(R.id.response_message_title_textview)
@@ -452,7 +444,7 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
 
                 // 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(urlEditText, R.string.version_info_copied, Snackbar.LENGTH_SHORT).show()
+                    Snackbar.make(urlEditText, R.string.headers_copied, Snackbar.LENGTH_SHORT).show()
 
                 // Consume the event.
                 return true
@@ -595,8 +587,7 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
             // Hide the unused views.
             sslInformationTitleTextView.visibility = View.GONE
             sslInformationTextView.visibility = View.GONE
-            ciphersButton.visibility = View.GONE
-            certificateButton.visibility = View.GONE
+            sslButtonsConstraintLayout.visibility = View.GONE
             requestHeadersTitleTextView.visibility = View.GONE
             requestHeadersTextView.visibility = View.GONE
             responseMessageTitleTextView.visibility = View.GONE
@@ -611,14 +602,12 @@ class ViewHeadersActivity: AppCompatActivity(), UntrustedSslCertificateListener
                 // Hide the SSL information views.
                 sslInformationTitleTextView.visibility = View.GONE
                 sslInformationTextView.visibility = View.GONE
-                ciphersButton.visibility = View.GONE
-                certificateButton.visibility = View.GONE
+                sslButtonsConstraintLayout.visibility = View.GONE
             } else {  // This is not an HTTP URL.
                 // Show the SSL information views.
                 sslInformationTitleTextView.visibility = View.VISIBLE
                 sslInformationTextView.visibility = View.VISIBLE
-                ciphersButton.visibility = View.VISIBLE
-                certificateButton.visibility = View.VISIBLE
+                sslButtonsConstraintLayout.visibility = View.VISIBLE
             }
 
             // Show the other views.