diff options
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java | 9 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/NotificationSetupFragment.java | 35 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/PermissionExplanationFragment.java | 72 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/SetupFragmentFactory.java | 20 | ||||
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/VpnPermissionSetupFragment.java | 36 | ||||
-rw-r--r-- | app/src/main/res/layout/f_notification_setup.xml | 34 | ||||
-rw-r--r-- | app/src/main/res/layout/f_permission_explanation.xml (renamed from app/src/main/res/layout/f_vpn_permission_setup.xml) | 26 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 9 |
8 files changed, 115 insertions, 126 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 diff --git a/app/src/main/res/layout/f_notification_setup.xml b/app/src/main/res/layout/f_notification_setup.xml deleted file mode 100644 index d9c7d1a3..00000000 --- a/app/src/main/res/layout/f_notification_setup.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - - -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:padding="@dimen/stdpadding" - android:layout_margin="@dimen/activity_margin" - tools:context=".providersetup.fragments.ProviderSelectionFragment"> - - <androidx.appcompat.widget.LinearLayoutCompat - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:layout_margin="@dimen/activity_margin" - > - <androidx.appcompat.widget.AppCompatTextView - android:id="@+id/tv_title" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textAppearance="@style/TextAppearance.AppCompat.Title" - android:text="@string/title_upcoming_notifications_request" - android:paddingBottom="@dimen/stdpadding" - /> - <androidx.appcompat.widget.AppCompatTextView - android:id="@+id/tv_circumvention_description" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textAppearance="@style/TextAppearance.AppCompat.Body1" - android:text="@string/upcoming_notifications_request_description"/> - </androidx.appcompat.widget.LinearLayoutCompat> -</ScrollView>
\ No newline at end of file diff --git a/app/src/main/res/layout/f_vpn_permission_setup.xml b/app/src/main/res/layout/f_permission_explanation.xml index 99dd531b..447f12de 100644 --- a/app/src/main/res/layout/f_vpn_permission_setup.xml +++ b/app/src/main/res/layout/f_permission_explanation.xml @@ -21,14 +21,34 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Title" - android:text="@string/title_upcoming_connection_request" + android:text="@string/title_upcoming_request" android:paddingBottom="@dimen/stdpadding" /> <androidx.appcompat.widget.AppCompatTextView - android:id="@+id/tv_circumvention_description" + android:id="@+id/title_upcoming_request_summary" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Body1" - android:text="@string/upcoming_connection_request_description"/> + android:text="@string/title_upcoming_request_summary"/> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/title_upcoming_connection_request_summary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="@dimen/stdpadding" + android:textAppearance="@style/TextAppearance.AppCompat.Body1" + android:visibility="gone" + tools:visibility="visible" + android:text="@string/title_upcoming_connection_request_summary"/> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/title_upcoming_notification_request_summary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="@dimen/stdpadding" + android:visibility="gone" + tools:visibility="visible" + android:textAppearance="@style/TextAppearance.AppCompat.Body1" + android:text="@string/title_upcoming_notification_request_summary"/> </androidx.appcompat.widget.LinearLayoutCompat> </ScrollView>
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6351ade7..41904f13 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -211,7 +211,7 @@ <string name="select_provider_description">When using a VPN you are transferring your trust from your Internet Service Provider to your VPN provider. Bitmask only connects to providers with a clear history of privacy protection and advocacy.</string> <string name="provider_description_riseup">Riseup provides online communication tools for people and groups working on liberatory social change. We are a project to create democratic alternatives and practice self-determination by controlling our own secure means of communications.</string> <string name="next">Next</string> - <string name="add_provider_description">Bitmask connects to trusted providers that are not publicly listed. Enter your provider’s url below.</string> + <string name="add_provider_description">Bitmask allows you to connect to providers that are not publicly listed. Make sure you know and trust the provider you are adding.</string> <string name="add_provider_prompt">Enter the provider’s URL here.</string> <string name="invite_code_provider_description">Bitmask allows you to connect to providers using a private Invite Code. </string> <string name="invite_code_provider_prompt">Enter your trusted Invite Code here.</string> @@ -235,9 +235,12 @@ <string name="snowflake_broker_success">Snowflake proxy rendezvous successful</string> <string name="snowflake_sending_data">Sending data via Snowflake</string> <string name="title_upcoming_connection_request">Upcoming Connection Request</string> - <string name="upcoming_connection_request_description">In the next panel Android will remind you that it’s essential to trust your VPN provider. Bitmask only partners with providers that adhere to strict privacy best practices for VPNs and have a verifiable history of protecting user’s data and identities.</string> + <string name="title_upcoming_request">Upcoming requests</string> + <string name="title_upcoming_request_summary">In the next panels Android will ask for your permission in form of a Connection Request and Notification Request.</string> + <string name="title_upcoming_connection_request_summary_custom">Accepting the Connection Request is essential to use the core functionality of %s.</string> + <string name="title_upcoming_connection_request_summary">For the Connection Request it’s important to know that Bitmask only partners with trusted partner providers that adhere to best practices for VPNs and have a verifiable history of protecting user’s data and identities. However, if you are manually connecting to a non-public provider, make sure you trust them.</string> + <string name="title_upcoming_notification_request_summary">Accepting the Notification Request allows the app to run in the background and enables you to see your data usage from within Android’s notification center.</string> <string name="title_upcoming_notifications_request">Upcoming Notifications Request</string> - <string name="upcoming_notifications_request_description">In the next panel Android will ask if you want to allow notifications. This will ensure a stable background connection and enable you to see your data usage from within Android’s notification center.</string> <string name="title_setup_success">You\'re all set!</string> <string name="setup_success_description">Click the button below to connect</string> <string name="permission_rejected">Permission request rejected.</string> |