]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java
Fix a rare crash in `onBackPresses()`. https://redmine.stoutner.com/issues/651
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / adapters / AboutPagerAdapter.java
index d1583c2f03eae490bba4e47a32abc7a69b0f572f..27f972906d7a1648a8d526bf6c4ceb3e04e70a76 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
  *
@@ -27,21 +27,23 @@ import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentPagerAdapter;
 
 import com.stoutner.privacybrowser.R;
-import com.stoutner.privacybrowser.fragments.AboutTabFragment;
+import com.stoutner.privacybrowser.fragments.AboutVersionFragment;
+import com.stoutner.privacybrowser.fragments.AboutWebViewFragment;
+
+import java.util.LinkedList;
 
 public class AboutPagerAdapter extends FragmentPagerAdapter {
-    // Define the class variable to store the blocklist versions.
-    private Context context;
-    private String[] blocklistVersions;
+    // Define the class variables.
+    private final Context context;
+    private final String[] blocklistVersions;
+    private final LinkedList<Fragment> aboutFragmentList = new LinkedList<>();
 
     public AboutPagerAdapter(FragmentManager fragmentManager, Context context, String[] blocklistVersions) {
         // Run the default commands.
         super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
 
-        // Store the context in a class variable.
+        // Store the class variables.
         this.context = context;
-
-        // Store the blocklist versions in a class variable.
         this.blocklistVersions = blocklistVersions;
     }
 
@@ -85,6 +87,21 @@ public class AboutPagerAdapter extends FragmentPagerAdapter {
     @NonNull
     // Setup each tab.
     public Fragment getItem(int tabNumber) {
-        return AboutTabFragment.createTab(tabNumber, blocklistVersions);
+        // Create the tab fragment and add it to the list.
+        if (tabNumber == 0){
+            // Add the version tab to the list.
+            aboutFragmentList.add(AboutVersionFragment.createTab(blocklistVersions));
+        } else {
+            // Add the WebView tab to the list.
+            aboutFragmentList.add(AboutWebViewFragment.createTab(tabNumber));
+        }
+
+        // Return the tab number fragment.
+        return aboutFragmentList.get(tabNumber);
+    }
+
+    public Fragment getTabFragment(int tabNumber) {
+        // Return the tab fragment.
+        return aboutFragmentList.get(tabNumber);
     }
 }
\ No newline at end of file