]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blob - app/src/main/java/com/stoutner/privacybrowser/adapters/AboutPagerAdapter.java
Add share, copy, and save options to About > Version. https://redmine.stoutner.com...
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / adapters / AboutPagerAdapter.java
1 /*
2  * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
3  *
4  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
5  *
6  * Privacy Browser is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Privacy Browser is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 package com.stoutner.privacybrowser.adapters;
21
22 import android.content.Context;
23
24 import androidx.annotation.NonNull;
25 import androidx.fragment.app.Fragment;
26 import androidx.fragment.app.FragmentManager;
27 import androidx.fragment.app.FragmentPagerAdapter;
28
29 import com.stoutner.privacybrowser.R;
30 import com.stoutner.privacybrowser.fragments.AboutVersionFragment;
31 import com.stoutner.privacybrowser.fragments.AboutWebViewFragment;
32
33 import java.util.LinkedList;
34
35 public class AboutPagerAdapter extends FragmentPagerAdapter {
36     // Define the class variables.
37     private Context context;
38     private String[] blocklistVersions;
39     private LinkedList<Fragment> aboutFragmentList = new LinkedList<>();
40
41     public AboutPagerAdapter(FragmentManager fragmentManager, Context context, String[] blocklistVersions) {
42         // Run the default commands.
43         super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
44
45         // Store the class variables.
46         this.context = context;
47         this.blocklistVersions = blocklistVersions;
48     }
49
50     @Override
51     // Get the count of the number of tabs.
52     public int getCount() {
53         return 7;
54     }
55
56     @Override
57     // Get the name of each tab.  Tab numbers start at 0.
58     public CharSequence getPageTitle(int tab) {
59         switch (tab) {
60             case 0:
61                 return context.getString(R.string.version);
62
63             case 1:
64                 return context.getString(R.string.permissions);
65
66             case 2:
67                 return context.getString(R.string.privacy_policy);
68
69             case 3:
70                 return context.getString(R.string.changelog);
71
72             case 4:
73                 return context.getString(R.string.licenses);
74
75             case 5:
76                 return context.getString(R.string.contributors);
77
78             case 6:
79                 return context.getString(R.string.links);
80
81             default:
82                 return "";
83         }
84     }
85
86     @Override
87     @NonNull
88     // Setup each tab.
89     public Fragment getItem(int tabNumber) {
90         // Create the tab fragment and add it to the list.
91         if (tabNumber == 0){
92             // Add the version tab to the list.
93             aboutFragmentList.add(AboutVersionFragment.createTab(blocklistVersions));
94         } else {
95             // Add the WebView tab to the list.
96             aboutFragmentList.add(AboutWebViewFragment.createTab(tabNumber));
97         }
98
99         // Return the tab number fragment.
100         return aboutFragmentList.get(tabNumber);
101     }
102
103     public Fragment getTabFragment(int tabNumber) {
104         // Return the tab fragment.
105         return aboutFragmentList.get(tabNumber);
106     }
107 }