- // Update the status of the save button when the file name changes.
- fileNameEditText.addTextChangedListener(object : TextWatcher {
- override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
+ // Populate the views.
+ fileSizeTextView.text = fileSizeString
+ fileNameEditText.text = fileNameString
+
+ // Populate the URL edit text according to the type. This must be done before the text change listener is created below so that the file size isn't requested again.
+ if (originalUrlString.startsWith("data:")) { // The URL contains the entire data of an image.
+ // Get a substring of the data URL with the first 100 characters. Otherwise, the user interface will freeze while trying to layout the edit text.
+ val urlSubstring = originalUrlString.substring(0, 100) + "…"
+
+ // Populate the URL edit text with the truncated URL.
+ urlEditText.setText(urlSubstring)
+
+ // Disable the editing of the URL edit text.
+ urlEditText.inputType = InputType.TYPE_NULL
+
+ // Display the warning if using Android's download manager.
+ if (!privacyBrowserDownloadProvider) {
+ // Display the data URL warning.
+ dataUrlWarningTextView.visibility = View.VISIBLE
+
+ // Disable the save button.
+ saveButton.isEnabled = false
+ }
+ } else { // The URL contains a reference to the location of the data.
+ // Populate the URL edit text with the full URL.
+ urlEditText.setText(originalUrlString)
+ }
+
+ // Handle blob URLs.
+ if (originalUrlString.startsWith("blob:")) {
+ // Display the blob URL warning.
+ blobUrlWarningTextView.visibility = View.VISIBLE
+
+ // Disable the save button.
+ saveButton.isEnabled = false
+ }
+
+ // Update the UI when the URL changes.
+ urlEditText.addTextChangedListener(object : TextWatcher {
+ override fun beforeTextChanged(charSequence: CharSequence?, start: Int, count: Int, after: Int) {