X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fadapters%2FWebViewPagerAdapter.java;h=535512a5ebb4fd40cc427f2cdfdafa43816438a0;hp=256e654236d7fe5b0ed7fdb0e7680c9882d0b0bb;hb=0488649384ddea89d768c1fc1cc5fb71f8af6528;hpb=7dcfe46842e801486a3696bea379602350e6891a diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java index 256e6542..535512a5 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Soren Stoutner . + * Copyright © 2019-2020 Soren Stoutner . * * This file is part of 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,11 +90,18 @@ 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, String url) { + public void addPage(int pageNumber, ViewPager webViewPager, String url, boolean moveToTab) { // Add a new page. webViewFragmentsList.add(WebViewTabFragment.createPage(pageNumber, url)); @@ -101,7 +109,7 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter { notifyDataSetChanged(); // Move to the new page if it isn't the first one. - if (pageNumber > 0) { + if (pageNumber > 0 && moveToTab) { webViewPager.setCurrentItem(pageNumber); } }