]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/asynctasks/GetUrlSize.java
Update the URL in the copyright header. https://redmine.stoutner.com/issues/796
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / asynctasks / GetUrlSize.java
index 74968df9508599744504dec070bf568297ef992c..2f645baa089f608857735f0742fb52dfb5979841 100644 (file)
@@ -1,30 +1,31 @@
 /*
- * Copyright © 2020 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2020-2022 Soren Stoutner <soren@stoutner.com>.
  *
- * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+ * This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
  *
- * Privacy Browser is free software: you can redistribute it and/or modify
+ * Privacy Browser Android is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
- * Privacy Browser is distributed in the hope that it will be useful,
+ * Privacy Browser Android is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>.
+ * along with Privacy Browser Android.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package com.stoutner.privacybrowser.asynctasks;
 
-import android.app.AlertDialog;
 import android.content.Context;
 import android.os.AsyncTask;
 import android.webkit.CookieManager;
 import android.widget.TextView;
 
+import androidx.appcompat.app.AlertDialog;
+
 import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.helpers.ProxyHelper;
 
@@ -35,17 +36,17 @@ import java.net.URL;
 import java.text.NumberFormat;
 
 public class GetUrlSize extends AsyncTask<String, Void, String> {
-    // Define a weak reference for the calling context and fragment.
-    private WeakReference<Context> contextWeakReference;
-    private WeakReference<AlertDialog> alertDialogWeakReference;
+    // Define weak references for the calling context and alert dialog.
+    private final WeakReference<Context> contextWeakReference;
+    private final WeakReference<AlertDialog> alertDialogWeakReference;
 
     // Define the class variables.
-    private String userAgent;
-    private boolean cookiesEnabled;
+    private final String userAgent;
+    private final boolean cookiesEnabled;
 
     // The public constructor.
     public GetUrlSize(Context context, AlertDialog alertDialog, String userAgent, boolean cookiesEnabled) {
-        // Populate the week references to the calling activity and fragment.
+        // Populate the week references for the context and alert dialog.
         contextWeakReference = new WeakReference<>(context);
         alertDialogWeakReference = new WeakReference<>(alertDialog);
 
@@ -68,7 +69,7 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
         // Initialize the formatted file size string.
         String formattedFileSize = context.getString(R.string.unknown_size);
 
-        // Because everything relating to requesting data from a webserver can throw errors, the entire section much catch `IOExceptions`.
+        // Because everything relating to requesting data from a webserver can throw errors, the entire section must catch exceptions.
         try {
             // Get the URL from the calling fragment.
             URL url = new URL(urlToSave[0]);
@@ -87,7 +88,7 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
 
             // Add the cookies if they are enabled.
             if (cookiesEnabled) {
-                // Ge the cookies for the current domain.
+                // Get the cookies for the current domain.
                 String cookiesString = CookieManager.getInstance().getCookie(url.toString());
 
                 // Only add the cookies if they are not null.
@@ -108,7 +109,7 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
                     return formattedFileSize;
                 }
 
-                // Get the status code.
+                // Get the status code.  This initiates a network connection.
                 int responseCode = httpUrlConnection.getResponseCode();
 
                 // Exit if the task has been cancelled.
@@ -128,13 +129,10 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
                     // Get the content length header.
                     String contentLengthString = httpUrlConnection.getHeaderField("Content-Length");
 
-                    // Define the file size long.
-                    long fileSize;
-
-                    // Make sure the content length isn't null.
-                    if (contentLengthString != null) {  // The content length isn't null.
-                        // Convert the content length to a long.
-                        fileSize = Long.parseLong(contentLengthString);
+                    // Only process the content length string if it isn't null.
+                    if (contentLengthString != null) {
+                        // Convert the content length string to a long.
+                        long fileSize = Long.parseLong(contentLengthString);
 
                         // Format the file size.
                         formattedFileSize = NumberFormat.getInstance().format(fileSize) + " " + context.getString(R.string.bytes);
@@ -156,7 +154,7 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
     // `onPostExecute()` operates on the UI thread.
     @Override
     protected void onPostExecute(String fileSize) {
-        // Get a handle for the context and alert dialog.
+        // Get a handle for the alert dialog.
         AlertDialog alertDialog = alertDialogWeakReference.get();
 
         // Abort if the alert dialog is gone.
@@ -167,6 +165,9 @@ public class GetUrlSize extends AsyncTask<String, Void, String> {
         // Get a handle for the file size text view.
         TextView fileSizeTextView = alertDialog.findViewById(R.id.file_size_textview);
 
+        // Remove the incorrect warning below that the file size text view might be null.
+        assert fileSizeTextView != null;
+
         // Update the file size.
         fileSizeTextView.setText(fileSize);
     }