summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-08-04 11:25:57 +0200
committerAlbin <albin@mullvad.net>2023-08-04 11:25:57 +0200
commitc02098a983aa33e70f56f9153022d3916f71283c (patch)
tree4bbb505f1ee58ad7ae9a60dd79aeeff6430a8d1f /android
parentf5d5a5c7bf3889685c7c9fce9b53f85fd56e59b0 (diff)
parentbfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6 (diff)
downloadmullvadvpn-c02098a983aa33e70f56f9153022d3916f71283c.tar.xz
mullvadvpn-c02098a983aa33e70f56f9153022d3916f71283c.zip
Merge branch 'bump-android-dependencies'
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ListItemData.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ViewIntent.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SelectLocationUiState.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SplitTunnelingUiState.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/GetItemResult.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/BlockingController.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/BaseFragment.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/PlainListItemView.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/TwoActionListItemView.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/WidgetViewController.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt5
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/ListenableScrollView.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/WidgetState.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt1
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt3
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelState.kt2
-rw-r--r--android/buildSrc/src/main/kotlin/Versions.kt12
-rw-r--r--android/gradle/verification-metadata.xml877
-rw-r--r--android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/Intermittent.kt1
-rw-r--r--android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Message.kt1
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceList.kt2
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/GetAccountDataResult.kt3
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/LocationConstraint.kt1
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettingsUpdate.kt1
-rw-r--r--android/lib/resource/lint-baseline.xml332
-rw-r--r--android/lib/talpid/src/main/kotlin/net/mullvad/talpid/ConnectivityListener.kt1
-rw-r--r--android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt1
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/DaemonInstance.kt1
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt2
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt21
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt2
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt3
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt1
-rw-r--r--android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt4
42 files changed, 877 insertions, 435 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ListItemData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ListItemData.kt
index c04b4637bb..613fe49e8f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ListItemData.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ListItemData.kt
@@ -57,6 +57,7 @@ private constructor(
const val ACTION = 3
const val DOUBLE_ACTION = 4
const val APPLICATION = 5
+
fun build(identifier: String, setUp: Builder.() -> Unit): ListItemData =
Builder(identifier).also(setUp).build()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ViewIntent.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ViewIntent.kt
index 5db52ca295..4469bd00ef 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ViewIntent.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/applist/ViewIntent.kt
@@ -3,6 +3,8 @@ package net.mullvad.mullvadvpn.applist
sealed class ViewIntent {
// In future we will have search intent
data class ChangeApplicationGroup(val item: ListItemData) : ViewIntent()
+
object ViewIsReady : ViewIntent()
+
data class ShowSystemApps(internal val show: Boolean) : ViewIntent()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SelectLocationUiState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SelectLocationUiState.kt
index 61b3abffa2..9d230a98fe 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SelectLocationUiState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SelectLocationUiState.kt
@@ -5,6 +5,7 @@ import net.mullvad.mullvadvpn.relaylist.RelayItem
sealed interface SelectLocationUiState {
object Loading : SelectLocationUiState
+
data class ShowData(val countries: List<RelayCountry>, val selectedRelay: RelayItem?) :
SelectLocationUiState
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SplitTunnelingUiState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SplitTunnelingUiState.kt
index d63afac400..1ebb8fb379 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SplitTunnelingUiState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/state/SplitTunnelingUiState.kt
@@ -4,6 +4,7 @@ import net.mullvad.mullvadvpn.applist.AppData
sealed interface SplitTunnelingUiState {
object Loading : SplitTunnelingUiState
+
data class ShowAppList(
val excludedApps: List<AppData> = emptyList(),
val includedApps: List<AppData> = emptyList(),
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt
index fb09846b8b..7104deb686 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt
@@ -16,8 +16,11 @@ const val PROBLEM_REPORT_FILE = "problem_report.txt"
class MullvadProblemReport {
private sealed class Command {
class Collect() : Command()
+
class Load(val logs: CompletableDeferred<String>) : Command()
+
class Send(val result: CompletableDeferred<Boolean>) : Command()
+
class Delete() : Command()
}
@@ -128,6 +131,7 @@ class MullvadProblemReport {
}
private external fun collectReport(logDirectory: String, reportPath: String): Boolean
+
private external fun sendProblemReport(
userEmail: String,
userMessage: String,
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/GetItemResult.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/GetItemResult.kt
index d443d30cfe..edbaaf39d1 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/GetItemResult.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/GetItemResult.kt
@@ -2,5 +2,6 @@ package net.mullvad.mullvadvpn.relaylist
sealed class GetItemResult {
data class Item(val item: RelayItem) : GetItemResult()
+
data class Count(val count: Int) : GetItemResult()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/BlockingController.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/BlockingController.kt
index 9589c9474b..4dd53fa937 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/BlockingController.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/BlockingController.kt
@@ -34,5 +34,6 @@ class BlockingController(val blockableView: BlockableView) {
interface BlockableView {
fun setEnabled(enabled: Boolean)
+
fun onClick(): Job
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/BaseFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/BaseFragment.kt
index 905cc889a9..bfbe4bdd25 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/BaseFragment.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/BaseFragment.kt
@@ -12,6 +12,7 @@ import net.mullvad.mullvadvpn.util.transitionFinished
abstract class BaseFragment : Fragment {
constructor() : super()
+
constructor(@LayoutRes contentLayoutId: Int) : super(contentLayoutId)
protected var transitionFinishedFlow: Flow<Unit> = emptyFlow()
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/PlainListItemView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/PlainListItemView.kt
index f472c444df..b0553619f9 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/PlainListItemView.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/PlainListItemView.kt
@@ -9,6 +9,7 @@ class PlainListItemView(context: Context) :
ListItemView(ContextThemeWrapper(context, R.style.ListItem_PlainText)) {
override val layoutRes: Int
get() = R.layout.list_item_plain_text
+
override val heightRes: Int? = null
private val plainText: TextView = findViewById(R.id.plain_text)
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/TwoActionListItemView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/TwoActionListItemView.kt
index 8f349c0548..ffe6d0ae89 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/TwoActionListItemView.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/TwoActionListItemView.kt
@@ -9,6 +9,7 @@ class TwoActionListItemView(context: Context) :
ActionListItemView(ContextThemeWrapper(context, R.style.ListItem_Action_Double)) {
override val layoutRes: Int
get() = R.layout.list_item_two_action
+
private val container: ViewGroup = findViewById(R.id.container_without_widget)
init {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/WidgetViewController.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/WidgetViewController.kt
index 07463e1920..62325b4e1d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/WidgetViewController.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/listitemview/WidgetViewController.kt
@@ -21,7 +21,9 @@ sealed class WidgetViewController<T : WidgetState>(val parent: ViewGroup) {
WidgetViewController<WidgetState.ImageState>(parent) {
override val layoutRes: Int
get() = R.layout.list_item_widget_image
+
private val imageView: ImageView = parent.findViewById(R.id.widgetImage)
+
override fun updateState(state: WidgetState.ImageState) =
imageView.setImageResource(state.imageRes)
}
@@ -30,7 +32,9 @@ sealed class WidgetViewController<T : WidgetState>(val parent: ViewGroup) {
WidgetViewController<WidgetState.SwitchState>(parent) {
override val layoutRes: Int
get() = R.layout.list_item_widget_switch
+
private val switch: SwitchCompat = parent.findViewById(R.id.widgetSwitch)
+
override fun updateState(state: WidgetState.SwitchState) {
switch.isChecked = state.isChecked
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt
index 9ee7a02698..ddba8656eb 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/InAppNotification.kt
@@ -27,6 +27,7 @@ abstract class InAppNotification {
protected set
open fun onResume() {}
+
open fun onPause() {}
open fun onDestroy() {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
index 7470fc0712..d51bad461d 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ConnectionProxy.kt
@@ -24,6 +24,7 @@ class ConnectionProxy(private val connection: Messenger, eventDispatcher: EventD
var state by onStateChange.notifiable()
private set
+
var uiState by onUiStateChange.notifiable()
private set
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
index b8e6bc2ff9..d383035102 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/ServiceConnectionAccountDataSource.kt
@@ -45,9 +45,14 @@ class ServiceConnectionAccountDataSource(
}
fun createAccount() = connection.send(Request.CreateAccount.message)
+
fun login(accountToken: String) = connection.send(Request.Login(accountToken).message)
+
fun logout() = connection.send(Request.Logout.message)
+
fun fetchAccountExpiry() = connection.send(Request.FetchAccountExpiry.message)
+
fun fetchAccountHistory() = connection.send(Request.FetchAccountHistory.message)
+
fun clearAccountHistory() = connection.send(Request.ClearAccountHistory.message)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/ListenableScrollView.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/ListenableScrollView.kt
index 683341686f..0b65325f42 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/ListenableScrollView.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/ListenableScrollView.kt
@@ -8,6 +8,7 @@ import net.mullvad.mullvadvpn.util.ListenableScrollableView
class ListenableScrollView : ScrollView, ListenableScrollableView {
override val horizontalScrollOffset
get() = scrollX
+
override val verticalScrollOffset
get() = scrollY
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
index 48cd07f5c2..42f3f16122 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
@@ -25,6 +25,7 @@ class NotificationBanner : FrameLayout {
private val animationListener =
object : AnimatorListener {
override fun onAnimationCancel(animation: Animator) {}
+
override fun onAnimationRepeat(animation: Animator) {}
override fun onAnimationStart(animation: Animator) {
@@ -78,6 +79,7 @@ class NotificationBanner : FrameLayout {
}
constructor(context: Context) : super(context)
+
constructor(context: Context, attributes: AttributeSet) : super(context, attributes)
constructor(
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/WidgetState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/WidgetState.kt
index 484f0262c1..e92265b2df 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/WidgetState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/WidgetState.kt
@@ -4,5 +4,6 @@ import androidx.annotation.DrawableRes
sealed class WidgetState {
data class ImageState(@DrawableRes val imageRes: Int) : WidgetState()
+
data class SwitchState(val isChecked: Boolean) : WidgetState()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt
index 6418652728..e4cdc95070 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/FlowUtils.kt
@@ -17,6 +17,7 @@ fun Animation.transitionFinished(): Flow<Unit> =
val transitionAnimationListener =
object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation?) {}
+
override fun onAnimationEnd(animation: Animation?) {
safeOffer(Unit)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
index 308298443a..a1b50c6efb 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
@@ -5,5 +5,6 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
sealed class HeaderOrHolder<H : ViewHolder>(itemView: View) : ViewHolder(itemView) {
class Header<H : ViewHolder>(headerView: View) : HeaderOrHolder<H>(headerView)
+
class Holder<H : ViewHolder>(val holder: H) : HeaderOrHolder<H>(holder.itemView)
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
index 79d7ae5428..30c1464a91 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AccountViewModel.kt
@@ -55,6 +55,7 @@ class AccountViewModel(
)
}
}
+
fun onLogoutClick() {
accountRepository.logout()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt
index a8255f5675..bbfac3e024 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt
@@ -39,5 +39,6 @@ class ChangelogViewModel(
sealed class ChangelogDialogUiState {
data class Show(val changes: List<String>) : ChangelogDialogUiState()
+
object Hide : ChangelogDialogUiState()
}
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 37aa06a7c9..0798bc50af 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
@@ -130,12 +130,15 @@ class ConnectViewModel(private val serviceConnectionManager: ServiceConnectionMa
fun onDisconnectClick() {
serviceConnectionManager.connectionProxy()?.disconnect()
}
+
fun onReconnectClick() {
serviceConnectionManager.connectionProxy()?.reconnect()
}
+
fun onConnectClick() {
serviceConnectionManager.connectionProxy()?.connect()
}
+
fun onCancelClick() {
serviceConnectionManager.connectionProxy()?.disconnect()
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt
index 2f59bcb347..6fb00b1922 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModel.kt
@@ -27,15 +27,23 @@ class LoginViewModel(
sealed class LoginUiState {
object Default : LoginUiState()
+
object Loading : LoginUiState()
+
data class Success(val isOutOfTime: Boolean) : LoginUiState()
object CreatingAccount : LoginUiState()
+
object AccountCreated : LoginUiState()
+
object UnableToCreateAccountError : LoginUiState()
+
object InvalidAccountError : LoginUiState()
+
data class TooManyDevicesError(val accountToken: String) : LoginUiState()
+
object TooManyDevicesMissingListError : LoginUiState()
+
data class OtherError(val errorMessage: String) : LoginUiState()
fun isLoading(): Boolean {
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelState.kt
index ab749e02d9..fbcc60258a 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelState.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelState.kt
@@ -239,7 +239,9 @@ sealed interface StagedDns {
sealed class ValidationResult {
object Success : ValidationResult()
+
object InvalidAddress : ValidationResult()
+
object DuplicateAddress : ValidationResult()
}
diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt
index ffe63ae10a..106991ee3d 100644
--- a/android/buildSrc/src/main/kotlin/Versions.kt
+++ b/android/buildSrc/src/main/kotlin/Versions.kt
@@ -3,9 +3,9 @@ object Versions {
const val jodaTime = "2.12.5"
const val junit = "4.13.2"
const val jvmTarget = "17"
- const val kotlin = "1.8.21"
- const val kotlinCompilerExtensionVersion = "1.4.7"
- const val kotlinx = "1.7.1"
+ const val kotlin = "1.9.0"
+ const val kotlinCompilerExtensionVersion = "1.5.1"
+ const val kotlinx = "1.7.3"
const val leakCanary = "2.12"
// Make sure the following issue has been fixed before upgrading mockk:
// https://github.com/mockk/mockk/issues/1035
@@ -52,12 +52,12 @@ object Versions {
// The androidAapt plugin version must be in sync with the android plugin version.
// Required for Gradle metadata verification to work properly, see:
// https://github.com/gradle/gradle/issues/19228
- const val android = "8.0.2"
- const val androidAapt = "$android-9289358"
+ const val android = "8.1.0"
+ const val androidAapt = "$android-10154469"
const val playPublisher = "3.8.4"
const val dependencyCheck = "8.3.1"
const val gradleVersions = "0.47.0"
- const val ktfmt = "0.12.0"
+ const val ktfmt = "0.13.0"
}
object Koin {
diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml
index 582175a21b..0c6803122e 100644
--- a/android/gradle/verification-metadata.xml
+++ b/android/gradle/verification-metadata.xml
@@ -283,12 +283,12 @@
<sha256 value="80512d30da688904b645029f039cedc3e25be99de3851170e253315c55839aa6" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="androidx.compose.compiler" name="compiler" version="1.4.7">
- <artifact name="compiler-1.4.7.jar">
- <sha256 value="4e9281473a9da54fae9220b729eca1e2b57cb85cfa3f820a794a30815c487ff1" origin="Generated by Gradle"/>
+ <component group="androidx.compose.compiler" name="compiler" version="1.5.1">
+ <artifact name="compiler-1.5.1.jar">
+ <sha256 value="b4ff8abe298d70466b8b202898fee1b0949512962bdb8c95cf77c0907afe53f0" origin="Generated by Gradle"/>
</artifact>
- <artifact name="compiler-1.4.7.module">
- <sha256 value="475cbc0e2715a00289f450f4497b2be01f7ea6c0100d8c1cd55baa2b6444ea70" origin="Generated by Gradle"/>
+ <artifact name="compiler-1.5.1.module">
+ <sha256 value="96b3e519d5ce3d48ae409f914e04f71403371e74490f4b3aa2b869f27811f5f3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.compose.foundation" name="foundation" version="1.4.3">
@@ -621,14 +621,14 @@
<sha256 value="903034d5152dd2e0162b1468ea25a22e1ca384006b3d282d5a143cc760321a01" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="androidx.databinding" name="databinding-common" version="8.0.2">
- <artifact name="databinding-common-8.0.2.jar">
- <sha256 value="9fa21e2030273ee3cb8c4701c341af8cf9359791a3b45b2bc0be07870c03b1c8" origin="Generated by Gradle"/>
+ <component group="androidx.databinding" name="databinding-common" version="8.1.0">
+ <artifact name="databinding-common-8.1.0.jar">
+ <sha256 value="66cab82639dac0f6c2433464c093b074d608c4bb887ec38a9b8bc4ac98126732" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="androidx.databinding" name="databinding-compiler-common" version="8.0.2">
- <artifact name="databinding-compiler-common-8.0.2.jar">
- <sha256 value="7b5cf583171d30a3fff4a0230b620a601e4b0a9d2de05d66bebf678229740caf" origin="Generated by Gradle"/>
+ <component group="androidx.databinding" name="databinding-compiler-common" version="8.1.0">
+ <artifact name="databinding-compiler-common-8.1.0.jar">
+ <sha256 value="f0c2138f13aa2dd72b8e89f379cd2b638ec59206d5aaf07c155613dbac83f519" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.documentfile" name="documentfile" version="1.0.0">
@@ -1213,172 +1213,172 @@
<sha256 value="34813438ae79db84f4459c19f440ef3346ee141bab671aed874d22c1c4bd4f88" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android" name="signflinger" version="8.0.2">
- <artifact name="signflinger-8.0.2.jar">
- <sha256 value="1f25f3f9c5d706fd7bc133a45bf35511093197d540635a613d1aae11260e314a" origin="Generated by Gradle"/>
+ <component group="com.android" name="signflinger" version="8.1.0">
+ <artifact name="signflinger-8.1.0.jar">
+ <sha256 value="c1dca2c683634ee1a294298f9c7179578af6a86e080bdc40f961915bc5c8142f" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android" name="zipflinger" version="8.0.2">
- <artifact name="zipflinger-8.0.2.jar">
- <sha256 value="d82b239494dd262e65cd94b2edf96c9b5cf19c7afbfc84f2601749f50e15c765" origin="Generated by Gradle"/>
+ <component group="com.android" name="zipflinger" version="8.1.0">
+ <artifact name="zipflinger-8.1.0.jar">
+ <sha256 value="56589abf965af58ea1d31c15d676fe0d62b9db92983fbdfe8e72c983ea577dbb" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.databinding" name="baseLibrary" version="8.0.2">
- <artifact name="baseLibrary-8.0.2.jar">
- <sha256 value="530b2113317ff4d0f69ffdfb49387ba4b86aac169e1c77dff943405b79adcf8b" origin="Generated by Gradle"/>
+ <component group="com.android.databinding" name="baseLibrary" version="8.1.0">
+ <artifact name="baseLibrary-8.1.0.jar">
+ <sha256 value="794113709dab21b06c262b3795e73cb708fbacae61715f34361e1af6237a1870" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="annotations" version="31.0.2">
- <artifact name="annotations-31.0.2.jar">
- <sha256 value="d4ba7dd6055a6f1fd6ddb6dcef4e2096c15908bc7dc6057cb2e06f3a0db949c7" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="annotations" version="31.1.0">
+ <artifact name="annotations-31.1.0.jar">
+ <sha256 value="ee3bfd9cdb5012bdb61520f8654a785577e9bb337e5939c5c6149a446684ee16" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="common" version="31.0.2">
- <artifact name="common-31.0.2.jar">
- <sha256 value="09f1b19445cc1307e3d065c0f9fde4779abc5100b351eca2b0361c6dc9930d8d" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="common" version="31.1.0">
+ <artifact name="common-31.1.0.jar">
+ <sha256 value="18429dd4f4eef4f382f81c5970776f825c13da2fc34c6cd42e69b016c4fcf072" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="dvlib" version="31.0.2">
- <artifact name="dvlib-31.0.2.jar">
- <sha256 value="d946ad39a40b667c82da87724527815536de62d0db0e8ea333449fdb90509001" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="dvlib" version="31.1.0">
+ <artifact name="dvlib-31.1.0.jar">
+ <sha256 value="f6e31a2b7da1b62a401e5e3f0304426faa119dcfd1651f8f67a9a4c254d59faf" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="play-sdk-proto" version="31.0.2">
- <artifact name="play-sdk-proto-31.0.2.jar">
- <sha256 value="270f0f4653fe0d6477e55359dd47fb61ec5c96597997871e916b405042b39b91" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="play-sdk-proto" version="31.1.0">
+ <artifact name="play-sdk-proto-31.1.0.jar">
+ <sha256 value="5c77cd5fabe3d288272c088b05576085ebbfd1ddaac299bbebb93ce53b0ffe7e" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="repository" version="31.0.2">
- <artifact name="repository-31.0.2.jar">
- <sha256 value="c11d10822af862cee3412ddc7245f6054d4b00a9e61fd1d2357390280879ea36" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="repository" version="31.1.0">
+ <artifact name="repository-31.1.0.jar">
+ <sha256 value="8fe8e9d6bcebe92dd4eee3e8f8e122b521f03a8f49e28f6a814b46e3822e4aaa" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="sdk-common" version="31.0.2">
- <artifact name="sdk-common-31.0.2.jar">
- <sha256 value="766aa3b48b8c87adb8a1b0fed6689d48ec85ea803f85ab9f155c0e40c510e258" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="sdk-common" version="31.1.0">
+ <artifact name="sdk-common-31.1.0.jar">
+ <sha256 value="47a63f3c957cc7a108000f945fdcff935148d5c213cb5887472cc091599a44c3" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools" name="sdklib" version="31.0.2">
- <artifact name="sdklib-31.0.2.jar">
- <sha256 value="9770b9aaedcb5543497b9abb79ac0e1ee5ba3a8197969b52aa51a06f6bc10964" origin="Generated by Gradle"/>
+ <component group="com.android.tools" name="sdklib" version="31.1.0">
+ <artifact name="sdklib-31.1.0.jar">
+ <sha256 value="9b344f6587e890bd0d4b68667c8fb652be12227fbe4c21cd8824d292e4ed6ddb" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.analytics-library" name="crash" version="31.0.2">
- <artifact name="crash-31.0.2.jar">
- <sha256 value="1a940620fcd33f546200defd5347be74f7341c08563fc52a0eeeb4b8ccdd0c51" origin="Generated by Gradle"/>
+ <component group="com.android.tools.analytics-library" name="crash" version="31.1.0">
+ <artifact name="crash-31.1.0.jar">
+ <sha256 value="cc5f028ac4fd037d57c0bb0cdc84ca37671852ea2370216b5ce6f45479f03261" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.analytics-library" name="protos" version="31.0.2">
- <artifact name="protos-31.0.2.jar">
- <sha256 value="d074b93c2395722c6fff42b0397c5ba6cb2be44338a49a5133fbfb9b8191a68d" origin="Generated by Gradle"/>
+ <component group="com.android.tools.analytics-library" name="protos" version="31.1.0">
+ <artifact name="protos-31.1.0.jar">
+ <sha256 value="c1731e7dd1c07a10a0b11a62fff27448bfa260f7b534276bc9dbad857fbd76fd" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.analytics-library" name="shared" version="31.0.2">
- <artifact name="shared-31.0.2.jar">
- <sha256 value="d7efd1542cf705b1a0a46ac493849f7cf3d5e4b3bcdc78a4fa0478ea6c7caccb" origin="Generated by Gradle"/>
+ <component group="com.android.tools.analytics-library" name="shared" version="31.1.0">
+ <artifact name="shared-31.1.0.jar">
+ <sha256 value="1c0059475ddac544e9f8f43ae018092dbb446c86970e2b5fe1e65931c780d42a" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.analytics-library" name="tracker" version="31.0.2">
- <artifact name="tracker-31.0.2.jar">
- <sha256 value="a62bcf8ad3816bdc276999e80c8edd52bdb1a20bfd571d8f5f7e91fce1c74545" origin="Generated by Gradle"/>
+ <component group="com.android.tools.analytics-library" name="tracker" version="31.1.0">
+ <artifact name="tracker-31.1.0.jar">
+ <sha256 value="02cc932f48012d8feae1d09f949697c6e2154e821d6d4649e1e39dc911c46977" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="aapt2" version="8.0.2-9289358">
- <artifact name="aapt2-8.0.2-9289358-linux.jar">
- <sha256 value="e18c5ff5e71e3e9fcf6b6ad021c7013538f31066e253e3b4816fccf105f3a364" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="aapt2" version="8.1.0-10154469">
+ <artifact name="aapt2-8.1.0-10154469-linux.jar">
+ <sha256 value="09408183419a74c405d7c5a964a800da916758988cbc5c6cfdbb1c309aaea03c" origin="Generated by Gradle"/>
</artifact>
- <artifact name="aapt2-8.0.2-9289358-osx.jar">
- <sha256 value="83467af53a7bbbaea4d560057b08d675e375b00758a03cecfb998a7638ad1c54" origin="Generated by Gradle"/>
+ <artifact name="aapt2-8.1.0-10154469-osx.jar">
+ <sha256 value="c34f5c26a014199da8e86c85f4ed0bfbe804fc087b98539c9481add23eae05e0" origin="Generated by Gradle"/>
</artifact>
- <artifact name="aapt2-8.0.2-9289358-windows.jar">
- <sha256 value="ee1b7dee9d1e55cda1c4f745005019584d195474ee573a444b268740c1365287" origin="Generated by Gradle"/>
+ <artifact name="aapt2-8.1.0-10154469-windows.jar">
+ <sha256 value="12aee6bd1f6afe1cef8b6fcb64b0f0962c925c7c6241add572e03bf8be103f5c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="aapt2-proto" version="8.0.2-9289358">
- <artifact name="aapt2-proto-8.0.2-9289358.jar">
- <sha256 value="b7dc57505b56d06ab057bcc5360ca7cb995e61c2633ddaa17c0638b17913aaae" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="aapt2-proto" version="8.1.0-10154469">
+ <artifact name="aapt2-proto-8.1.0-10154469.jar">
+ <sha256 value="6d8d14b91285cc7c1b73460f413bb3f80672dc34dc506ed578fba1f6dde8661e" origin="Generated by Gradle"/>
</artifact>
- <artifact name="aapt2-proto-8.0.2-9289358.module">
- <sha256 value="53a68846734600d0988d744600dbf93298b95662de996591330327de97c20168" origin="Generated by Gradle"/>
+ <artifact name="aapt2-proto-8.1.0-10154469.module">
+ <sha256 value="fd72696795dc762c9f6e3698acfa22bfc6c75a862659bba2adb783e6b9138006" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="aaptcompiler" version="8.0.2">
- <artifact name="aaptcompiler-8.0.2.jar">
- <sha256 value="1006750a1bbdf22db39b480a8c10ee2f982d0395cbefbc83812aeaf9593b6567" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="aaptcompiler" version="8.1.0">
+ <artifact name="aaptcompiler-8.1.0.jar">
+ <sha256 value="5de36b2081e635c2dfe93e62f9861a6f527878fdb5cb4c464e872cca4df06250" origin="Generated by Gradle"/>
</artifact>
- <artifact name="aaptcompiler-8.0.2.module">
- <sha256 value="77372cb582dde1d3a4115ad8ab79166b78c52c270e2f6543b449d13e36012c0e" origin="Generated by Gradle"/>
+ <artifact name="aaptcompiler-8.1.0.module">
+ <sha256 value="19c9f8a4f359a58b2e60192f1dff2f1a8d8dc97adb03a8d04f3031cb39856c3a" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="apksig" version="8.0.2">
- <artifact name="apksig-8.0.2.jar">
- <sha256 value="1556367f117415b3fbb66b3222254197b0f4aafdbc9f467497304409f0d30386" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="apksig" version="8.1.0">
+ <artifact name="apksig-8.1.0.jar">
+ <sha256 value="468ee1852fa12461c6629608fe47be70e50f60be7c4744bb7f62ca48e85c0a6c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="apkzlib" version="8.0.2">
- <artifact name="apkzlib-8.0.2.jar">
- <sha256 value="79474dbb7505515a7fe081149a119aa4c6580ac4da8dc3ea7d3675956b00fffc" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="apkzlib" version="8.1.0">
+ <artifact name="apkzlib-8.1.0.jar">
+ <sha256 value="ec6cdd0645c9923c733d38a0a68c1b47919a822f138d56dc99ba9c78c361fa00" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="builder" version="8.0.2">
- <artifact name="builder-8.0.2.jar">
- <sha256 value="779804f5b8bd22c4f3fe69866e17cfc0f58f9ed3c4e02b9626b42bf66551140c" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="builder" version="8.1.0">
+ <artifact name="builder-8.1.0.jar">
+ <sha256 value="be41a2a8b1056729c3d4bf4c79cc9c0f344c77932bfdb31961d96ce70bd187da" origin="Generated by Gradle"/>
</artifact>
- <artifact name="builder-8.0.2.module">
- <sha256 value="720d811feecb2a20e592525e7b38963e39df76c083d355ab55730504d0dc46ec" origin="Generated by Gradle"/>
+ <artifact name="builder-8.1.0.module">
+ <sha256 value="5b8de94b653a88f9fe91c8e654e66ec618a8adba7068022de598085be8e67f0f" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="builder-model" version="8.0.2">
- <artifact name="builder-model-8.0.2.jar">
- <sha256 value="cbaa1696178cf3627840faaffe30c62e709e101bc15809a02783e45dfab815a0" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="builder-model" version="8.1.0">
+ <artifact name="builder-model-8.1.0.jar">
+ <sha256 value="efe9220a2334d9bafe655dd895a007b2c403f509ae2be037c60ab4f47cc398f1" origin="Generated by Gradle"/>
</artifact>
- <artifact name="builder-model-8.0.2.module">
- <sha256 value="41c689f58e7a48ade2132219dda503a7b32e9767c912f07c8ac5c68d153cb4e3" origin="Generated by Gradle"/>
+ <artifact name="builder-model-8.1.0.module">
+ <sha256 value="e10891390a314ce811c634980ccb4d35d2ba4e81c64be6a11a402d3763013a5f" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="builder-test-api" version="8.0.2">
- <artifact name="builder-test-api-8.0.2.jar">
- <sha256 value="66f7798525a8eb5cd85dd905ce9a6de737a1d2363dee4155babd5e388e96d4f7" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="builder-test-api" version="8.1.0">
+ <artifact name="builder-test-api-8.1.0.jar">
+ <sha256 value="e1474815e603a4f4b7d9e086c481775d3d7837c8254a0831a8cbee8a5d11ac8a" origin="Generated by Gradle"/>
</artifact>
- <artifact name="builder-test-api-8.0.2.module">
- <sha256 value="acf833bb07ff61db0dc47151eb89236d93f25a75d6bf55958c9c57c36abb8c19" origin="Generated by Gradle"/>
+ <artifact name="builder-test-api-8.1.0.module">
+ <sha256 value="5655ff7edadc61daf9cf898f77f7ab0105e8c034722a2be66edee86871ba8e40" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="bundletool" version="1.13.2">
- <artifact name="bundletool-1.13.2.jar">
- <sha256 value="e56e54b7657f67e77c7550bec64f70d0de2780a4795024b99fcf6a701bd1718d" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="bundletool" version="1.14.0">
+ <artifact name="bundletool-1.14.0.jar">
+ <sha256 value="8e44e4b396f12dc2fa55d40985ceb08b1bed222077a5dedbafdeb46da8fb9d06" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="gradle" version="8.0.2">
- <artifact name="gradle-8.0.2.jar">
- <sha256 value="645916554831d28eb1dec154910c3e24ed4a077e03949c41d2ab4d47a623c9b6" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="gradle" version="8.1.0">
+ <artifact name="gradle-8.1.0.jar">
+ <sha256 value="bee5ca8b8255096decc397372c104e4a2a2d7c690d712e10181609ed85cd1cb2" origin="Generated by Gradle"/>
</artifact>
- <artifact name="gradle-8.0.2.module">
- <sha256 value="95a5a36f446bbfb4d6f290c98a8c9da9f2ab71c59290ada87617c07f4cda1164" origin="Generated by Gradle"/>
+ <artifact name="gradle-8.1.0.module">
+ <sha256 value="763dc2345d186f73afe3b8bea2d7a651f22516f4915075fdd8d3877f397579ce" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="gradle-api" version="8.0.2">
- <artifact name="gradle-api-8.0.2.jar">
- <sha256 value="e3a14c889d8e6b3e1c026015950db54a4d1bd09ade82e05307adba603f46f036" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="gradle-api" version="8.1.0">
+ <artifact name="gradle-api-8.1.0.jar">
+ <sha256 value="01cb192f3ab8d5ef0ed1e42d1d03b068a1f5317983e64f0682dccbcff76ec16f" origin="Generated by Gradle"/>
</artifact>
- <artifact name="gradle-api-8.0.2.module">
- <sha256 value="c6aa577911ca61680a34e5e0612011f1cb823e5193e72cff92ce3b9aa8597668" origin="Generated by Gradle"/>
+ <artifact name="gradle-api-8.1.0.module">
+ <sha256 value="d3c0779a7b91f1a931228d8f7e86219f3be6fa12fb9bf7bee4f60968b2b25730" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="gradle-settings-api" version="8.0.2">
- <artifact name="gradle-settings-api-8.0.2.jar">
- <sha256 value="1eeadff69357705c9289e0a7253c95f9e499f543ff853e413d49652ae13e1d8a" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="gradle-settings-api" version="8.1.0">
+ <artifact name="gradle-settings-api-8.1.0.jar">
+ <sha256 value="5751e038e07eb33f3e51da0a0e6691d806106cdb4f10930dcd7e81304c7c847f" origin="Generated by Gradle"/>
</artifact>
- <artifact name="gradle-settings-api-8.0.2.module">
- <sha256 value="038db3ffd98a091a3f3cce0de61ace5d003ee3ade5c903e0c41268e81c2b8213" origin="Generated by Gradle"/>
+ <artifact name="gradle-settings-api-8.1.0.module">
+ <sha256 value="c4a017f363aacbd199b23c9c9c482d41570bbcd83b678b4d567f8ea2a100e5d2" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.build" name="manifest-merger" version="31.0.2">
- <artifact name="manifest-merger-31.0.2.jar">
- <sha256 value="8a354d36df3e22d0df567645bc6430d95579919bf36055e945702f1c3c0c8ae2" origin="Generated by Gradle"/>
+ <component group="com.android.tools.build" name="manifest-merger" version="31.1.0">
+ <artifact name="manifest-merger-31.1.0.jar">
+ <sha256 value="80ecad8096efbd50778ccb3aa848e16aa092fde2e68d213cebca2b83d2399dbb" origin="Generated by Gradle"/>
</artifact>
- <artifact name="manifest-merger-31.0.2.module">
- <sha256 value="344ee2fc68a62b42b548a97900c2148cb8185b532ffe5d38a202903c22684bd1" origin="Generated by Gradle"/>
+ <artifact name="manifest-merger-31.1.0.module">
+ <sha256 value="15d4c068e62a53a53a4c139ef3af8417f332384ee0648e0da5ed74563ca53055" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="transform-api" version="2.0.0-deprecated-use-gradle-api">
@@ -1402,168 +1402,194 @@
<sha256 value="36c25576b19993df360170528cc62b7246c37776d6158154a67cdf8fc2d58e13" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.ddms" name="ddmlib" version="31.0.2">
- <artifact name="ddmlib-31.0.2.jar">
- <sha256 value="66de3038ddc4f240a2b3331bc9863b379c3999a1a8b0923dc731f11a9a295034" origin="Generated by Gradle"/>
+ <component group="com.android.tools.ddms" name="ddmlib" version="31.1.0">
+ <artifact name="ddmlib-31.1.0.jar">
+ <sha256 value="8c2fb144e61ca79aab8edc7c3ffe2c2b74bc6b23cb0cac6c8b7e066b5151e8ed" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.emulator" name="proto" version="31.0.2">
- <artifact name="proto-31.0.2.jar">
- <sha256 value="03c9f2a9eb08ebad38da2352e82e5ab08fa4fac7083fe771942aa29f60ab5bab" origin="Generated by Gradle"/>
+ <component group="com.android.tools.emulator" name="proto" version="31.1.0">
+ <artifact name="proto-31.1.0.jar">
+ <sha256 value="6c07754c4051e3b1cbbecbe0f14c6e9c5137a63ff3ea2afe529236435fc971bd" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.external.com-intellij" name="intellij-core" version="31.0.2">
- <artifact name="intellij-core-31.0.2.jar">
- <sha256 value="2d258f6137c7585608ea43320cfa0a685d32a40e6dd4cd0c21f466e60fd01ace" origin="Generated by Gradle"/>
+ <component group="com.android.tools.external.com-intellij" name="intellij-core" version="31.1.0">
+ <artifact name="intellij-core-31.1.0.jar">
+ <sha256 value="558db7e4be3f09a72d15c9ec1adf4c7ad78b6b8af927b36bc3e1b1093e86b7ea" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.external.com-intellij" name="kotlin-compiler" version="31.0.2">
- <artifact name="kotlin-compiler-31.0.2.jar">
- <sha256 value="1b1ff8dca59b78e59aaa02818e1aef4aa142302fdfa7fb9041ca0c342da0bbe3" origin="Generated by Gradle"/>
+ <component group="com.android.tools.external.com-intellij" name="kotlin-compiler" version="31.1.0">
+ <artifact name="kotlin-compiler-31.1.0.jar">
+ <sha256 value="59af5f311b8864df211293fe6ba3a8019bb40f5fc226ece7ecbcd0a0614a326b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.external.org-jetbrains" name="uast" version="31.0.2">
- <artifact name="uast-31.0.2.jar">
- <sha256 value="b4b1a74a712518c0dfd9930e9ffa69288ec84cf2fb55a5abd09f30b73ab0cac0" origin="Generated by Gradle"/>
+ <component group="com.android.tools.external.org-jetbrains" name="uast" version="31.1.0">
+ <artifact name="uast-31.1.0.jar">
+ <sha256 value="3cbce06d8859b6d39f498316bb32f542f89631251447b5938e5783a1a6ead79f" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.0.2">
- <artifact name="layoutlib-api-31.0.2.jar">
- <sha256 value="3df9c0423d26dffae97d9d622492c817dd57ac2d46b15e077b2af5fd9bf8ac05" origin="Generated by Gradle"/>
+ <component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.1.0">
+ <artifact name="layoutlib-api-31.1.0.jar">
+ <sha256 value="2b8b35a2125b9e11c450bcdb5774aa698b199b4026ae49f28b07c1c2325b5868" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint" version="31.0.2">
- <artifact name="lint-31.0.2.jar">
- <sha256 value="e2a2b4f88cf9977021161361c242a6ec8476eaba67fae00074fa0f2eb03252bc" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint" version="31.1.0">
+ <artifact name="lint-31.1.0.jar">
+ <sha256 value="377363a39926aa0b2e2f368f1f846086c3ea4f21e9b94278d0ed933e9a0b37d4" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint-api" version="31.0.2">
- <artifact name="lint-api-31.0.2.jar">
- <sha256 value="b574c059dbe7c0bd5a8fb99b239e6ba844484a59c6622f2636c107eb87c3c24b" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint-api" version="31.1.0">
+ <artifact name="lint-api-31.1.0.jar">
+ <sha256 value="d0b73b509452c2cb6070d2a11e5ddcd0b6bcad452af7a531bcb095797257930b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint-checks" version="31.0.2">
- <artifact name="lint-checks-31.0.2.jar">
- <sha256 value="67d210b6331030d27b11d7e081a9d299eb1d7a5519304de5a2c00fbb19044d42" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint-checks" version="31.1.0">
+ <artifact name="lint-checks-31.1.0.jar">
+ <sha256 value="38756dc2929d5fd6decd90680c422ea57736392edf3c1f34b2092168dd9b7952" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint-gradle" version="31.0.2">
- <artifact name="lint-gradle-31.0.2.jar">
- <sha256 value="0d34bcad5e346ebb6324ff8eee79d8fc418fa9a77892ffe17d48ea7677654a6d" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint-gradle" version="31.1.0">
+ <artifact name="lint-gradle-31.1.0.jar">
+ <sha256 value="e3bfad176e85b83306f487ca1f70b63b0e2e27e95d3280b8730051c9890d24b2" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint-model" version="31.0.2">
- <artifact name="lint-model-31.0.2.jar">
- <sha256 value="162eb85f27efc7b11821f80bb9861a02bb979127beba9b265155c19c80f809ac" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint-model" version="31.1.0">
+ <artifact name="lint-model-31.1.0.jar">
+ <sha256 value="a37eb5447a242fc3c8ef54e2fa625be4324fcc7807076ddc80db6a08081d31d6" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.lint" name="lint-typedef-remover" version="31.0.2">
- <artifact name="lint-typedef-remover-31.0.2.jar">
- <sha256 value="26c9384cd0cc727c0985097baf4fbcd90d556e06bb0f586c175ca9912fbc66ff" origin="Generated by Gradle"/>
+ <component group="com.android.tools.lint" name="lint-typedef-remover" version="31.1.0">
+ <artifact name="lint-typedef-remover-31.1.0.jar">
+ <sha256 value="5b4f485215ca4d86ef2319fc398b5f2251e62f5446bc5fd0e00653648ddde318" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-device-provider-ddmlib" version="31.0.2">
- <artifact name="android-device-provider-ddmlib-31.0.2.jar">
- <sha256 value="9972f7f0be3b9999feb88a4a20928aa7c8305d715b0aa71155669c9afc48511b" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-device-provider-ddmlib" version="31.1.0">
+ <artifact name="android-device-provider-ddmlib-31.1.0.jar">
+ <sha256 value="291b0cd5283caf106dfb2a220554a05e8e9a5b1d472e958088b6c61f4a44a9d0" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-device-provider-ddmlib-31.0.2.module">
- <sha256 value="10cd2df76d221953915c89afa9f2a05378b14c5bd94de17ad3005cf309d21e81" origin="Generated by Gradle"/>
+ <artifact name="android-device-provider-ddmlib-31.1.0.module">
+ <sha256 value="70b43e2b79736ddfcd6cfd2105cf66fe2949cb473717356ff0a3591d6ada4255" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.0.2">
- <artifact name="android-device-provider-ddmlib-proto-31.0.2.jar">
- <sha256 value="332794db1e7702c9689c8075532f235cccbf57d70aba29cbd7d378e781bad37f" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.1.0">
+ <artifact name="android-device-provider-ddmlib-proto-31.1.0.jar">
+ <sha256 value="1a288dfd22f5baa036bffdfdd3ac7504664b94c86dbf6be36630e5587c22e8fe" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-device-provider-gradle" version="31.0.2">
- <artifact name="android-device-provider-gradle-31.0.2.jar">
- <sha256 value="55e574b7f1c1196e61718cdc0419b7fa0e7baef07e5df4b92e3cdd7b3aa0f297" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-device-provider-gradle" version="31.1.0">
+ <artifact name="android-device-provider-gradle-31.1.0.jar">
+ <sha256 value="e979dfbc045186ad46fdcd3f7a099a121faf669e8321cf984562746337f666d3" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-device-provider-gradle-31.0.2.module">
- <sha256 value="37b0f23856e6206a74ac1891c455115c88e16d4d89ec3cc62e9902dc1c116a91" origin="Generated by Gradle"/>
+ <artifact name="android-device-provider-gradle-31.1.0.module">
+ <sha256 value="715032ce422c5a13bb18d2c35be59fd16c17aa6811d0275b217daf0644efebd7" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="31.0.2">
- <artifact name="android-device-provider-gradle-proto-31.0.2.jar">
- <sha256 value="48f8b288d3b3195199ded91cbaa67a28be2fb9d317da187b88a7d4ffb505a578" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="31.1.0">
+ <artifact name="android-device-provider-gradle-proto-31.1.0.jar">
+ <sha256 value="10f9b620a8403fd6a9c9e9c635c63a7975337b1deb5c375b79a6960eb5af88d4" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output" version="31.0.2">
- <artifact name="android-test-plugin-host-additional-test-output-31.0.2.jar">
- <sha256 value="957d41b43c848272f43e2aee91fb21a65710f6d963639ea4bf210546d3102f6c" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output" version="31.1.0">
+ <artifact name="android-test-plugin-host-additional-test-output-31.1.0.jar">
+ <sha256 value="4c2a37ad44b998f22465f28f4eac0211b199781ea857235ed43d213ca8aec6a3" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-host-additional-test-output-31.0.2.module">
- <sha256 value="6ae9f8b15d5679d838b538f09b2972f5f4de20cd8fc7824f7695a984b004a92f" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-additional-test-output-31.1.0.module">
+ <sha256 value="645e4679f96fec6344c22a290aebe9caacb415a0ebf44d9cef16f2c4d96b23fd" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.0.2">
- <artifact name="android-test-plugin-host-additional-test-output-proto-31.0.2.jar">
- <sha256 value="6c4d0907badf886cbea14e56e8d08ce232ee775403ad811c27a280520d7efa1a" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-additional-test-output-proto-31.1.0.jar">
+ <sha256 value="08d12e55fa91ab83dd1b757cdbca3d746809b0a50268f75cf52194f46a2c6673" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-coverage" version="31.0.2">
- <artifact name="android-test-plugin-host-coverage-31.0.2.jar">
- <sha256 value="4753f96f79e26c02dc41367ff1ae9db018558f58702599f372d178ed4bae9016" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-apk-installer" version="31.1.0">
+ <artifact name="android-test-plugin-host-apk-installer-31.1.0.jar">
+ <sha256 value="5c043b223a589a3fa631ecefeaa7192483fd10defd7c609ca07f31c6672912a7" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-host-coverage-31.0.2.module">
- <sha256 value="1c6d141394fab54d47c25d11dfdff681ccee0dc958e61999b4fd2cbdb5bafe12" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-apk-installer-31.1.0.module">
+ <sha256 value="6408c239b3130bb300e34b72be384410c1e550c42911673647b4fa8b18d33ef5" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.0.2">
- <artifact name="android-test-plugin-host-coverage-proto-31.0.2.jar">
- <sha256 value="22686a7d1775171e76534ab8f40f9c9677cabc77321088e3268cb9cb74d0e5c6" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-apk-installer-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-apk-installer-proto-31.1.0.jar">
+ <sha256 value="abd2aac816a81e2af7705f3edff3de22bcd806212a1d158f432a39b06ae544e4" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-device-info" version="31.0.2">
- <artifact name="android-test-plugin-host-device-info-31.0.2.jar">
- <sha256 value="8e09d5b0c69a76ff1f4561f2f1ecbc5a0bbc325d0b4d6c65bd03dd5146561f72" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-coverage" version="31.1.0">
+ <artifact name="android-test-plugin-host-coverage-31.1.0.jar">
+ <sha256 value="089eec62dde4c69c0df614c73a9873cca2052dd6089320f518f1f18b3373aea6" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-host-device-info-31.0.2.module">
- <sha256 value="2e7b95eda2cb48b2461df0270f7665f801e15b4f7c0fe1c1190d933334bf5f88" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-coverage-31.1.0.module">
+ <sha256 value="2e03c3fdea7f9d6f0a912d59b6b954bfdedd8ea04689075ea3442ea73b3c48f2" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-device-info-proto" version="31.0.2">
- <artifact name="android-test-plugin-host-device-info-proto-31.0.2.jar">
- <sha256 value="2981a0892b14f189b27c068020b858d91f02c3951bab9b15d49c30d2d356baea" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-coverage-proto-31.1.0.jar">
+ <sha256 value="9ebc9c6279a32a453c90cf6b732b3a3f88a80498e746400850f2c66ea7933580" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-logcat" version="31.0.2">
- <artifact name="android-test-plugin-host-logcat-31.0.2.jar">
- <sha256 value="8ab98d66d6e47f57c71c082dd4e832ff6dbc1488843cc1b9c8d483887a6de452" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-device-info" version="31.1.0">
+ <artifact name="android-test-plugin-host-device-info-31.1.0.jar">
+ <sha256 value="33e43df378eb7a70a0bc97537ecd0c426f8c481f6487015e4be00092f3603755" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-host-logcat-31.0.2.module">
- <sha256 value="5c66828e36a4796b2d1828ef3856399deb9fc8c9e3f62cdbc4385544439eb79d" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-device-info-31.1.0.module">
+ <sha256 value="6d1df7a2655416781d10a012746027cbfca01cffc13028f7a30505ba14790c39" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.0.2">
- <artifact name="android-test-plugin-host-logcat-proto-31.0.2.jar">
- <sha256 value="62234086f76d3dc1d1acbf9def72fcd7741ce2a10de587b4608ab45da62e9bc1" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-device-info-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-device-info-proto-31.1.0.jar">
+ <sha256 value="3d5881c984ba6f7aebf3f79f69842655f7bac9963da68a0fc7f1e940758b4f31" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-retention" version="31.0.2">
- <artifact name="android-test-plugin-host-retention-31.0.2.jar">
- <sha256 value="1b15643fc225427eb12a3c630b4e5a49e3cfc0c4ba65507de965f40505f0a235" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-emulator-control" version="31.1.0">
+ <artifact name="android-test-plugin-host-emulator-control-31.1.0.jar">
+ <sha256 value="9ecdd1dcda2e000a1cc8eacfed454f454ab2d0d3ef440d471d85af42d78eb020" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-host-retention-31.0.2.module">
- <sha256 value="5147f2a7070bf474a18f8cc44e1d34aaf77ec9fa694091cd17341212a8675ae5" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-emulator-control-31.1.0.module">
+ <sha256 value="3a1602e69e4bad5177b5ae0f1d2ef45248266923ecf22527b487ba06b0460fc2" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="31.0.2">
- <artifact name="android-test-plugin-host-retention-proto-31.0.2.jar">
- <sha256 value="031c4c933c5e53ddb863b960074ba36ec040a2464f208d4f5d390d2b227f6505" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-emulator-control-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-emulator-control-proto-31.1.0.jar">
+ <sha256 value="435438bc84016ec5d28c34c9d017b01365f37949168cffc81126d43757c53ca4" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle" version="31.0.2">
- <artifact name="android-test-plugin-result-listener-gradle-31.0.2.jar">
- <sha256 value="04273a4018de59cc8e52b48e29954074c99fbc33617f3323641e960a9ac36354" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-logcat" version="31.1.0">
+ <artifact name="android-test-plugin-host-logcat-31.1.0.jar">
+ <sha256 value="95076dd661753b0add255a1f8626e370d3c82c4f6a9a8f655cc2683b12af13b6" origin="Generated by Gradle"/>
</artifact>
- <artifact name="android-test-plugin-result-listener-gradle-31.0.2.module">
- <sha256 value="4e94cac776ee83ec1729c040c002a646bfab20f518baac182214ac893492b8ea" origin="Generated by Gradle"/>
+ <artifact name="android-test-plugin-host-logcat-31.1.0.module">
+ <sha256 value="1d47b33f8e1f3705b390644af61478bc4911ef5d8c1ca52ddbbff5cc2c028080" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.0.2">
- <artifact name="android-test-plugin-result-listener-gradle-proto-31.0.2.jar">
- <sha256 value="38c664b016fc380676ab80fb9da0c42f13b049cfd98d16467a2049fe85072e70" origin="Generated by Gradle"/>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-logcat-proto-31.1.0.jar">
+ <sha256 value="d31ca97afbfcd71a54749d265da11a424b122cf1cfbedbff2cb3d7362c579d3b" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-retention" version="31.1.0">
+ <artifact name="android-test-plugin-host-retention-31.1.0.jar">
+ <sha256 value="a94e3e5854e0c6a669db31c26fd967a6e72da5554449b84a84a427d66292ffc9" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="android-test-plugin-host-retention-31.1.0.module">
+ <sha256 value="5f5cdb46a5d04523e5b8cf136013ddb4fea27b4275463b1dde2700e652320022" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="31.1.0">
+ <artifact name="android-test-plugin-host-retention-proto-31.1.0.jar">
+ <sha256 value="4d1c3faaff5a38b29426f082e8e8c3f8b85a902086b90d18f706754ad93de04d" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle" version="31.1.0">
+ <artifact name="android-test-plugin-result-listener-gradle-31.1.0.jar">
+ <sha256 value="e171a0706257fcd077d09333366bee06b6407fed098b20515cdedc42068e0f2d" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="android-test-plugin-result-listener-gradle-31.1.0.module">
+ <sha256 value="af6f8a10edd84d7f65c9ba552a30597ee57f731f961517a10630aaf73fe05f06" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.1.0">
+ <artifact name="android-test-plugin-result-listener-gradle-proto-31.1.0.jar">
+ <sha256 value="b1e49ff23fa357f8702aef1632b04405224a3846f4fe76654c76ef9bd7b5a601" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.volley" name="volley" version="1.2.1">
@@ -1579,9 +1605,9 @@
<sha256 value="5d4d632cfbebfe0a7644501cc303570b691406181bee65e9916b921c767d7c72" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.facebook" name="ktfmt" version="0.43">
- <artifact name="ktfmt-0.43.jar">
- <sha256 value="2887f2f2c5379b99d9c3f6e58a5958c561cd9602e9b9fce604f0d51a45fc1a78" origin="Generated by Gradle"/>
+ <component group="com.facebook" name="ktfmt" version="0.44">
+ <artifact name="ktfmt-0.44.jar">
+ <sha256 value="0045f5c74d79d43c13a017a8475b92c1dde4fd43e04871a4ab47bc953edcfefa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.fasterxml.jackson.core" name="jackson-annotations" version="2.15.2">
@@ -1776,9 +1802,9 @@
<sha256 value="f1dd23f8ae34a8e91366723991ead0d6499d1a3e9163ce550c200b02d76a872b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.10.0">
- <artifact name="error_prone_annotations-2.10.0.jar">
- <sha256 value="a249d4d25dfb86d41e6c82fc335df580189f0c9feeabdc53233fc1e5060724a1" origin="Generated by Gradle"/>
+ <component group="com.google.errorprone" name="error_prone_annotations" version="2.11.0">
+ <artifact name="error_prone_annotations-2.11.0.jar">
+ <sha256 value="721cb91842b46fa056847d104d5225c8b8e1e8b62263b993051e1e5a0137b7ec" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotations" version="2.15.0">
@@ -1791,11 +1817,6 @@
<sha256 value="9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.google.errorprone" name="error_prone_annotations" version="2.7.1">
- <artifact name="error_prone_annotations-2.7.1.jar">
- <sha256 value="cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="com.google.flatbuffers" name="flatbuffers-java" version="1.12.0">
<artifact name="flatbuffers-java-1.12.0.jar">
<sha256 value="3f8c088b4dd04a9858721f2e162508c94db0dd86f961e306ee63ef2eda871bf7" origin="Generated by Gradle"/>
@@ -1816,9 +1837,9 @@
<sha256 value="1faf214c94723ab9fbadfedd9af88ddc325faf669e68eab04688c3afcf59c037" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.google.guava" name="guava" version="31.0.1-jre">
- <artifact name="guava-31.0.1-jre.jar">
- <sha256 value="d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9" origin="Generated by Gradle"/>
+ <component group="com.google.guava" name="guava" version="31.1-jre">
+ <artifact name="guava-31.1-jre.jar">
+ <sha256 value="a42edc9cab792e39fe39bb94f3fca655ed157ff87a8af78e1d6ba5b07c4a00ab" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="32.0.1-jre">
@@ -1954,12 +1975,12 @@
<sha256 value="f5475e63e7e89e5db62223489aec7a56bd303543772077a17c2cb54c19ca3a20" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="com.ncorti.ktfmt.gradle" name="plugin" version="0.12.0">
- <artifact name="plugin-0.12.0.jar">
- <sha256 value="dfb7167e34ee7a0e0a0ed8aa50bdc5cff1a9b28b762739d12e731e863e3fc4cf" origin="Generated by Gradle"/>
+ <component group="com.ncorti.ktfmt.gradle" name="plugin" version="0.13.0">
+ <artifact name="plugin-0.13.0.jar">
+ <sha256 value="005c3e44ef664ca3dda5282e51e590a5d096f3b1cf5c08a6dd3b76679339c64e" origin="Generated by Gradle"/>
</artifact>
- <artifact name="plugin-0.12.0.module">
- <sha256 value="f13233a99cb0bcced7e864f62c1aa130d15d9949fbae746068ae6243dbe0a70b" origin="Generated by Gradle"/>
+ <artifact name="plugin-0.13.0.module">
+ <sha256 value="49f2d405514bcb2e2823bcbb4d059ecaa50b8356dadedc97399753c00ff2edb7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.squareup" name="javapoet" version="1.10.0">
@@ -2609,9 +2630,9 @@
<sha256 value="1df8b9430b5c8ed143d7815e403e33ef5371b2400aadbe9bda0883762e0846d1" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.apache.commons" name="commons-compress" version="1.20">
- <artifact name="commons-compress-1.20.jar">
- <sha256 value="0aeb625c948c697ea7b205156e112363b59ed5e2551212cd4e460bdb72c7c06e" origin="Generated by Gradle"/>
+ <component group="org.apache.commons" name="commons-compress" version="1.21">
+ <artifact name="commons-compress-1.21.jar">
+ <sha256 value="6aecfd5459728a595601cfa07258d131972ffc39b492eb48bdd596577a2f244a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.apache.commons" name="commons-compress" version="1.23.0">
@@ -2864,14 +2885,14 @@
<sha256 value="8b0d485871f09dce9eebf2ab4ea70b08d373011160327d42c8ae0134ecf8268a" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-android-extensions" version="1.8.21">
- <artifact name="kotlin-android-extensions-1.8.21.jar">
- <sha256 value="7468557042b350db853c1684cc2e24d37b5e4a1e09220abca93a50c7ba91c08f" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-android-extensions" version="1.9.0">
+ <artifact name="kotlin-android-extensions-1.9.0.jar">
+ <sha256 value="20675bbb2a7b6982a7144518a518b9a8965f90ae89b8c9878898012244a1ea33" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-android-extensions-runtime" version="1.8.21">
- <artifact name="kotlin-android-extensions-runtime-1.8.21.jar">
- <sha256 value="8182ffc195714ee819fb5bf0e52bea89f6507721c6d747c62863d2e2f18d95f9" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-android-extensions-runtime" version="1.9.0">
+ <artifact name="kotlin-android-extensions-runtime-1.9.0.jar">
+ <sha256 value="e6649b81dad59888e8b09d581638fd166af63c59d70717c71c57351c78667e79" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-annotation-processing-gradle" version="1.8.20">
@@ -2879,11 +2900,6 @@
<sha256 value="8277ec12cac724a802bee701d5729fa6cbe12ab1520856183104746642d7374b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-annotation-processing-gradle" version="1.8.21">
- <artifact name="kotlin-annotation-processing-gradle-1.8.21.jar">
- <sha256 value="db32e31c742f3c28c9b834f777967927a34ae5140ae6583ba4698f8f932700e3" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-assignment" version="1.8.20">
<artifact name="kotlin-assignment-1.8.20-gradle76.jar">
<sha256 value="86c7794c49b040817b48952217af097a26d6a845d4e65b758428cf9763ae093d" origin="Generated by Gradle"/>
@@ -2892,14 +2908,24 @@
<sha256 value="7e13093d6da52e048b6df315f5f424a3098e24bce3d939f1f351d4345755a9df" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.jetbrains.kotlin" name="kotlin-build-tools-api" version="1.9.0">
+ <artifact name="kotlin-build-tools-api-1.9.0.jar">
+ <sha256 value="d19c9abde80a9cf42d25ecc92cb1148ed3a15eedb2672daa1e466e6da590eec6" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="org.jetbrains.kotlin" name="kotlin-build-tools-impl" version="1.9.0">
+ <artifact name="kotlin-build-tools-impl-1.9.0.jar">
+ <sha256 value="d72c379f1c75799ac0c66e6c3158f68865bdfed1a5c35c5ea41c278a1b80501a" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="1.8.20">
<artifact name="kotlin-compiler-embeddable-1.8.20.jar">
<sha256 value="5655386be55d45a78d887372bbd59d03e06750f7756108d14139e8d7e4b2e179" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="1.8.21">
- <artifact name="kotlin-compiler-embeddable-1.8.21.jar">
- <sha256 value="7f4f415fc942dcfa7bcdaa0afe8c735ccd339f1d4b9e372f9c5cc7fe043a192f" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="1.9.0">
+ <artifact name="kotlin-compiler-embeddable-1.9.0.jar">
+ <sha256 value="953b50691d74dd219ff3f6644670c3e549d87cdfc0a6154f1602a6a0a5dfe373" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="1.8.20">
@@ -2907,9 +2933,9 @@
<sha256 value="97e43499428f66889bc935c8bd9a836875b75178c61fd396603ce41d6db2f748" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="1.8.21">
- <artifact name="kotlin-compiler-runner-1.8.21.jar">
- <sha256 value="1e9f575d19a8ed35bd58f4ab961d374ce080ef3523d0a003be2c5bdc29e17d7a" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="1.9.0">
+ <artifact name="kotlin-compiler-runner-1.9.0.jar">
+ <sha256 value="05b5a55d4949161a714fcdfc64a5f04d87a364c9bbdc8641b3bb7a5557e43eaa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-daemon-client" version="1.8.20">
@@ -2917,9 +2943,9 @@
<sha256 value="298c910661e624ada4a9fb541e6db74843eb5a9f280c8739d1d4252577a8e80d" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-client" version="1.8.21">
- <artifact name="kotlin-daemon-client-1.8.21.jar">
- <sha256 value="dae82d932dd33fa46414efdc2d08f4f2c1c51634b75f951337f597007073bf10" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-daemon-client" version="1.9.0">
+ <artifact name="kotlin-daemon-client-1.9.0.jar">
+ <sha256 value="5a8c977e7dc7f0de2d91ae58bdadc20415def4cf5d493e5a183f96c597990320" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="1.8.20">
@@ -2927,9 +2953,9 @@
<sha256 value="4602bd521a708f32deced0921d06c7977056c5887359cdabfc7070e9732cb353" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="1.8.21">
- <artifact name="kotlin-daemon-embeddable-1.8.21.jar">
- <sha256 value="efcba33c80b32595ab8f37f13b08593db82c8eb9e2a8d58502a8ff3b8386912c" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="1.9.0">
+ <artifact name="kotlin-daemon-embeddable-1.9.0.jar">
+ <sha256 value="943182a137ecd40e629058da52db336cee9b666f80996b655842f20a6373df9a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="1.8.20">
@@ -2940,12 +2966,12 @@
<sha256 value="337866a70fbbd82d47c8f0a1fbbe57f2ef39ba511fd4369e924fcc8760153921" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-1.8.21-gradle76.jar">
- <sha256 value="eeb014fcab1bdc49e02ad959ea1b36a63c8cfec3fc24694e37f4eb48b23518b8" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-1.9.0-gradle81.jar">
+ <sha256 value="d943a0e27b4746e01f83405a49f526a22f471b1db1d4639d6fce26d711effbfe" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-gradle-plugin-1.8.21.module">
- <sha256 value="08a5310a6a95ced220173efdd8d9f03ec6553cb1a4b5c12e82e45bb99c9cec9b" origin="Generated by Gradle"/>
+ <artifact name="kotlin-gradle-plugin-1.9.0.module">
+ <sha256 value="fe639645ed8fbdc5bc12de7cf25468a4db31e763ba79adbaa206a14de60fd314" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-annotations" version="1.8.20">
@@ -2953,9 +2979,9 @@
<sha256 value="32baa93f157652b6d3a870a41c967fc09195261110d4b7acf9fb53409ef0cf1c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-annotations" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-annotations-1.8.21.jar">
- <sha256 value="37b2dd3c8af210dcf6960e54af28767e057c62dda45b66c5179e6e722aefa2cf" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-annotations" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-annotations-1.9.0.jar">
+ <sha256 value="2a265b35bc7c55821426e91b6a3cd4f4b91638a0bc7c87dfcfe4e05f7e884738" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-api" version="1.8.20">
@@ -2969,15 +2995,15 @@
<sha256 value="38d21a11f9183cfe5bce8498af45fdfe6cfd26c7767a3cee9bc2f1f2cda33ee0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-api" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-api-1.8.21-gradle76.jar">
- <sha256 value="41490f12ad0f396c69baefa53c6e4f3381f147b69e12430b46f24fe5530c537c" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-api" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-api-1.9.0-gradle81.jar">
+ <sha256 value="0216ecb0c780f95e3b101a0e95cfc367f2ef56b06f2deaaaa9925a0f117c20d9" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-gradle-plugin-api-1.8.21.jar">
- <sha256 value="41490f12ad0f396c69baefa53c6e4f3381f147b69e12430b46f24fe5530c537c" origin="Generated by Gradle"/>
+ <artifact name="kotlin-gradle-plugin-api-1.9.0.jar">
+ <sha256 value="0216ecb0c780f95e3b101a0e95cfc367f2ef56b06f2deaaaa9925a0f117c20d9" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-gradle-plugin-api-1.8.21.module">
- <sha256 value="9d9a94a7f8fa107f3ce7d375dc00731a31afba23e40fd5cb0193aa71b8ed9258" origin="Generated by Gradle"/>
+ <artifact name="kotlin-gradle-plugin-api-1.9.0.module">
+ <sha256 value="1aed565a28d91342ac5a4ba146c2856a5ebbc639285c529552179fafc7614ddb" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea" version="1.8.20">
@@ -2988,12 +3014,12 @@
<sha256 value="3f4931330ad21222bc920b40ffd484ffac46e924d49a89780bc7f42ca5673942" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-idea-1.8.21.jar">
- <sha256 value="503049a1dfc2830a2347dd1bf298d2727e99d2e9673b15c2884e208553dd6adb" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-idea-1.9.0.jar">
+ <sha256 value="0bb26ccee372afb9b584f2857e87cc2f3f532b62a4f7fa457558f3afc3abe995" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-gradle-plugin-idea-1.8.21.module">
- <sha256 value="ae5ec66d98a2b606b6190a8c87c23666fedc2f727f8b9ea167d38cb1e33ffe9d" origin="Generated by Gradle"/>
+ <artifact name="kotlin-gradle-plugin-idea-1.9.0.module">
+ <sha256 value="a5583cd9b0b4012e955ad9619fb9017b5b1aa2c251b0596daf5334904c5ca65b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea-proto" version="1.8.20">
@@ -3001,9 +3027,9 @@
<sha256 value="a9bd6d04aab7d74bffc60a9485f90c0f4524d1e94a2ee6fc0f78ee8d56f2aeeb" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea-proto" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-idea-proto-1.8.21.jar">
- <sha256 value="10f2cbf865bff376040e41ea2479f0f50f590efc4afeac5ddbb38f251509ca12" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-idea-proto" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-idea-proto-1.9.0.jar">
+ <sha256 value="e78998ea22bcd5f56d13982ccc124c9c7337bd150754cbdc8af2a148d76c9700" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-model" version="1.8.20">
@@ -3014,12 +3040,12 @@
<sha256 value="171e2e013bf9a997be518af2030a17e9a90f5bdd1a2da3f5d7de382ea3738fb1" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-model" version="1.8.21">
- <artifact name="kotlin-gradle-plugin-model-1.8.21.jar">
- <sha256 value="497026858128a22a8e296f2236dd48ebed49d4034c6dc2c332cb6c931c2515cd" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin-model" version="1.9.0">
+ <artifact name="kotlin-gradle-plugin-model-1.9.0.jar">
+ <sha256 value="ff05aab688b34a7992a7e35f9dc4dec25843f13a9e970aefe56dd3e122a08415" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-gradle-plugin-model-1.8.21.module">
- <sha256 value="3263766f403817fb39592d760a100d585061ceb156af79e34a5a9b97c169836e" origin="Generated by Gradle"/>
+ <artifact name="kotlin-gradle-plugin-model-1.9.0.module">
+ <sha256 value="66f4b914470cf346e05d03f8a2d59e9c746fa6edcf64c712f176a0881aac3e49" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="1.8.20">
@@ -3027,9 +3053,9 @@
<sha256 value="54268e341e77095107fa97b19ffa436321341fa0f6a00b78dcb2885624aea954" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="1.8.21">
- <artifact name="kotlin-gradle-plugins-bom-1.8.21.module">
- <sha256 value="6535c7b5e381d7aa8782355f30c18152747df1d54c06e4585ce11b4a496c339d" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="1.9.0">
+ <artifact name="kotlin-gradle-plugins-bom-1.9.0.module">
+ <sha256 value="fd2b9f69b82e43cb509f0841b18bf3c5df7dab5f1e0bea034fc0b2a599d6e296" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-api" version="1.8.20">
@@ -3037,9 +3063,9 @@
<sha256 value="9a93d99b26044f648ca8aa0491b53b14b3415cbc7e05b43ce12b031a22a27040" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-api" version="1.8.21">
- <artifact name="kotlin-klib-commonizer-api-1.8.21.jar">
- <sha256 value="8c6d3f1b3a592c7d9f3c659e52513b4041df63c236ff4bb3bbceff78c43c8e6f" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-api" version="1.9.0">
+ <artifact name="kotlin-klib-commonizer-api-1.9.0.jar">
+ <sha256 value="85de2e972b0bb6f4528c1f748f43c48663145fc8539eca96c13d1bc0da3f935d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-embeddable" version="1.8.20">
@@ -3047,9 +3073,9 @@
<sha256 value="3803e9b9f9f77f239fdcc82d677b8ae62326b3245bc443d256e64d55c7e647c0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-embeddable" version="1.8.21">
- <artifact name="kotlin-klib-commonizer-embeddable-1.8.21.jar">
- <sha256 value="2983ef02c659d20dce8e4fce0fa76af61d45afc495685ca57c464d39b765ff9a" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-klib-commonizer-embeddable" version="1.9.0">
+ <artifact name="kotlin-klib-commonizer-embeddable-1.9.0.jar">
+ <sha256 value="cdd6264d724f71129a9308be24402ca8c71c2ab202cb03b684499da97add4b84" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="1.8.20">
@@ -3057,19 +3083,19 @@
<sha256 value="a2eca6b8b5b3cf40b8c0482d2cf5631272ddd945d76082eb67a6e8e71f0a855e" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="1.8.21">
- <artifact name="kotlin-native-utils-1.8.21.jar">
- <sha256 value="1e7b16efc966e2a0cd415602ea9de2da791f25b31d1f17900437b4f05075654c" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-native-utils" version="1.9.0">
+ <artifact name="kotlin-native-utils-1.9.0.jar">
+ <sha256 value="0f4805f774bfb5c1b6d145dfe60d3d20b1aee000896ce8ecf3eeff84ce44023b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-parcelize-compiler" version="1.8.21">
- <artifact name="kotlin-parcelize-compiler-1.8.21.jar">
- <sha256 value="fd64c8da6815635fea1851b1bec23522efd5fd13e9edbc509f14c0e604aee877" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-parcelize-compiler" version="1.9.0">
+ <artifact name="kotlin-parcelize-compiler-1.9.0.jar">
+ <sha256 value="937f568ed9b27049955b6c2829823e0ea539acfcfc2956ee6d3b69e61a9ec148" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-parcelize-runtime" version="1.8.21">
- <artifact name="kotlin-parcelize-runtime-1.8.21.jar">
- <sha256 value="3c0030254234d4375be0067341162a176a06ea1aac9544c8d2f8ac40b8aeb7d2" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-parcelize-runtime" version="1.9.0">
+ <artifact name="kotlin-parcelize-runtime-1.9.0.jar">
+ <sha256 value="fa690509c83219b99dcbe15222a338095a6f7c859877d4c1a7280179583693c0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-project-model" version="1.8.20">
@@ -3077,9 +3103,9 @@
<sha256 value="46cf347746096cfa156c7da8f335f6adaacabf9881c164400a387a4819248984" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-project-model" version="1.8.21">
- <artifact name="kotlin-project-model-1.8.21.jar">
- <sha256 value="e869123450af7a213a3053486153b7347d3e7238a1511ccbc26ea991bd7d748e" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-project-model" version="1.9.0">
+ <artifact name="kotlin-project-model-1.9.0.jar">
+ <sha256 value="ae0936e9b4c6921f03ef779361cacbbb75ed2b2210479f92f65f1cbac86e340c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.6.10">
@@ -3087,19 +3113,19 @@
<sha256 value="3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.7.10">
- <artifact name="kotlin-reflect-1.7.10.jar">
- <sha256 value="187c5e5a588a6ed18c3a41b54df138a5944121bdb396be1c3fa4abee67397955" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.8.20">
<artifact name="kotlin-reflect-1.8.20.jar">
<sha256 value="531e3c3f9b0c45f9a21f1642174453066a1066bec0190254a6331b331814ab8b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.8.21">
- <artifact name="kotlin-reflect-1.8.21.jar">
- <sha256 value="8a6cd5a3cf092acee274ce2c444dc36eefdb631579859dd4d857b3309a529c91" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.8.20-RC2">
+ <artifact name="kotlin-reflect-1.8.20-RC2.jar">
+ <sha256 value="688de34ee30a0bcffd9fccdefa0f4c28af158bcf639d221502c3ea7c38e6a0a0" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.9.0">
+ <artifact name="kotlin-reflect-1.9.0.jar">
+ <sha256 value="2070159be514ea8ea3ce2c8b1ee7993e6ff60a93565a299f200629aa7df7f581" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-sam-with-receiver" version="1.8.20">
@@ -3115,9 +3141,9 @@
<sha256 value="4bddc06cad20bb843fbd24094b1dc3c31f55508c6918885e8b548f2ebaa8a93e" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="1.8.21">
- <artifact name="kotlin-script-runtime-1.8.21.jar">
- <sha256 value="0a9d7eddda383a373c9e01fd3ec0dfb1ec81c0c15a5b05027991fe0342473cd7" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="1.9.0">
+ <artifact name="kotlin-script-runtime-1.9.0.jar">
+ <sha256 value="d84d0cca41050fac2a952d1104473c329aff04c50b37132e5754a209809add9f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="1.8.20">
@@ -3125,9 +3151,9 @@
<sha256 value="a1c6cf4bb49db97a7082bc461acfdf3e163af1b625ab9baa5d7e3e5f9648badc" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="1.8.21">
- <artifact name="kotlin-scripting-common-1.8.21.jar">
- <sha256 value="3f4439d47d2e542433dfa39d2a7514bf7e60aeb8e9db6b96102806684fbafd5f" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="1.9.0">
+ <artifact name="kotlin-scripting-common-1.9.0.jar">
+ <sha256 value="285c41c0eeed59a0e7dcb188b89f8154147fbcbbd535471cf69896ccda273f84" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="1.8.20">
@@ -3135,9 +3161,9 @@
<sha256 value="67c4bbe4d58f2c76aa4249ab9b8b36e95023d318d33f8a2a1e8fe743b4b1f32a" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="1.8.21">
- <artifact name="kotlin-scripting-compiler-embeddable-1.8.21.jar">
- <sha256 value="0a133c06d0b18f98a2a5f556062d8a151d9e19c80334ff10be6b680d33a95189" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-embeddable" version="1.9.0">
+ <artifact name="kotlin-scripting-compiler-embeddable-1.9.0.jar">
+ <sha256 value="469dd12068958a97afce1188a0144554cded67de5a1aa0bf5ca53039f29d8b36" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="1.8.20">
@@ -3145,9 +3171,9 @@
<sha256 value="e789192f39357dbdf4c8a94cd2fafe860de0c0530d34bf1c2c634b75b880f4a2" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="1.8.21">
- <artifact name="kotlin-scripting-compiler-impl-embeddable-1.8.21.jar">
- <sha256 value="72b8d6ef72addb237605a170d5f3c561254e39a903d46ca31aff0ede969b163e" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-scripting-compiler-impl-embeddable" version="1.9.0">
+ <artifact name="kotlin-scripting-compiler-impl-embeddable-1.9.0.jar">
+ <sha256 value="65c5256e2c8fbdda426c03286e6a268267d712ef95ec2d39c95292957378b04d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="1.8.20">
@@ -3155,9 +3181,9 @@
<sha256 value="2e1889c89c785440ac126935187baaa83a6fc66deeb530491f943a38bf3bc8c0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="1.8.21">
- <artifact name="kotlin-scripting-jvm-1.8.21.jar">
- <sha256 value="fa7f46ece55a4ebc4435e363c1e2016e2c28f4fe80a1aed5db3d0eae9d31f5dd" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-scripting-jvm" version="1.9.0">
+ <artifact name="kotlin-scripting-jvm-1.9.0.jar">
+ <sha256 value="669dd2bc60418e075153fd8ad8d965be569eb65c2f308388cb1103b9df135159" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.4.21">
@@ -3165,11 +3191,6 @@
<sha256 value="f78c5d8c09db985912ab83a1de3c3b53ddf208d7b151f06a72358ea3e137d01b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.7.10">
- <artifact name="kotlin-stdlib-1.7.10.jar">
- <sha256 value="e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.10">
<artifact name="kotlin-stdlib-1.8.10.jar">
<sha256 value="17e1076131cd07c958a942ff8a087cf865b1ef3de58463e1e5dd6fd7515406b0" origin="Generated by Gradle"/>
@@ -3180,14 +3201,14 @@
<sha256 value="4395647b1961d9fb730a34e8dbe56c293157bc0759004cca63d9b5ee6653e5c7" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.21">
- <artifact name="kotlin-stdlib-1.8.21.jar">
- <sha256 value="042a1cd1ac976cdcfe5eb63f1d8e0b0b892c9248e15a69c8cfba495d546ea52a" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.20-RC2">
+ <artifact name="kotlin-stdlib-1.8.20-RC2.jar">
+ <sha256 value="b38ad921299f9365e77a323ec42ebc2e1048c6589af982fbbec0e520f6178036" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.22">
- <artifact name="kotlin-stdlib-1.8.22.jar">
- <sha256 value="03a5c3965cc37051128e64e46748e394b6bd4c97fa81c6de6fc72bfd44e3421b" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.9.0">
+ <artifact name="kotlin-stdlib-1.9.0.jar">
+ <sha256 value="35aeffbe2db5aa446072cee50fcee48b7fa9e2fc51ca37c0cc7d7d0bc39d952e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.4.21">
@@ -3195,24 +3216,19 @@
<sha256 value="812cf197d9c4c67e1f47f95e2d72a9b600f0d1124560617bfe9850773eccbcff" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.7.10">
- <artifact name="kotlin-stdlib-common-1.7.10.jar">
- <sha256 value="19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.20">
<artifact name="kotlin-stdlib-common-1.8.20.jar">
<sha256 value="fa20188abaa8ecf1d0035e93a969b071f10e45a1c8378c314521eade73f75fd5" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.21">
- <artifact name="kotlin-stdlib-common-1.8.21.jar">
- <sha256 value="6a44c9ecc9d7754d9e943fb1e3588c74d4a3f1785be51074f49d6c5723682a73" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.20-RC2">
+ <artifact name="kotlin-stdlib-common-1.8.20-RC2.jar">
+ <sha256 value="b08ea47de30aedc28804b8fb4c391e3c38867e82c4b1f5cb83bb3caaf7a0e4c3" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.22">
- <artifact name="kotlin-stdlib-common-1.8.22.jar">
- <sha256 value="d0c2365e2437ef70f34586d50f055743f79716bcfe65e4bc7239cdd2669ef7c5" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.9.0">
+ <artifact name="kotlin-stdlib-common-1.9.0.jar">
+ <sha256 value="283274204bd7c020789ec46f8f8e72af4244d7f550b3392a57e5ca006ad7aa2c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.21">
@@ -3220,11 +3236,6 @@
<sha256 value="f1b0634dbb94172038463020bb2dd45ca26849f8ce29d625acb0f1569d11dbee" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.10">
- <artifact name="kotlin-stdlib-jdk7-1.7.10.jar">
- <sha256 value="54f61351b1936ad88f4e53059fe781e723eae51d78ed9e7422d8b403574ec682" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.20">
<artifact name="kotlin-stdlib-jdk7-1.7.20.jar">
<sha256 value="524da3c1a2ad56fd52c4ae2272ef3de421de8d2047ab1c51fc306d351243f2f5" origin="Generated by Gradle"/>
@@ -3235,14 +3246,14 @@
<sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.21">
- <artifact name="kotlin-stdlib-jdk7-1.8.21.jar">
- <sha256 value="33d148db0e11debd0d90677d28242bced907f9c77730000fd597867089039d86" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.20-RC2">
+ <artifact name="kotlin-stdlib-jdk7-1.8.20-RC2.jar">
+ <sha256 value="674225347fe382ba9d52ce56ee67255b813a3ef28d16553eab323f9131002bd0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.22">
- <artifact name="kotlin-stdlib-jdk7-1.8.22.jar">
- <sha256 value="055f5cb24287fa106100995a7b47ab92126b81e832e875f5fa2cf0bd55693d0b" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.9.0">
+ <artifact name="kotlin-stdlib-jdk7-1.9.0.jar">
+ <sha256 value="b7979a7aac94055f0d9f1fd3b47ce5ffe1cb6032a842ba9fbe7186f085289178" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.21">
@@ -3250,11 +3261,6 @@
<sha256 value="dab45489b47736d59fce44b80676f1947a9b6bcab10fd60e878a83bd82a6954c" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.10">
- <artifact name="kotlin-stdlib-jdk8-1.7.10.jar">
- <sha256 value="8aafdd60c94f454c92e5066d266a5ed53ecc63c78f623b3fd9db56fea4032873" origin="Generated by Gradle"/>
- </artifact>
- </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.20">
<artifact name="kotlin-stdlib-jdk8-1.7.20.jar">
<sha256 value="1da0d306c995945e1f807240ef64b5cd2dd5ac58612afb1a8596143d10b7ded5" origin="Generated by Gradle"/>
@@ -3265,14 +3271,14 @@
<sha256 value="e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.21">
- <artifact name="kotlin-stdlib-jdk8-1.8.21.jar">
- <sha256 value="3db752a30074f06ee6c57984aa6f27da44f4d2bbc7f5442651f6988f1cb2b7d7" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.20-RC2">
+ <artifact name="kotlin-stdlib-jdk8-1.8.20-RC2.jar">
+ <sha256 value="83db746a1451310f00a37b915d7106451fd09a27a7621d99411b7bfdd055d2bd" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.22">
- <artifact name="kotlin-stdlib-jdk8-1.8.22.jar">
- <sha256 value="4198b0eaf090a4f25b6f7e5a59581f4314ba8c9f6cd1d13ee9d348e65ed8f707" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.9.0">
+ <artifact name="kotlin-stdlib-jdk8-1.9.0.jar">
+ <sha256 value="a59fa24fdf1ffb594baecdbf0fd10010f977cea10236d487fe3464977a7377fa" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-test" version="1.6.10">
@@ -3283,12 +3289,12 @@
<sha256 value="0408c2443d253dc0836517a84d81e788adc8dbcb6024af3f4629ce70a2ff632b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-test" version="1.8.21">
- <artifact name="kotlin-test-1.8.21.jar">
- <sha256 value="6a50287eb04eced423f397ce084464129cd31938218ec57ba094b659ef150b60" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-test" version="1.9.0">
+ <artifact name="kotlin-test-1.9.0.jar">
+ <sha256 value="1d3eda9c22280bca139a376de8f27300a8350427d942fad8e68dd4ce4063f49d" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-test-1.8.21.module">
- <sha256 value="989e9fb9953f137824d24ffbe17802240946ee92f713e5049b43d1f1e9cf98c8" origin="Generated by Gradle"/>
+ <artifact name="kotlin-test-1.9.0.module">
+ <sha256 value="cef088df1bf6f068a4dbfae13f17446729ca3eaee435806cfa15f759166ca082" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-test-annotations-common" version="1.8.21">
@@ -3296,17 +3302,27 @@
<sha256 value="a70b033a758b2b89c86621cea24ce6a175dc257600f13d7c30be3b3174b66316" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.jetbrains.kotlin" name="kotlin-test-annotations-common" version="1.9.0">
+ <artifact name="kotlin-test-annotations-common-1.9.0.jar">
+ <sha256 value="7c77235c2b46ca171777fdb0050e6dbe9eecbc1774a5a340c6c016996fade0e8" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.jetbrains.kotlin" name="kotlin-test-common" version="1.8.21">
<artifact name="kotlin-test-common-1.8.21.jar">
<sha256 value="c740a3169a09e66b278c7fe2df5f45a94c4d37926e085c28b42846abd5089fff" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-test-junit" version="1.8.21">
- <artifact name="kotlin-test-junit-1.8.21.jar">
- <sha256 value="a6f2baebd60ad3a200e595d820bcb03b48261fb0c9fa8d6e502b6d1c6cb59f68" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-test-common" version="1.9.0">
+ <artifact name="kotlin-test-common-1.9.0.jar">
+ <sha256 value="7950a4e0baddf7969b0f3d8f65a93f12068b515b0e4d6154d5b0dcbb3ff1cd94" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlin-test-junit-1.8.21.module">
- <sha256 value="2339e0e701c30ed9f361ea506a890b2cbe9255286a93e51882969e113b99a98e" origin="Generated by Gradle"/>
+ </component>
+ <component group="org.jetbrains.kotlin" name="kotlin-test-junit" version="1.9.0">
+ <artifact name="kotlin-test-junit-1.9.0.jar">
+ <sha256 value="321d88dd91a8f1bfad4052be258547f13a17223d83e013eedbff6d5d652ba28b" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="kotlin-test-junit-1.9.0.module">
+ <sha256 value="bcfe908131c968867eabb7dc36a042d575c83f9811c560b239fb1b38c91cfd60" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="1.8.20">
@@ -3314,9 +3330,9 @@
<sha256 value="7a412677e73a59588cdad4cb9c7f8e3bb70bae5db66933b4b3f3ece0071b4cad" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="1.8.21">
- <artifact name="kotlin-tooling-core-1.8.21.jar">
- <sha256 value="7a412677e73a59588cdad4cb9c7f8e3bb70bae5db66933b4b3f3ece0071b4cad" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="1.9.0">
+ <artifact name="kotlin-tooling-core-1.9.0.jar">
+ <sha256 value="e539a22428b9cac67f75b2d61f2b6e2a718350d7bb31823c7dca8907f90999ae" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-util-io" version="1.8.20">
@@ -3324,9 +3340,9 @@
<sha256 value="2d251d7a48bde1e1ec816969275473a044bb341bfe1c08593a0b51f1ef3f8b7b" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-io" version="1.8.21">
- <artifact name="kotlin-util-io-1.8.21.jar">
- <sha256 value="f4207c62978bee4cdc1207f79b8d97daaa1e5031ea2329eec6cc0b1d7418c711" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-util-io" version="1.9.0">
+ <artifact name="kotlin-util-io-1.9.0.jar">
+ <sha256 value="81d36dc6de3f0beaf04c397a06b568213ba373abcef53972b7b82f617d5af70b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-util-klib" version="1.8.20">
@@ -3334,9 +3350,9 @@
<sha256 value="51bc74326401b4d3fa4e784f89c51c7932ee52998b619271e88f175dead82242" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-util-klib" version="1.8.21">
- <artifact name="kotlin-util-klib-1.8.21.jar">
- <sha256 value="d30ef0448aedf5a3d589697b7ba3ddf35cabe9a91335b274a045bfcb93ab2677" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlin" name="kotlin-util-klib" version="1.9.0">
+ <artifact name="kotlin-util-klib-1.9.0.jar">
+ <sha256 value="c2dc6bf36d3369b773755ab8937b97e539a4d45d3815bef19bedfa154b12d313" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="atomicfu" version="0.17.0">
@@ -3355,12 +3371,12 @@
<sha256 value="52fa54a8e4dee808c8fecf51b3924788e8b5576caaf27d6d60afa6580fad4af0" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="atomicfu" version="0.20.2">
- <artifact name="atomicfu-0.20.2.module">
- <sha256 value="2c995e0e83c583e125706fba3fe85170020d17a88f89d6294a53cd8bd7c4c384" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="atomicfu" version="0.21.0">
+ <artifact name="atomicfu-0.21.0.module">
+ <sha256 value="c4aba64788420b0b54c877900f27ba385c3d170e878ca2faf378ec315cfcb076" origin="Generated by Gradle"/>
</artifact>
- <artifact name="atomicfu-metadata-0.20.2-all.jar">
- <sha256 value="2a91f10b826d3febc47c2b664e268615757c311114239787f5dc37481fdec441" origin="Generated by Gradle"/>
+ <artifact name="atomicfu-metadata-0.21.0-all.jar">
+ <sha256 value="f31e5b2fd52eb73a0303cffe5c63c8390ca7cf459a02dcf06faa383dd4bb88d3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="atomicfu-jvm" version="0.17.0">
@@ -3387,12 +3403,12 @@
<sha256 value="68516559e6f84a621b9783cd892a64630ccd7875843588ddb3f0501425e33f15" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-android" version="1.7.1">
- <artifact name="kotlinx-coroutines-android-1.7.1.jar">
- <sha256 value="107313760c18f8da174e8d8103504a468e806e88f7b55a84bd1c0eaeea118e9a" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-android" version="1.7.3">
+ <artifact name="kotlinx-coroutines-android-1.7.3.jar">
+ <sha256 value="59fffb26bee12c32dadcfa5d420c2a7db85d3253518128b170efda726613256d" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-android-1.7.1.module">
- <sha256 value="beb7ff0f5ebc63a0b30af2ae1214e0b622a7b7e408240e64a8ea5b213c4d5334" origin="Generated by Gradle"/>
+ <artifact name="kotlinx-coroutines-android-1.7.3.module">
+ <sha256 value="48dfd8139edee5481bcc8b25e24d7586aca615f0d1ed2beb242dc7478ed4cee0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.6.1">
@@ -3416,12 +3432,17 @@
<sha256 value="ae24d84fd33c5aaba1564b168142d0f210b0e257e0a0077e32616acc59e67fb7" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.7.1">
- <artifact name="kotlinx-coroutines-core-1.7.1.module">
- <sha256 value="a9cc0c2bee3c6fc4ba8d0e753a3f3e70e181da5df3a2589ee54e92807b33accf" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.7.2">
+ <artifact name="kotlinx-coroutines-core-1.7.2.module">
+ <sha256 value="7fd2cc80a38836ffa4315c2c553df21581e7e3441b6a507fb1e93b3a07a4b95f" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.7.3">
+ <artifact name="kotlinx-coroutines-core-1.7.3.module">
+ <sha256 value="7fb162396594ec28e1b6a4411b457949a7670f5e12019176774e1fd6b9471bbf" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-core-metadata-1.7.1-all.jar">
- <sha256 value="b7d5370ed0e54952003b13595a67b97ced3f873d919f5ddfbe50fcd499cbf0a7" origin="Generated by Gradle"/>
+ <artifact name="kotlinx-coroutines-core-metadata-1.7.3.jar">
+ <sha256 value="f9522095aedcc2a6ab32c7484061ea698352c71be1390adb403b59aa48a38fdc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.5.0">
@@ -3448,20 +3469,20 @@
<sha256 value="7d123a4dc35526324c57b2bdabfd73870fca623e5f9be4ad6926f403b284a975" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.6.4">
- <artifact name="kotlinx-coroutines-core-jvm-1.6.4.jar">
- <sha256 value="c24c8bb27bb320c4a93871501a7e5e0c61607638907b197aef675513d4c820be" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.2">
+ <artifact name="kotlinx-coroutines-core-jvm-1.7.2.jar">
+ <sha256 value="754f3a0f11dcaa019bf17c4f67836b371eb4f37693ac8e7c3badf5c6b1308d7c" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.6.4.module">
- <sha256 value="0d94c8a41483e7c2707ebd693e1b1357a84152998ce85550ebbc54ca4321a3a7" origin="Generated by Gradle"/>
+ <artifact name="kotlinx-coroutines-core-jvm-1.7.2.module">
+ <sha256 value="eeb98e0e33a5f85bc50773006a18963574a47559fa225033d90172276b57a080" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.1">
- <artifact name="kotlinx-coroutines-core-jvm-1.7.1.jar">
- <sha256 value="7496cffdd3eb10109acdda1c3212f6ac7815789e09380dc9e2ccdec496dba3fc" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.3">
+ <artifact name="kotlinx-coroutines-core-jvm-1.7.3.jar">
+ <sha256 value="1ab3acc38f3e7355c4f9d1ec62107a46fa73c899f3070d055e5d4373dfe67e12" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-core-jvm-1.7.1.module">
- <sha256 value="db1fe0110fa82b565d332d39d3f3e62c1dc7eb6238333e3b15e4377fa56e39cb" origin="Generated by Gradle"/>
+ <artifact name="kotlinx-coroutines-core-jvm-1.7.3.module">
+ <sha256 value="34d6ee99b76ac062b51555b4a70be18349fe5566da79a190614f171c80b6538e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test" version="1.6.4">
@@ -3472,11 +3493,11 @@
<sha256 value="c12477e4ba868d758dbfd7faa7ac60309933797e75ccef60a161f05f223ae378" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test" version="1.7.1">
- <artifact name="kotlinx-coroutines-test-1.7.1.module">
- <sha256 value="3cce9ab6fc5f1df304ac81901aba4ff0b971223a021d807a6e711dd6cfefc97d" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test" version="1.7.3">
+ <artifact name="kotlinx-coroutines-test-1.7.3.module">
+ <sha256 value="8c453215b4671a458fa4f2026e70b40807b7cf8d40605d028e522acc2747372c" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-test-metadata-1.7.1-all.jar">
+ <artifact name="kotlinx-coroutines-test-metadata-1.7.3.jar">
<sha256 value="2ddfad185b7cc7e3a2e4707c916525d37ce62cf6572ad5fcac2b9f4ba70e010a" origin="Generated by Gradle"/>
</artifact>
</component>
@@ -3485,12 +3506,12 @@
<sha256 value="1de1976cdf3f5625e88815795259c6046a5de7c0121143bd9ce55353017169a6" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test-jvm" version="1.7.1">
- <artifact name="kotlinx-coroutines-test-jvm-1.7.1.jar">
- <sha256 value="bf88e8f0a8d88033d961d93435a132caf88fe35cee266bf71c48689eceddc72d" origin="Generated by Gradle"/>
+ <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-test-jvm" version="1.7.3">
+ <artifact name="kotlinx-coroutines-test-jvm-1.7.3.jar">
+ <sha256 value="d19742a65dbdabc9ffdcb9f84a15c776e511a14da602d54ea4e078d6f7227a26" origin="Generated by Gradle"/>
</artifact>
- <artifact name="kotlinx-coroutines-test-jvm-1.7.1.module">
- <sha256 value="027c3de1a15e6c5fc054f1e2edc7ebc1eb9d785466abf1b04e10d2d7856b9439" origin="Generated by Gradle"/>
+ <artifact name="kotlinx-coroutines-test-jvm-1.7.3.module">
+ <sha256 value="505008736a6cfab649f81db603eee3b2f828f5d877712a38939efdd5f1fc5170" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jsoup" name="jsoup" version="1.12.2">
diff --git a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/Intermittent.kt b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/Intermittent.kt
index 38b152b00a..448d96778f 100644
--- a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/Intermittent.kt
+++ b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/Intermittent.kt
@@ -39,6 +39,7 @@ class Intermittent<T> {
// resume execution. This allows performing any extra initialization before the value is made
// available for usage.
fun registerListener(id: Any, listener: (T?) -> Unit) = notifier.subscribe(id, listener)
+
fun unregisterListener(id: Any) = notifier.unsubscribe(id)
suspend fun await(): T {
diff --git a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Message.kt b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Message.kt
index dd5f9442e1..7cc293b373 100644
--- a/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Message.kt
+++ b/android/lib/ipc/src/main/kotlin/net/mullvad/mullvadvpn/lib/ipc/Message.kt
@@ -6,6 +6,7 @@ import android.os.Parcelable
sealed class Message(private val messageId: Int) : Parcelable {
abstract class EventMessage : Message(1)
+
abstract class RequestMessage : Message(2)
protected abstract val messageKey: String
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceList.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceList.kt
index de1acb0e23..afe5982ed5 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceList.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceList.kt
@@ -2,6 +2,8 @@ package net.mullvad.mullvadvpn.model
sealed class DeviceList {
object Unavailable : DeviceList()
+
data class Available(val devices: List<Device>) : DeviceList()
+
object Error : DeviceList()
}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/GetAccountDataResult.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/GetAccountDataResult.kt
index cbed622df6..2e94266e2a 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/GetAccountDataResult.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/GetAccountDataResult.kt
@@ -2,7 +2,10 @@ package net.mullvad.mullvadvpn.model
sealed class GetAccountDataResult {
class Ok(val accountData: AccountData) : GetAccountDataResult()
+
object InvalidAccount : GetAccountDataResult()
+
object RpcError : GetAccountDataResult()
+
object OtherError : GetAccountDataResult()
}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/LocationConstraint.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/LocationConstraint.kt
index de7dd4e99b..0c9d331e3b 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/LocationConstraint.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/LocationConstraint.kt
@@ -6,5 +6,6 @@ import kotlinx.parcelize.Parcelize
sealed class LocationConstraint : Parcelable {
@Parcelize
data class Location(val location: GeographicLocationConstraint) : LocationConstraint()
+
@Parcelize data class CustomList(val listId: String) : LocationConstraint()
}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettingsUpdate.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettingsUpdate.kt
index 85f5de2a32..a7d4c0b03d 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettingsUpdate.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelaySettingsUpdate.kt
@@ -2,5 +2,6 @@ package net.mullvad.mullvadvpn.model
sealed class RelaySettingsUpdate {
object CustomTunnelEndpoint : RelaySettingsUpdate()
+
data class Normal(var constraints: RelayConstraintsUpdate) : RelaySettingsUpdate()
}
diff --git a/android/lib/resource/lint-baseline.xml b/android/lib/resource/lint-baseline.xml
index 81140b098e..1fa0b32b28 100644
--- a/android/lib/resource/lint-baseline.xml
+++ b/android/lib/resource/lint-baseline.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.0.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.2)" variant="all" version="8.0.2">
+<issues format="6" by="lint 8.1.0" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0)" variant="all" version="8.1.0">
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="3"
+ column="5"/>
+ </issue>
<issue
id="MissingQuantity"
@@ -14,6 +25,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="3"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="3"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="7"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;months_left&quot;>"
errorLine2=" ^">
@@ -25,6 +69,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="7"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="7"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="11"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;years_left&quot;>"
errorLine2=" ^">
@@ -36,6 +113,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="11"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="11"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="15"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;days_ago&quot;>"
errorLine2=" ^">
@@ -47,6 +157,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="15"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;days_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="15"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;minutes_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;minutes_ago&quot;>"
errorLine2=" ^">
@@ -58,6 +201,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;minutes_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;minutes_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;months_ago&quot;>"
errorLine2=" ^">
@@ -69,6 +245,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;months_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;years_ago&quot;>"
errorLine2=" ^">
@@ -80,6 +289,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;years_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;hours_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="31"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;hours_ago&quot;>"
errorLine2=" ^">
@@ -91,6 +333,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;hours_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="31"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;hours_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="31"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_days&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="35"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_days&quot;>"
errorLine2=" ^">
@@ -102,6 +377,39 @@
<issue
id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_days&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="35"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_days&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="35"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;es&quot; (Spanish) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_hours&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-es/plurals.xml"
+ line="39"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_hours&quot;>"
errorLine2=" ^">
@@ -112,6 +420,28 @@
</issue>
<issue
+ id="MissingQuantity"
+ message="For locale &quot;it&quot; (Italian) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_hours&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-it/plurals.xml"
+ line="39"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;pt&quot; (Portuguese) the following quantity should also be defined: `many`"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_hours&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="39"
+ column="5"/>
+ </issue>
+
+ <issue
id="ImpliedQuantity"
message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
errorLine1=" &lt;item quantity=&quot;one&quot;>1 jour restant&lt;/item>"
diff --git a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/ConnectivityListener.kt b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/ConnectivityListener.kt
index de56ebb878..cdc16567e1 100644
--- a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/ConnectivityListener.kt
+++ b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/ConnectivityListener.kt
@@ -65,5 +65,6 @@ class ConnectivityListener {
}
private external fun notifyConnectivityChange(isConnected: Boolean, senderAddress: Long)
+
private external fun destroySender(senderAddress: Long)
}
diff --git a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
index a94bfac428..caa8f11447 100644
--- a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
+++ b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
@@ -146,5 +146,6 @@ open class TalpidVpnService : VpnService() {
}
private external fun defaultTunConfig(): TunConfig
+
private external fun waitForTunnelUp(tunFd: Int, isIpv6Enabled: Boolean)
}
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/DaemonInstance.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/DaemonInstance.kt
index 4e121bc693..236cdeb84a 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/DaemonInstance.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/DaemonInstance.kt
@@ -16,6 +16,7 @@ import net.mullvad.mullvadvpn.lib.endpoint.ApiEndpointConfiguration
class DaemonInstance(private val vpnService: MullvadVpnService) {
sealed class Command {
data class Start(val apiEndpointConfiguration: ApiEndpointConfiguration) : Command()
+
object Stop : Command()
}
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
index 36d640c719..eacd2d4bc9 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
@@ -23,7 +23,9 @@ class ForegroundNotificationManager(
) {
private sealed class UpdaterMessage {
class UpdateNotification : UpdaterMessage()
+
class UpdateAction : UpdaterMessage()
+
class NewTunnelState(val newState: TunnelState) : UpdaterMessage()
}
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
index 089e13ef31..6fa03978f7 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
@@ -204,36 +204,52 @@ class MullvadDaemon(
private external fun deinitialize()
private external fun connect(daemonInterfaceAddress: Long)
+
private external fun createNewAccount(daemonInterfaceAddress: Long): String?
+
private external fun disconnect(daemonInterfaceAddress: Long)
+
private external fun getAccountData(
daemonInterfaceAddress: Long,
accountToken: String
): GetAccountDataResult
private external fun getAccountHistory(daemonInterfaceAddress: Long): String?
+
private external fun getWwwAuthToken(daemonInterfaceAddress: Long): String?
+
private external fun getCurrentLocation(daemonInterfaceAddress: Long): GeoIpLocation?
+
private external fun getCurrentVersion(daemonInterfaceAddress: Long): String?
+
private external fun getRelayLocations(daemonInterfaceAddress: Long): RelayList?
+
private external fun getSettings(daemonInterfaceAddress: Long): Settings?
+
private external fun getState(daemonInterfaceAddress: Long): TunnelState?
+
private external fun getVersionInfo(daemonInterfaceAddress: Long): AppVersionInfo?
+
private external fun reconnect(daemonInterfaceAddress: Long)
+
private external fun clearAccountHistory(daemonInterfaceAddress: Long)
+
private external fun loginAccount(
daemonInterfaceAddress: Long,
accountToken: String?
): LoginResult
private external fun logoutAccount(daemonInterfaceAddress: Long)
+
private external fun listDevices(
daemonInterfaceAddress: Long,
accountToken: String?
): List<Device>?
private external fun getDevice(daemonInterfaceAddress: Long): DeviceState
+
private external fun updateDevice(daemonInterfaceAddress: Long)
+
private external fun removeDevice(
daemonInterfaceAddress: Long,
accountToken: String?,
@@ -241,10 +257,15 @@ class MullvadDaemon(
): RemoveDeviceResult
private external fun setAllowLan(daemonInterfaceAddress: Long, allowLan: Boolean)
+
private external fun setAutoConnect(daemonInterfaceAddress: Long, alwaysOn: Boolean)
+
private external fun setDnsOptions(daemonInterfaceAddress: Long, dnsOptions: DnsOptions)
+
private external fun setWireguardMtu(daemonInterfaceAddress: Long, wireguardMtu: Int?)
+
private external fun shutdown(daemonInterfaceAddress: Long)
+
private external fun submitVoucher(
daemonInterfaceAddress: Long,
voucher: String
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
index ad8b96f9a5..d6ba237f97 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
@@ -20,7 +20,9 @@ class AccountCache(private val endpoint: ServiceEndpoint) {
companion object {
private sealed class Command {
object CreateAccount : Command()
+
data class Login(val account: String) : Command()
+
object Logout : Command()
}
}
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
index fe8f55a66d..7ecfe02d58 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/CustomDns.kt
@@ -16,9 +16,12 @@ import net.mullvad.mullvadvpn.model.DnsState
class CustomDns(private val endpoint: ServiceEndpoint) {
private sealed class Command {
@Deprecated("Use SetDnsOptions") class AddDnsServer(val server: InetAddress) : Command()
+
@Deprecated("Use SetDnsOptions") class RemoveDnsServer(val server: InetAddress) : Command()
+
@Deprecated("Use SetDnsOptions")
class ReplaceDnsServer(val oldServer: InetAddress, val newServer: InetAddress) : Command()
+
@Deprecated("Use SetDnsOptions") class SetEnabled(val enabled: Boolean) : Command()
class SetDnsOptions(val dnsOptions: DnsOptions) : Command()
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
index 1d6cb9f9a7..e9aa8d4328 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt
@@ -30,6 +30,7 @@ class ServiceEndpoint(
companion object {
sealed class Command {
data class RegisterListener(val listener: Messenger) : Command()
+
data class UnregisterListener(val listenerId: Int) : Command()
}
}
diff --git a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
index 2863594cb9..874b78cab3 100644
--- a/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
+++ b/android/service/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/SettingsListener.kt
@@ -15,9 +15,13 @@ import net.mullvad.talpid.util.EventNotifier
class SettingsListener(endpoint: ServiceEndpoint) {
private sealed class Command {
class SetAllowLan(val allow: Boolean) : Command()
+
class SetAutoConnect(val autoConnect: Boolean) : Command()
+
class SetWireGuardMtu(val mtu: Int?) : Command()
+
class SetObfuscationSettings(val settings: ObfuscationSettings?) : Command()
+
class SetQuantumResistant(val quantumResistant: QuantumResistantState) : Command()
}