blob: d1954ffb96c005ec012ea1647788811312dd1dcb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
package se.leap.bitmaskclient.providersetup.fragments.viewmodel;
import android.content.Context;
import android.content.res.AssetManager;
import android.util.Patterns;
import android.view.View;
import android.webkit.URLUtil;
import androidx.lifecycle.ViewModel;
import java.io.File;
import java.util.List;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.providersetup.ProviderManager;
public class ProviderSelectionViewModel extends ViewModel {
private final ProviderManager providerManager;
public static int ADD_PROVIDER = 100100100;
private int selected = 0;
private String customUrl;
public ProviderSelectionViewModel(AssetManager assetManager, File externalFilesDir) {
providerManager = ProviderManager.getInstance(assetManager, externalFilesDir);
providerManager.setAddDummyEntry(false);
}
public int size() {
return providerManager.size();
}
public List<Provider> providers() {
return providerManager.providers();
}
public Provider getProvider(int pos) {
return providerManager.get(pos);
}
public void setSelected(int checkedId) {
selected = checkedId;
}
public int getSelected() {
return selected;
}
public boolean isValidConfig() {
if (selected == ADD_PROVIDER) {
return URLUtil.isValidUrl(customUrl) && Patterns.WEB_URL.matcher(customUrl).matches();
}
return true;
}
public CharSequence getProviderDescription(Context context) {
if (selected == ADD_PROVIDER) {
return context.getText(R.string.add_provider_description);
}
Provider provider = getProvider(selected);
if ("riseup.net".equals(provider.getDomain())) {
return context.getText(R.string.provider_description_riseup);
}
if ("calyx.net".equals(provider.getDomain())) {
return context.getText(R.string.provider_description_calyx);
}
return provider.getDescription();
}
public int getEditProviderVisibility() {
if (selected == ADD_PROVIDER) {
return View.VISIBLE;
}
return View.GONE;
}
public void setCustomUrl(String url) {
customUrl = url;
}
public String getProviderName(int pos) {
String domain = getProvider(pos).getDomain();
if ("riseup.net".equals(domain)) {
return "Riseup";
}
if ("calyx.net".equals(domain)) {
return "The Calyx Institute";
}
return domain;
}
}
|