+++ /dev/null
-/*
- * Copyright © 2019 Soren Stoutner <soren@stoutner.com>.
- *
- * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
- *
- * Privacy Browser is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Privacy Browser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.stoutner.privacybrowser.adapters;
-
-import com.stoutner.privacybrowser.fragments.WebViewTabFragment;
-
-import java.util.LinkedList;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentPagerAdapter;
-
-public class WebViewPagerAdapter extends FragmentPagerAdapter {
- // The WebView fragments list contains all the WebViews.
- private LinkedList<WebViewTabFragment> webViewFragmentsList = new LinkedList<>();
-
- // Define the constructor.
- public WebViewPagerAdapter(FragmentManager fragmentManager){
- // Run the default commands.
- super(fragmentManager);
- }
-
- @Override
- public int getCount() {
- // Return the number of pages.
- return webViewFragmentsList.size();
- }
-
- @Override
- public int getItemPosition(@NonNull Object object) {
- //noinspection SuspiciousMethodCalls
- if (webViewFragmentsList.contains(object)) {
- // Return the current page position.
- //noinspection SuspiciousMethodCalls
- return webViewFragmentsList.indexOf(object);
- } else {
- // The tab has been deleted.
- return POSITION_NONE;
- }
- }
-
- @Override
- public Fragment getItem(int pageNumber) {
- // Get the fragment for a particular page. Page numbers are 0 indexed.
- return webViewFragmentsList.get(pageNumber);
- }
-
- @Override
- public long getItemId(int position) {
- // Return the unique ID for this page.
- return webViewFragmentsList.get(position).tabId;
- }
-
- public int getPositionForId(long pageId) {
- // Initialize the position variable.
- int position = -1;
-
- // Initialize the while counter.
- int i = 0;
-
- // Find the current position of the WebView fragment with the given ID.
- while (position < 0 && i < webViewFragmentsList.size()) {
- // Check to see if the tab ID of this WebView matches the page ID.
- if (webViewFragmentsList.get(i).tabId == pageId) {
- // Store the position if they are a match.
- position = i;
- }
-
- // Increment the counter.
- i++;
- }
-
- // Return the position.
- return position;
- }
-
- public void addPage(int pageNumber) {
- // Add a new page.
- webViewFragmentsList.add(WebViewTabFragment.createPage(pageNumber));
-
- // Update the view pager.
- notifyDataSetChanged();
- }
-
- public void deletePage(int pageNumber) {
- // Delete the page.
- webViewFragmentsList.remove(pageNumber);
-
- // Update the view pager.
- notifyDataSetChanged();
- }
-
- public WebViewTabFragment getPageFragment(int pageNumber) {
- return webViewFragmentsList.get(pageNumber);
- }
-}
\ No newline at end of file