]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/commitdiff
Don't populate the current domain in the new domain settings dialog. https://redmine...
authorSoren Stoutner <soren@stoutner.com>
Fri, 19 Jan 2024 22:41:53 +0000 (15:41 -0700)
committerSoren Stoutner <soren@stoutner.com>
Fri, 19 Jan 2024 22:41:53 +0000 (15:41 -0700)
app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.kt
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt
app/src/main/java/com/stoutner/privacybrowser/dialogs/AddDomainDialog.kt
app/src/main/res/layout/add_domain_dialog.xml

index 473be992cdb59e9f27d8e3f8eb3410310052e02e..96de49fa03c178f7f5042855f2dfbe90e9a8ab76 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>.
  *
@@ -49,8 +49,8 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton
 import com.google.android.material.snackbar.Snackbar
 
 import com.stoutner.privacybrowser.R
+import com.stoutner.privacybrowser.dialogs.AddDomainDialog
 import com.stoutner.privacybrowser.dialogs.AddDomainDialog.AddDomainListener
-import com.stoutner.privacybrowser.dialogs.AddDomainDialog.Companion.addDomain
 import com.stoutner.privacybrowser.fragments.DomainSettingsFragment
 import com.stoutner.privacybrowser.fragments.DomainsListFragment
 import com.stoutner.privacybrowser.fragments.DomainsListFragment.DismissSnackbarInterface
@@ -157,9 +157,6 @@ class DomainsActivity : AppCompatActivity(), AddDomainListener, DismissSnackbarI
         // Get the status of close-on-back, which is true when the domains activity is called from the options menu.
         closeOnBack = intent.getBooleanExtra(CLOSE_ON_BACK, false)
 
-        // Get the current URL.
-        val currentUrl = intent.getStringExtra(CURRENT_URL)
-
         // Store the current SSL certificate information in class variables.
         sslIssuedToCName = intent.getStringExtra(SSL_ISSUED_TO_CNAME)
         sslIssuedToOName = intent.getStringExtra(SSL_ISSUED_TO_ONAME)
