summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorNorbel Ambanumben <nambanumben@riseup.net>2025-02-04 17:45:31 +0000
committercyberta <cyberta@riseup.net>2025-02-04 17:45:31 +0000
commit61cb85d85223c1e8010ab69a92496dddb7453297 (patch)
treebb055372eeac3ac690eb669669e46e65340ef556 /app/src/main/java
parent15f5e75c2ad06d5dca20a4bd84d628f2458265df (diff)
Resolve "new permissions screen implementation"
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java9
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/NotificationSetupFragment.java35
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/PermissionExplanationFragment.java72
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java20
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/VpnPermissionSetupFragment.java36
5 files changed, 86 insertions, 86 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 4f7f2957..24b4179f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
@@ -7,7 +7,6 @@ import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory
import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.NOTIFICATION_PERMISSON_FRAGMENT;
import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.PROVIDER_SELECTION_FRAGMENT;
import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.SUCCESS_FRAGMENT;
-import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.VPN_PERMISSON_EDUCATIONAL_FRAGMENT;
import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.VPN_PERMISSON_FRAGMENT;
import android.content.Intent;
@@ -39,20 +38,20 @@ public class SetupViewPagerAdapter extends FragmentStateAdapter {
}
fragments.add(CIRCUMVENTION_SETUP_FRAGMENT);
}
-
+ if (showNotificationPermission || vpnPermissionRequest != null) {
+ fragments.add(NOTIFICATION_PERMISSON_EDUCATIONAL_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);
}
if (providerSetup) {
fragments.add(CONFIGURE_PROVIDER_FRAGMENT);
}
fragments.add(SUCCESS_FRAGMENT);
- setupFragmentFactory = new SetupFragmentFactory(fragments, vpnPermissionRequest);
+ setupFragmentFactory = new SetupFragmentFactory(fragments, vpnPermissionRequest, showNotificationPermission);
}
@NonNull
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/NotificationSetupFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/NotificationSetupFragment.java
deleted file mode 100644
index a9589336..00000000
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/NotificationSetupFragment.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package se.leap.bitmaskclient.providersetup.fragments;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import se.leap.bitmaskclient.databinding.FNotificationSetupBinding;
-
-public class NotificationSetupFragment extends BaseSetupFragment {
-
- public static NotificationSetupFragment newInstance(int position) {
- NotificationSetupFragment fragment = new NotificationSetupFragment();
- fragment.setArguments(initBundle(position));
- return fragment;
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- FNotificationSetupBinding binding = FNotificationSetupBinding.inflate(inflater, container, false);
- return binding.getRoot();
- }
-
- @Override
- public void onFragmentSelected() {
- super.onFragmentSelected();
- setupActivityCallback.setNavigationButtonHidden(false);
- setupActivityCallback.setCancelButtonHidden(true);
- }
-
-} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/PermissionExplanationFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/PermissionExplanationFragment.java
new file mode 100644
index 00000000..4ac69ee8
--- /dev/null
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/PermissionExplanationFragment.java
@@ -0,0 +1,72 @@
+package se.leap.bitmaskclient.providersetup.fragments;
+
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static se.leap.bitmaskclient.base.utils.BuildConfigHelper.isDefaultBitmask;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.databinding.FPermissionExplanationBinding;
+
+
+public class PermissionExplanationFragment extends BaseSetupFragment {
+
+ private static String EXTRA_SHOW_NOTIFICATION_PERMISSION = "EXTRA_SHOW_NOTIFICATION_PERMISSION";
+ private static String EXTRA_SHOW_VPN_PERMISSION = "EXTRA_SHOW_VPN_PERMISSION";
+ FPermissionExplanationBinding binding;
+ public static PermissionExplanationFragment newInstance(int position, boolean showNotificationPermission, boolean showVpnPermission) {
+ PermissionExplanationFragment fragment = new PermissionExplanationFragment();
+ Bundle bundle = initBundle(position);
+ bundle.putBoolean(EXTRA_SHOW_NOTIFICATION_PERMISSION, showNotificationPermission);
+ bundle.putBoolean(EXTRA_SHOW_VPN_PERMISSION, showVpnPermission);
+ fragment.setArguments(bundle);
+ return fragment;
+ }
+
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+ binding = FPermissionExplanationBinding.inflate(inflater, container, false);
+ return binding.getRoot();
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ if (getArguments() != null) {
+ boolean showNotificationPermission = getArguments().getBoolean(EXTRA_SHOW_NOTIFICATION_PERMISSION);
+ boolean showVpnPermission = getArguments().getBoolean(EXTRA_SHOW_VPN_PERMISSION);
+ if (showVpnPermission && showNotificationPermission) {
+ binding.tvTitle.setText(R.string.title_upcoming_request);
+ binding.titleUpcomingRequestSummary.setVisibility(VISIBLE);
+ } else if (showVpnPermission) {
+ binding.tvTitle.setText(R.string.title_upcoming_connection_request);
+ binding.titleUpcomingRequestSummary.setVisibility(GONE);
+ } else if (showNotificationPermission) {
+ binding.tvTitle.setText(R.string.title_upcoming_notifications_request);
+ binding.titleUpcomingRequestSummary.setVisibility(GONE);
+ }
+
+ binding.titleUpcomingNotificationRequestSummary.setVisibility(showNotificationPermission ? VISIBLE: GONE);
+ binding.titleUpcomingConnectionRequestSummary.setText(isDefaultBitmask() ?
+ getString(R.string.title_upcoming_connection_request_summary) :
+ getString(R.string.title_upcoming_connection_request_summary_custom, getString(R.string.app_name)));
+ binding.titleUpcomingConnectionRequestSummary.setVisibility(showVpnPermission ? VISIBLE : GONE);
+ }
+ }
+
+ @Override
+ public void onFragmentSelected() {
+ super.onFragmentSelected();
+ setupActivityCallback.setNavigationButtonHidden(false);
+ setupActivityCallback.setCancelButtonHidden(true);
+ }
+
+} \ No newline at end of file
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
index 5cf15e7c..13d1e5ff 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java
@@ -11,21 +11,23 @@ import java.util.ArrayList;
public class SetupFragmentFactory {
public static final int PROVIDER_SELECTION_FRAGMENT = 0;
public static final int CIRCUMVENTION_SETUP_FRAGMENT = 1;
- public static final int VPN_PERMISSON_EDUCATIONAL_FRAGMENT = 2;
- public static final int VPN_PERMISSON_FRAGMENT = 3;
- public static final int NOTIFICATION_PERMISSON_EDUCATIONAL_FRAGMENT = 4;
- public static final int NOTIFICATION_PERMISSON_FRAGMENT = 5;
- public static final int CONFIGURE_PROVIDER_FRAGMENT = 6;
+ public static final int VPN_PERMISSON_FRAGMENT = 2;
+ public static final int NOTIFICATION_PERMISSON_EDUCATIONAL_FRAGMENT = 3;
+ public static final int NOTIFICATION_PERMISSON_FRAGMENT = 4;
+ public static final int CONFIGURE_PROVIDER_FRAGMENT = 5;
- public static final int SUCCESS_FRAGMENT = 7;
+ public static final int SUCCESS_FRAGMENT = 6;
private final Intent vpnPermissionRequest;
private final ArrayList<Integer> fragmentTypes;
- public SetupFragmentFactory(@NonNull ArrayList<Integer> fragmentTypes, Intent vpnPermissionRequest) {
+ private final boolean showNotificationPermission;
+
+ public SetupFragmentFactory(@NonNull ArrayList<Integer> fragmentTypes, Intent vpnPermissionRequest, boolean showNotificationPermission) {
this.fragmentTypes = fragmentTypes;
this.vpnPermissionRequest = vpnPermissionRequest;
+ this.showNotificationPermission = showNotificationPermission;
}
public Fragment createFragment(int position) {
@@ -41,11 +43,9 @@ public class SetupFragmentFactory {
case CONFIGURE_PROVIDER_FRAGMENT:
return ConfigureProviderFragment.newInstance(position);
case NOTIFICATION_PERMISSON_EDUCATIONAL_FRAGMENT:
- return NotificationSetupFragment.newInstance(position);
+ return PermissionExplanationFragment.newInstance(position, showNotificationPermission, vpnPermissionRequest!=null);
case NOTIFICATION_PERMISSON_FRAGMENT:
return EmptyPermissionSetupFragment.newInstance(position, Manifest.permission.POST_NOTIFICATIONS);
- case VPN_PERMISSON_EDUCATIONAL_FRAGMENT:
- return VpnPermissionSetupFragment.newInstance(position);
case VPN_PERMISSON_FRAGMENT:
return EmptyPermissionSetupFragment.newInstance(position, vpnPermissionRequest);
case SUCCESS_FRAGMENT:
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/VpnPermissionSetupFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/VpnPermissionSetupFragment.java
deleted file mode 100644
index 188ba9ac..00000000
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/VpnPermissionSetupFragment.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package se.leap.bitmaskclient.providersetup.fragments;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import se.leap.bitmaskclient.databinding.FVpnPermissionSetupBinding;
-
-public class VpnPermissionSetupFragment extends BaseSetupFragment {
-
- public static VpnPermissionSetupFragment newInstance(int position) {
- VpnPermissionSetupFragment fragment = new VpnPermissionSetupFragment();
- fragment.setArguments(initBundle(position));
- return fragment;
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- FVpnPermissionSetupBinding binding = FVpnPermissionSetupBinding.inflate(inflater, container, false);
- return binding.getRoot();
- }
-
- @Override
- public void onFragmentSelected() {
- super.onFragmentSelected();
- setupActivityCallback.setNavigationButtonHidden(false);
- setupActivityCallback.setCancelButtonHidden(true);
- }
-
-} \ No newline at end of file