summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-08-02 12:34:45 +0200
committercyBerta <cyberta@riseup.net>2023-08-02 12:34:45 +0200
commit0fa7ae499185fefa732a7bc02a8e22ea5da92ec7 (patch)
treeb58819fabfa2f90a54caa62f061a3314ecc22ebe /app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
parentdfe7a28d7a1fcabfdc6d493b29a558da9b0add46 (diff)
* Implenting permissionn fragments
* refactoring fragments, use of a base fragment to deduplicate code * improve SetupViewPagerAdapter by implementing a factory that hands out the reuired fragments in the correct order * very basic setup success fragment ("You're all set!")
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.java56
1 files changed, 31 insertions, 25 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
index d32a4eb6..3f585c35 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
@@ -1,51 +1,57 @@
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.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.adapter.FragmentStateAdapter;
-import se.leap.bitmaskclient.providersetup.fragments.CircumventionSetupFragment;
-import se.leap.bitmaskclient.providersetup.fragments.ConfigureProviderFragment;
-import se.leap.bitmaskclient.providersetup.fragments.ProviderSelectionFragment;
+import java.util.ArrayList;
-public class SetupViewPagerAdapter extends FragmentStateAdapter {
+import se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory;
+public class SetupViewPagerAdapter extends FragmentStateAdapter {
- public SetupViewPagerAdapter(@NonNull FragmentActivity fragmentActivity) {
- super(fragmentActivity);
- }
+ private SetupFragmentFactory setupFragmentFactory;
- public SetupViewPagerAdapter(@NonNull Fragment fragment) {
- super(fragment);
+ private SetupViewPagerAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
+ super(fragmentManager, lifecycle);
}
- public 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) {
- switch (position) {
- case 0:
- return ProviderSelectionFragment.newInstance();
- case 1:
- return CircumventionSetupFragment.newInstance();
- case 2:
- return ConfigureProviderFragment.newInstance(position);
- default:
- return ProviderSelectionFragment.newInstance();
- }
+ return setupFragmentFactory.createFragment(position);
}
-
-
@Override
public int getItemCount() {
- return 4;
+ return setupFragmentFactory.getItemCount();
}