]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/asynctasks/GetUrlSize.java
Redesign file access to work with the scoped storage. https://redmine.stoutner.com...
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / asynctasks / GetUrlSize.java
index 74968df9508599744504dec070bf568297ef992c..f85952e270a6dfe247dd6167f6d71c029934d54b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2020 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2020-2021 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
  *
 
 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);
     }