summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/fragments')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/CircumventionSetupFragment.java3
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java13
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java14
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModelFactory.java8
4 files changed, 21 insertions, 17 deletions
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 cdb8bd78..58fccc65 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
@@ -78,8 +78,7 @@ public class CircumventionSetupFragment extends BaseSetupFragment implements Can
}
private void loadProviderFromAssets() {
- ProviderManager providerManager = ProviderManager.getInstance(getContext().getApplicationContext().getAssets(),
- getContext().getExternalFilesDir(null));
+ ProviderManager providerManager = ProviderManager.getInstance(getContext().getApplicationContext().getAssets());
providerManager.setAddDummyEntry(false);
setupActivityCallback.onProviderSelected(providerManager.providers().get(0));
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
index e8f37e43..f15aaa43 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
@@ -2,7 +2,6 @@ package se.leap.bitmaskclient.providersetup.fragments;
import static se.leap.bitmaskclient.providersetup.fragments.viewmodel.ProviderSelectionViewModel.ADD_PROVIDER;
-import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Editable;
@@ -20,7 +19,6 @@ import java.util.ArrayList;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Provider;
-import se.leap.bitmaskclient.base.models.ProviderObservable;
import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.databinding.FProviderSelectionBinding;
import se.leap.bitmaskclient.providersetup.activities.CancelCallback;
@@ -46,8 +44,7 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
super.onCreate(savedInstanceState);
viewModel = new ViewModelProvider(this,
new ProviderSelectionViewModelFactory(
- getContext().getApplicationContext().getAssets(),
- getContext().getExternalFilesDir(null))).
+ getContext().getApplicationContext().getAssets())).
get(ProviderSelectionViewModel.class);
}
@@ -110,7 +107,7 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
if (viewModel.isCustomProviderSelected()) {
setupActivityCallback.onSetupStepValidationChanged(viewModel.isValidConfig());
if (viewModel.isValidConfig()) {
- setupActivityCallback.onProviderSelected(new Provider(s.toString()));
+ setupActivityCallback.onProviderSelected(new Provider(viewModel.getCustomUrl()));
}
}
}
@@ -124,6 +121,12 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
ViewHelper.hideKeyboardFrom(getContext(), v);
}
});
+
+ binding.getRoot().getViewTreeObserver().addOnGlobalLayoutListener(() -> {
+ if(ViewHelper.isKeyboardShown(getContext())) {
+ binding.getRoot().smoothScrollTo(binding.editCustomProvider.getLeft(), binding.getRoot().getBottom());
+ }
+ });
binding.providerRadioGroup.check(viewModel.getSelected());
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
index aa2fe7cb..29dab98a 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java
@@ -8,7 +8,6 @@ import android.webkit.URLUtil;
import androidx.lifecycle.ViewModel;
-import java.io.File;
import java.util.List;
import se.leap.bitmaskclient.R;
@@ -22,8 +21,8 @@ public class ProviderSelectionViewModel extends ViewModel {
private int selected = 0;
private String customUrl;
- public ProviderSelectionViewModel(AssetManager assetManager, File externalFilesDir) {
- providerManager = ProviderManager.getInstance(assetManager, externalFilesDir);
+ public ProviderSelectionViewModel(AssetManager assetManager) {
+ providerManager = ProviderManager.getInstance(assetManager);
providerManager.setAddDummyEntry(false);
}
@@ -49,7 +48,7 @@ public class ProviderSelectionViewModel extends ViewModel {
public boolean isValidConfig() {
if (selected == ADD_PROVIDER) {
- return URLUtil.isValidUrl(customUrl) && Patterns.WEB_URL.matcher(customUrl).matches();
+ return customUrl != null && (Patterns.DOMAIN_NAME.matcher(customUrl).matches() || (URLUtil.isNetworkUrl(customUrl) && Patterns.WEB_URL.matcher(customUrl).matches()));
}
return true;
}
@@ -83,6 +82,13 @@ public class ProviderSelectionViewModel extends ViewModel {
customUrl = url;
}
+ public String getCustomUrl() {
+ if (customUrl != null && Patterns.DOMAIN_NAME.matcher(customUrl).matches()) {
+ return "https://" + customUrl;
+ }
+ return customUrl;
+ }
+
public String getProviderName(int pos) {
String domain = getProvider(pos).getDomain();
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModelFactory.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModelFactory.java
index a21e4924..f6d86e07 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModelFactory.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModelFactory.java
@@ -6,22 +6,18 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
-import java.io.File;
-
public class ProviderSelectionViewModelFactory implements ViewModelProvider.Factory {
private final AssetManager assetManager;
- private final File externalFilesDir;
- public ProviderSelectionViewModelFactory(AssetManager assetManager, File externalFilesDir) {
+ public ProviderSelectionViewModelFactory(AssetManager assetManager) {
this.assetManager = assetManager;
- this.externalFilesDir = externalFilesDir;
}
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
if (modelClass.isAssignableFrom(ProviderSelectionViewModel.class)) {
- return (T) new ProviderSelectionViewModel(assetManager, externalFilesDir);
+ return (T) new ProviderSelectionViewModel(assetManager);
}
throw new IllegalArgumentException("Unknown ViewModel class");
}