@@ -200,7 +197,7 @@ class DomainsActivity : AppCompatActivity(), AddDomainListener, DismissSnackbarI
         // Configure the add domain floating action button.
         addDomainFAB.setOnClickListener {
             // Create an add domain dialog.
-            val addDomainDialog: DialogFragment = addDomain(currentUrl)
+            val addDomainDialog: DialogFragment = AddDomainDialog()
 
             // Show the add domain dialog.
             addDomainDialog.show(supportFragmentManager, resources.getString(R.string.add_domain))
index ed6ecb36ac89fd847a21bde9a5c4a826bbaafe0f..0d9755f1f21d2621716c6f678ad5d3da6f025332 100644 (file)
@@ -2114,7 +2114,6 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
                     // Add the extra information to the intent.
                     domainsIntent.putExtra(LOAD_DOMAIN, currentWebView!!.domainSettingsDatabaseId)
                     domainsIntent.putExtra(CLOSE_ON_BACK, true)
-                    domainsIntent.putExtra(CURRENT_URL, currentWebView!!.url)
                     domainsIntent.putExtra(CURRENT_IP_ADDRESSES, currentWebView!!.currentIpAddresses)
 
                     // Get the current certificate.
@@ -2271,7 +2270,6 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
                     // Add the extra information to the intent.
                     domainsIntent.putExtra(LOAD_DOMAIN, newDomainDatabaseId)
                     domainsIntent.putExtra(CLOSE_ON_BACK, true)
-                    domainsIntent.putExtra(CURRENT_URL, currentWebView!!.url)
                     domainsIntent.putExtra(CURRENT_IP_ADDRESSES, currentWebView!!.currentIpAddresses)
 
                     // Get the current certificate.
@@ -2488,7 +2486,6 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
                 val domainsIntent = Intent(this, DomainsActivity::class.java)
 
                 // Add the extra information to the intent.
-                domainsIntent.putExtra(CURRENT_URL, currentWebView!!.url)
                 domainsIntent.putExtra(CURRENT_IP_ADDRESSES, currentWebView!!.currentIpAddresses)
 
                 // Get the current certificate.
index 00d281afcfcfc24465be27107aa69726753d0956..309a615c5d81764c4b00eec67056f70d7625bb47 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>.
  *
@@ -22,7 +22,6 @@ package com.stoutner.privacybrowser.dialogs
 import android.app.Dialog
 import android.content.Context
 import android.content.DialogInterface
-import android.net.Uri
 import android.os.Bundle
 import android.text.Editable
 import android.text.TextWatcher
@@ -39,9 +38,6 @@ import androidx.preference.PreferenceManager
 import com.stoutner.privacybrowser.R
 import com.stoutner.privacybrowser.helpers.DomainsDatabaseHelper
 
-// Define the class constants.
-private const val URL_STRING = "url_string"
-
 class AddDomainDialog : DialogFragment() {
     // Declare the class variables
     private lateinit var addDomainListener: AddDomainListener
@@ -59,32 +55,7 @@ class AddDomainDialog : DialogFragment() {
         addDomainListener = context as AddDomainListener
     }
 
-    companion object {
-        fun addDomain(urlString: String?): AddDomainDialog {
-            // Create an arguments bundle.
-            val argumentsBundle = Bundle()
-
-            // Store the URL in the bundle.
-            argumentsBundle.putString(URL_STRING, urlString)
-
-            // Create a new instance of the dialog.
-            val addDomainDialog = AddDomainDialog()
-
-            // Add the arguments bundle to the dialog.
-            addDomainDialog.arguments = argumentsBundle
-
-            // Return the new dialog.
-            return addDomainDialog
-        }
-    }
-
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        // Get the arguments.
-        val arguments = requireArguments()
-
-        // Get the URL from the bundle.
-        val urlString = arguments.getString(URL_STRING)
-
         // Use an alert dialog builder to create the alert dialog.
         val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
 
@@ -131,6 +102,9 @@ class AddDomainDialog : DialogFragment() {
         val domainNameAlreadyExistsTextView = alertDialog.findViewById<TextView>(R.id.domain_name_already_exists_textview)!!
         val addButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
 
+        // Initially disable the add button.
+        addButton.isEnabled = false
+
         //  Update the status of the warning text and the add button when the domain name changes.
         addDomainEditText.addTextChangedListener(object: TextWatcher {
             override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
@@ -141,7 +115,7 @@ class AddDomainDialog : DialogFragment() {
                 // Do nothing.
             }
 
-            override fun afterTextChanged(s: Editable) {
+            override fun afterTextChanged(editable: Editable) {
                 if (domainsDatabaseHelper.getCursorForDomainName(addDomainEditText.text.toString()).count > 0) {  // The domain already exists.
                     // Show the warning text.
                     domainNameAlreadyExistsTextView.visibility = View.VISIBLE
@@ -152,18 +126,12 @@ class AddDomainDialog : DialogFragment() {
                     // Hide the warning text.
                     domainNameAlreadyExistsTextView.visibility = View.GONE
 
-                    // Enable the add button.
-                    addButton.isEnabled = true
+                    // Enable the add button if the domain name is not empty.
+                    addButton.isEnabled = editable.isNotEmpty()
                 }
             }
         })
 
-        // Convert the URL string to a URI.
-        val currentUri = Uri.parse(urlString)
-
-        // Display the host in the add domain edit text.
-        addDomainEditText.setText(currentUri.host)
-
         // Allow the enter key on the keyboard to create the domain from the add domain edit text.
         addDomainEditText.setOnKeyListener { _: View, keyCode: Int, keyEvent: KeyEvent ->
             // Check the key code and event.
index 557103cf4b744b874ff38df92d7e9382a0b9018e..ed814f187a1fb68ab21b3eea321f124d0b88d30b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!--
-  Copyright 2017,2019-2020,2022 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2017, 2019-2020, 2022, 2024 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
 
@@ -43,6 +43,7 @@
             android:selectAllOnFocus="true" />
     </com.google.android.material.textfield.TextInputLayout>
 
+    <!-- The domain name already exists textview is initially not visible. -->
     <TextView
         android:id="@+id/domain_name_already_exists_textview"
         android:layout_height="wrap_content"
@@ -50,5 +51,6 @@
         android:text="@string/domain_name_already_exists"
         android:textColor="@color/red_text"
         android:layout_marginStart="8dp"
-        android:layout_marginEnd="8dp" />
+        android:layout_marginEnd="8dp"
+        android:visibility="gone" />
 </LinearLayout>