summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2025-01-13 23:16:37 +0100
committercyberta <cyberta@riseup.net>2025-02-04 14:34:32 +0000
commit15f5e75c2ad06d5dca20a4bd84d628f2458265df (patch)
tree95c2ad86d783ace841eb8d0f5aa14b65ef47d8ab /app/src/main
parent447cfa0ce606257b5c976ca8cc8cd8656211b9c9 (diff)
fix crash when entering invalid invite token
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java15
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java5
2 files changed, 16 insertions, 4 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
index 0e192882..c7087b67 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java
@@ -230,8 +230,19 @@ public class ConfigHelper {
public static boolean isDomainName(String url) {
return url != null && Patterns.DOMAIN_NAME.matcher(url).matches();
}
- public static String getDomainFromMainURL(@NonNull String mainUrl) throws NullPointerException {
- return PublicSuffixDatabase.Companion.get().getEffectiveTldPlusOne(mainUrl).replaceFirst("http[s]?://", "").replaceFirst("/.*", "");
+
+ /**
+ * Extracts a domain from a given URL
+ * @param mainUrl URL as String
+ * @return Domain as String, null if mainUrl is an invalid URL
+ */
+ public static String getDomainFromMainURL(String mainUrl) {
+ try {
+ String topLevelDomain = PublicSuffixDatabase.Companion.get().getEffectiveTldPlusOne(mainUrl);
+ return topLevelDomain.replaceFirst("http[s]?://", "").replaceFirst("/.*", "");
+ } catch (NullPointerException | IllegalArgumentException e) {
+ return null;
+ }
}
public static boolean isCalyxOSWithTetheringSupport(Context context) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
index 60a41325..25a9fcce 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
@@ -136,6 +136,9 @@ public abstract class ProviderApiManagerBase {
protected void getPersistedProviderUpdates(Provider provider) {
String providerDomain = getDomainFromMainURL(provider.getMainUrl());
+ if (providerDomain == null) {
+ return;
+ }
if (hasUpdatedProviderDetails(providerDomain)) {
provider.setCaCert(getPersistedProviderCA(providerDomain));
provider.define(getPersistedProviderDefinition(providerDomain));
@@ -155,8 +158,6 @@ public abstract class ProviderApiManagerBase {
}
}
-
-
protected String getPersistedPrivateKey(String providerDomain) {
return getFromPersistedProvider(PROVIDER_PRIVATE_KEY, providerDomain);
}