]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java
Use WebView's new built-in dark theme. https://redmine.stoutner.com/issues/366
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / adapters / WebViewPagerAdapter.java
index 0a5aff1fd82ea25ff0f3c319a880afd5bfd5d1eb..535512a5ebb4fd40cc427f2cdfdafa43816438a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2019-2020 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
  *
@@ -59,6 +59,7 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter {
     }
 
     @Override
+    @NonNull
     public Fragment getItem(int pageNumber) {
         // Get the fragment for a particular page.  Page numbers are 0 indexed.
         return webViewFragmentsList.get(pageNumber);
@@ -89,19 +90,26 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter {
             i++;
         }
 
+        // Set the position to be the last tab if it is not found.
+        // Sometimes there is a race condition in populating the webView fragments list when resuming Privacy Browser and displaying an SSL certificate error while loading a new intent.
+        // In that case, the last tab should be the one it is looking for.
+        if (position == -1) {
+            position = webViewFragmentsList.size() - 1;
+        }
+
         // Return the position.
         return position;
     }
 
-    public void addPage(int pageNumber, ViewPager webViewPager) {
+    public void addPage(int pageNumber, ViewPager webViewPager, String url, boolean moveToTab) {
         // Add a new page.
-        webViewFragmentsList.add(WebViewTabFragment.createPage(pageNumber));
+        webViewFragmentsList.add(WebViewTabFragment.createPage(pageNumber, url));
 
         // Update the view pager.
         notifyDataSetChanged();
 
         // Move to the new page if it isn't the first one.
-        if (pageNumber > 0) {
+        if (pageNumber > 0 && moveToTab) {
             webViewPager.setCurrentItem(pageNumber);
         }
     }