]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java
Add share, copy, and save options to About > Version. https://redmine.stoutner.com...
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / adapters / WebViewPagerAdapter.java
index da8e6729a74700eacad960ed98df0720afb4565e..e6c831653e84c200ce4903ea4c678f03911073e3 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>.
  *
@@ -19,6 +19,8 @@
 
 package com.stoutner.privacybrowser.adapters;
 
+import android.os.Bundle;
+
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
@@ -34,9 +36,9 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter {
     private LinkedList<WebViewTabFragment> webViewFragmentsList = new LinkedList<>();
 
     // Define the constructor.
-    public WebViewPagerAdapter(FragmentManager fragmentManager){
+    public WebViewPagerAdapter(FragmentManager fragmentManager) {
         // Run the default commands.
-        super(fragmentManager);
+        super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
     }
 
     @Override
@@ -59,6 +61,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);
@@ -100,19 +103,27 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter {
         return position;
     }
 
-    public void addPage(int pageNumber, ViewPager webViewPager, String url) {
+    public void addPage(int pageNumber, ViewPager webViewPager, String url, boolean moveToNewPage) {
         // Add a new page.
         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) {
+        // Move to the new page if indicated.
+        if (moveToNewPage) {
             webViewPager.setCurrentItem(pageNumber);
         }
     }
 
+    public void restorePage(Bundle savedState, Bundle savedNestedScrollWebViewState) {
+        // Restore the page.
+        webViewFragmentsList.add(WebViewTabFragment.restorePage(savedState, savedNestedScrollWebViewState));
+
+        // Update the view pager.
+        notifyDataSetChanged();
+    }
+
     public boolean deletePage(int pageNumber, ViewPager webViewPager) {
         // Delete the page.
         webViewFragmentsList.remove(pageNumber);
@@ -125,6 +136,7 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter {
     }
 
     public WebViewTabFragment getPageFragment(int pageNumber) {
+        // Return the page fragment.
         return webViewFragmentsList.get(pageNumber);
     }
 }
\ No newline at end of file