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/app/src/main | |
| parent | c27e788a81832e0add9fc4ee2362df97ded96323 (diff) | |
| download | mullvadvpn-bfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6.tar.xz mullvadvpn-bfe2a3d0d0b6ed4bbe19f580735d0cc6b3bfafd6.zip | |
Apply updated ktfmt formatting
Diffstat (limited to 'android/app/src/main')
24 files changed, 46 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() } |
