summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
new file mode 100644
index 00000000..39122572
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
@@ -0,0 +1,62 @@
+package se.leap.bitmaskclient.providersetup;
+
+import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.*;
+import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.CIRCUMVENTION_SETUP_FRAGMENT;
+import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.CONFIGURE_PROVIDER_FRAGMENT;
+import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.PROVIDER_SELECTION_FRAGMENT;
+
+import android.content.Intent;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.lifecycle.Lifecycle;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+
+import java.util.ArrayList;
+
+import se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory;
+
+public class SetupViewPagerAdapter extends FragmentStateAdapter {
+
+ private SetupFragmentFactory setupFragmentFactory;
+
+ private SetupViewPagerAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
+ super(fragmentManager, lifecycle);
+ }
+
+ public SetupViewPagerAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, Intent vpnPermissionRequest, Boolean showNotificationPermission) {
+ this(fragmentManager, lifecycle);
+ ArrayList<Integer> fragments = new ArrayList<>();
+ fragments.add(PROVIDER_SELECTION_FRAGMENT);
+ fragments.add(CIRCUMVENTION_SETUP_FRAGMENT);
+ fragments.add(CONFIGURE_PROVIDER_FRAGMENT);
+ if (vpnPermissionRequest != null) {
+ fragments.add(VPN_PERMISSON_EDUCATIONAL_FRAGMENT);
+ fragments.add(VPN_PERMISSON_FRAGMENT);
+ }
+ if (showNotificationPermission) {
+ fragments.add(NOTIFICATION_PERMISSON_EDUCATIONAL_FRAGMENT);
+ fragments.add(NOTIFICATION_PERMISSON_FRAGMENT);
+ }
+ fragments.add(SUCCESS_FRAGMENT);
+ setupFragmentFactory = new SetupFragmentFactory(fragments, vpnPermissionRequest);
+ }
+
+ @NonNull
+ @Override
+ public Fragment createFragment(int position) {
+ return setupFragmentFactory.createFragment(position);
+ }
+
+ @Override
+ public int getItemCount() {
+ return setupFragmentFactory.getItemCount();
+ }
+
+ public int getFragmentPostion(int fragmentType) {
+ return setupFragmentFactory.getPos(fragmentType);
+ }
+
+
+}