diff options
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel')
2 files changed, 12 insertions, 10 deletions
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"); } |