summaryrefslogtreecommitdiff
path: root/app/src/main/java/se
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-10-24 22:02:29 +0200
committercyBerta <cyberta@riseup.net>2023-10-24 22:02:29 +0200
commit6d7a966b39a8a1208d67981e726c63d02efd4f4a (patch)
tree4a05f95ea9d192749b6a8c4f7207de3e74fbaa67 /app/src/main/java/se
parentf64576feee47a783a3058ac181e8460fb19a30ce (diff)
use new provider setup flow for custom branded apps
Diffstat (limited to 'app/src/main/java/se')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java10
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java5
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java14
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java43
4 files changed, 57 insertions, 15 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java b/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
index 8372b6ad..19f03dee 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/StartActivity.java
@@ -247,13 +247,9 @@ public class StartActivity extends Activity{
if (getIntent().hasExtra(APP_ACTION_CONFIGURE_ALWAYS_ON_PROFILE)) {
getIntent().removeExtra(APP_ACTION_CONFIGURE_ALWAYS_ON_PROFILE);
}
- if (isDefaultBitmask()) {
- Intent intent = new Intent(this, SetupActivity.class);
- intent.putExtra(SetupActivity.EXTRA_SWITCH_PROVIDER, false);
- startActivityForResult(intent, REQUEST_CODE_CONFIGURE_LEAP);
- } else { // custom branded app
- startActivityForResult(new Intent(this, CustomProviderSetupActivity.class), REQUEST_CODE_CONFIGURE_LEAP);
- }
+ Intent intent = new Intent(this, SetupActivity.class);
+ intent.putExtra(SetupActivity.EXTRA_SWITCH_PROVIDER, false);
+ startActivityForResult(intent, REQUEST_CODE_CONFIGURE_LEAP);
}
@Override
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 a4a8fabd..00630f39 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/SetupViewPagerAdapter.java
@@ -1,5 +1,6 @@
package se.leap.bitmaskclient.providersetup;
+import static se.leap.bitmaskclient.base.utils.ConfigHelper.isDefaultBitmask;
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.NOTIFICATION_PERMISSON_EDUCATIONAL_FRAGMENT;
@@ -33,7 +34,9 @@ public class SetupViewPagerAdapter extends FragmentStateAdapter {
this(fragmentManager, lifecycle);
ArrayList<Integer> fragments = new ArrayList<>();
if (providerSetup) {
- fragments.add(PROVIDER_SELECTION_FRAGMENT);
+ if (isDefaultBitmask()) {
+ fragments.add(PROVIDER_SELECTION_FRAGMENT);
+ }
fragments.add(CIRCUMVENTION_SETUP_FRAGMENT);
fragments.add(CONFIGURE_PROVIDER_FRAGMENT);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
index a6e50769..724543e4 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/SetupActivity.java
@@ -3,6 +3,7 @@ package se.leap.bitmaskclient.providersetup.activities;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static androidx.appcompat.app.ActionBar.DISPLAY_SHOW_CUSTOM;
+import static se.leap.bitmaskclient.base.utils.ConfigHelper.isDefaultBitmask;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.deleteProviderDetailsFromPreferences;
import static se.leap.bitmaskclient.providersetup.fragments.SetupFragmentFactory.CONFIGURE_PROVIDER_FRAGMENT;
import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.OFF;
@@ -84,14 +85,19 @@ public class SetupActivity extends AppCompatActivity implements SetupActivityCal
fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager());
ArrayList<View> indicatorViews = new ArrayList<>();
- // indicator views for provider selection and config setup
+ if (isDefaultBitmask()) {
+ // indicator view for provider selection
+ addIndicatorView(indicatorViews);
+ }
+
+ // indicator views for config setup
boolean basicProviderSetup = !ProviderObservable.getInstance().getCurrentProvider().isConfigured() || switchProvider;
if (basicProviderSetup) {
- for (int i = 0; i < 3; i++) {
- addIndicatorView(indicatorViews);
- }
+ addIndicatorView(indicatorViews);
+ addIndicatorView(indicatorViews);
}
+
// indicator views for VPN permission
Intent requestVpnPermission = VpnService.prepare(this);
if (requestVpnPermission != null) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java
index 11fa582b..34a93319 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java
@@ -1,5 +1,8 @@
package se.leap.bitmaskclient.providersetup.fragments;
+import static se.leap.bitmaskclient.base.utils.ConfigHelper.isDefaultBitmask;
+
+import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -9,10 +12,14 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.databinding.FCircumventionSetupBinding;
+import se.leap.bitmaskclient.providersetup.ProviderManager;
+import se.leap.bitmaskclient.providersetup.activities.CancelCallback;
+import se.leap.bitmaskclient.providersetup.activities.SetupActivityCallback;
-public class CircumventionSetupFragment extends BaseSetupFragment {
+public class CircumventionSetupFragment extends BaseSetupFragment implements CancelCallback {
public static CircumventionSetupFragment newInstance(int position) {
CircumventionSetupFragment fragment = new CircumventionSetupFragment();
@@ -24,7 +31,8 @@ public class CircumventionSetupFragment extends BaseSetupFragment {
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
FCircumventionSetupBinding binding = FCircumventionSetupBinding.inflate(inflater, container, false);
-
+ binding.rbPlainVpn.setText(getString(R.string.use_standard_vpn, getString(R.string.app_name)));
+ binding.tvCircumventionDetailDescription.setText(getString(R.string.circumvention_setup_hint, getString(R.string.app_name)));
binding.circumventionRadioGroup.setOnCheckedChangeListener((group, checkedId) -> {
if (binding.rbCircumvention.getId() == checkedId) {
PreferenceHelper.useBridges(true);
@@ -50,9 +58,38 @@ public class CircumventionSetupFragment extends BaseSetupFragment {
}
@Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ setupActivityCallback.registerCancelCallback(this);
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ setupActivityCallback.removeCancelCallback(this);
+ }
+
+ @Override
public void onFragmentSelected() {
super.onFragmentSelected();
- setupActivityCallback.setCancelButtonHidden(false);
+ setupActivityCallback.setCancelButtonHidden(!isDefaultBitmask());
setupActivityCallback.setNavigationButtonHidden(false);
+ if (!isDefaultBitmask()) {
+ loadProviderFromAssets();
+ }
+ }
+
+ private void loadProviderFromAssets() {
+ ProviderManager providerManager = ProviderManager.getInstance(getContext().getApplicationContext().getAssets(),
+ getContext().getExternalFilesDir(null));
+ providerManager.setAddDummyEntry(false);
+ setupActivityCallback.onProviderSelected(providerManager.providers().get(0));
+ }
+
+ @Override
+ public void onCanceled() {
+ if (!isDefaultBitmask()) {
+ loadProviderFromAssets();
+ }
}
} \ No newline at end of file