diff options
6 files changed, 12 insertions, 9 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt index 15e05cb6e2..c00be63ac2 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/textfield/CustomTextField.kt @@ -1,6 +1,5 @@ package net.mullvad.mullvadvpn.compose.textfield -import android.text.TextUtils import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -30,6 +29,7 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.VisualTransformation +import androidx.core.text.isDigitsOnly import net.mullvad.mullvadvpn.constant.EMPTY_STRING import net.mullvad.mullvadvpn.constant.NEWLINE_STRING import net.mullvad.mullvadvpn.lib.theme.Dimens @@ -87,8 +87,7 @@ fun CustomTextField( if (stringChangedSinceLastInvocation) { val isValidInput = - if (isDigitsOnlyAllowed) TextUtils.isDigitsOnly(newTextFieldValueState.text) - else true + if (isDigitsOnlyAllowed) newTextFieldValueState.text.isDigitsOnly() else true if (newTextFieldValueState.text.length <= maxCharLength && isValidInput) { // Remove any newline chars added by enter key clicks onValueChanged( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index e772458808..de4fc2d046 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -9,6 +9,7 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.core.util.Consumer import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -158,7 +159,7 @@ class MainActivity : ComponentActivity(), AndroidScopeComponent { callbackFlow<Intent> { send(intent) - val listener: (Intent) -> Unit = { trySend(it) } + val listener = Consumer<Intent> { intent -> trySend(intent) } addOnNewIntentListener(listener) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt index 6f5fad6dba..16ec17be5d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt @@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.viewmodel import android.content.res.Resources import android.net.Uri +import androidx.core.net.toUri import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.channels.Channel @@ -51,7 +52,7 @@ class AppInfoViewModel( } else { resources.getString(R.string.download_url) } - _uiSideEffect.send(AppInfoSideEffect.OpenUri(Uri.parse(uri))) + _uiSideEffect.send(AppInfoSideEffect.OpenUri(uri.toUri())) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt index cd3e94bc65..c8de8a20a8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt @@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.viewmodel import android.content.res.Resources import android.net.Uri +import androidx.core.net.toUri import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.FlowPreview @@ -190,7 +191,7 @@ class ConnectViewModel( } else { resources.getString(R.string.download_url) } - _uiSideEffect.send(UiSideEffect.OpenUri(Uri.parse(uri))) + _uiSideEffect.send(UiSideEffect.OpenUri(uri.toUri())) } fun dismissNewDeviceNotification() { diff --git a/android/config/lint-baseline.xml b/android/config/lint-baseline.xml index aef6521327..c45edd16dc 100644 --- a/android/config/lint-baseline.xml +++ b/android/config/lint-baseline.xml @@ -5,14 +5,14 @@ id="InvalidPackage" message="Invalid package reference in library; not included in Android: `javax.naming.directory`. Referenced from `io.grpc.internal.JndiResourceResolverFactory.JndiRecordFetcher`."> <location - file="../../../../.gradle/caches/modules-2/files-2.1/io.grpc/grpc-core/1.69.1/d9f6383e1903af6e9502e7c1c8e4fbe28a236321/grpc-core-1.69.1.jar"/> + file="*/caches/modules-2/files-2.1/io.grpc/grpc-core/1.71.0/a7cd1e546cd5518dc6a919e5469712af99fe13b0/grpc-core-1.71.0.jar"/> </issue> <issue id="InvalidPackage" message="Invalid package reference in library; not included in Android: `javax.naming`. Referenced from `io.grpc.internal.JndiResourceResolverFactory.JndiRecordFetcher`."> <location - file="../../../../.gradle/caches/modules-2/files-2.1/io.grpc/grpc-core/1.69.1/d9f6383e1903af6e9502e7c1c8e4fbe28a236321/grpc-core-1.69.1.jar"/> + file="*/caches/modules-2/files-2.1/io.grpc/grpc-core/1.71.0/a7cd1e546cd5518dc6a919e5469712af99fe13b0/grpc-core-1.71.0.jar"/> </issue> <issue diff --git a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/ContextExtensions.kt b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/ContextExtensions.kt index 882279c999..bf275c4f53 100644 --- a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/ContextExtensions.kt +++ b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/ContextExtensions.kt @@ -3,6 +3,7 @@ package net.mullvad.mullvadvpn.lib.common.util import android.content.Context import android.content.Intent import android.net.Uri +import androidx.core.net.toUri import net.mullvad.mullvadvpn.lib.model.WebsiteAuthToken fun createAccountUri(accountUri: String, websiteAuthToken: WebsiteAuthToken?): Uri { @@ -13,7 +14,7 @@ fun createAccountUri(accountUri: String, websiteAuthToken: WebsiteAuthToken?): U append(websiteAuthToken.value) } } - return Uri.parse(urlString) + return urlString.toUri() } fun Context.openVpnSettings() { |
