Teach resource requests to be tab aware.
[PrivacyBrowser.git] / app / src / main / java / com / stoutner / privacybrowser / activities / RequestsActivity.java
index 4c42db79f13af2eccf8e842c03fd52d8a26d35f1..4d2201be6e1ee750167575b4fcec317e09c6bed2 100644 (file)
 package com.stoutner.privacybrowser.activities;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.AdapterView;
@@ -40,23 +42,34 @@ import androidx.fragment.app.DialogFragment;
 import com.stoutner.privacybrowser.R;
 import com.stoutner.privacybrowser.adapters.RequestsArrayAdapter;
 import com.stoutner.privacybrowser.dialogs.ViewRequestDialog;
+import com.stoutner.privacybrowser.helpers.BlockListHelper;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class RequestsActivity extends AppCompatActivity implements ViewRequestDialog.ViewRequestListener {
+    // The resource requests are populated by `MainWebViewActivity` before `RequestsActivity` is launched.
+    public static ArrayList<String[]> resourceRequests;
+
     // The list view is used in `onCreate()` and `launchViewRequestDialog()`.
     private ListView requestsListView;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
+        // Get a handle for the shared preferences.
+        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+
+        // Get the screenshot and theme preferences.
+        boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+        boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+
         // Disable screenshots if not allowed.
-        if (!MainWebViewActivity.allowScreenshots) {
+        if (!allowScreenshots) {
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
         }
 
         // Set the activity theme.
-        if (MainWebViewActivity.darkTheme) {
+        if (darkTheme) {
             setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
         } else {
             setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
@@ -68,7 +81,7 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
         // Set the content view.
         setContentView(R.layout.requests_coordinatorlayout);
 
-        // Use the AndroidX toolbar from until the minimum API is >= 21.
+        // Use the AndroidX toolbar until the minimum API is >= 21.
         Toolbar toolbar = findViewById(R.id.requests_toolbar);
         setSupportActionBar(toolbar);
 
@@ -91,9 +104,9 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
         List<String[]> blockedResourceRequests = new ArrayList<>();
 
         // Populate the resource array lists.
-        for (String[] request : MainWebViewActivity.resourceRequests) {
-            switch (Integer.valueOf(request[MainWebViewActivity.REQUEST_DISPOSITION])) {
-                case MainWebViewActivity.REQUEST_DEFAULT:
+        for (String[] request : resourceRequests) {
+            switch (request[BlockListHelper.REQUEST_DISPOSITION]) {
+                case BlockListHelper.REQUEST_DEFAULT:
                     // Add the request to the list of all requests.
                     allResourceRequests.add(request);
 
@@ -101,7 +114,7 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
                     defaultResourceRequests.add(request);
                     break;
 
-                case MainWebViewActivity.REQUEST_ALLOWED:
+                case BlockListHelper.REQUEST_ALLOWED:
                     // Add the request to the list of all requests.
                     allResourceRequests.add(request);
 
@@ -109,7 +122,7 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
                     allowedResourceRequests.add(request);
                     break;
 
-                case MainWebViewActivity.REQUEST_THIRD_PARTY:
+                case BlockListHelper.REQUEST_THIRD_PARTY:
                     // Add the request to the list of all requests.
                     allResourceRequests.add(request);
 
@@ -117,7 +130,7 @@ public class RequestsActivity extends AppCompatActivity implements ViewRequestDi
                     thirdPartyResourceRequests.add(request);
                     break;
 
-                case MainWebViewActivity.REQUEST_BLOCKED:
+                case BlockListHelper.REQUEST_BLOCKED:
                     // Add the request to the list of all requests.
                     allResourceRequests.add(request);