diff options
| author | Albin <albin@mullvad.net> | 2023-08-04 10:23:35 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-08-04 11:24:45 +0200 |
| commit | bfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6 (patch) | |
| tree | 4bbb505f1ee58ad7ae9a60dd79aeeff6430a8d1f /android | |
| parent | c27e788a81832e0add9fc4ee2362df97ded96323 (diff) | |
| download | mullvadvpn-bfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6.tar.xz mullvadvpn-bfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6.zip | |
Apply updated ktfmt formatting
Diffstat (limited to 'android')
39 files changed, 91 insertions, 0 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/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/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() } |
