summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorAleksandr Granin <aleksandr@mullvad.net>2021-01-08 15:59:02 +0100
committerAleksandr Granin <aleksandr@mullvad.net>2021-01-19 14:10:29 +0100
commit43109a76357ba9d85daa1c8c67d61c8b5fb87b3b (patch)
treef88801308525399205b07e427d569e1b2152caa5 /android/src
parente9d8f0de61b4598e45177ff96055419536d8b3a2 (diff)
downloadmullvadvpn-43109a76357ba9d85daa1c8c67d61c8b5fb87b3b.tar.xz
mullvadvpn-43109a76357ba9d85daa1c8c67d61c8b5fb87b3b.zip
Migrate to androidX
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt12
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt5
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt6
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt2
-rw-r--r--android/src/main/res/layout/account_login.xml8
-rw-r--r--android/src/main/res/layout/connect.xml81
35 files changed, 104 insertions, 103 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
index 91e1d0f951..1401ffa26b 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
@@ -4,9 +4,9 @@ import android.Manifest
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
-import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView.Adapter
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.service.SplitTunneling
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
index ad9fcc3318..2a9a6249dd 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListItemHolder.kt
@@ -2,10 +2,10 @@ package net.mullvad.mullvadvpn.applist
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
import android.widget.ImageView
import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.service.SplitTunneling
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt
index a215930194..a16313f797 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayItemHolder.kt
@@ -1,11 +1,11 @@
package net.mullvad.mullvadvpn.relaylist
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import net.mullvad.mullvadvpn.R
class RelayItemHolder(
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
index a4f521be3d..0937592399 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/relaylist/RelayListAdapter.kt
@@ -1,9 +1,9 @@
package net.mullvad.mullvadvpn.relaylist
import android.content.res.Resources
-import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView.Adapter
import java.lang.ref.WeakReference
import java.util.LinkedList
import net.mullvad.mullvadvpn.R
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
index a5d05628b2..9ab632f017 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ForegroundNotificationManager.kt
@@ -47,8 +47,10 @@ class ForegroundNotificationManager(
loggedIn = accountNumber != null
}
- private var tunnelStateEvents
- by autoSubscribable<TunnelState>(this, TunnelState.Disconnected()) { newState ->
+ private var tunnelStateEvents by autoSubscribable<TunnelState>(
+ this,
+ TunnelState.Disconnected()
+ ) { newState ->
updater.sendBlocking(UpdaterMessage.NewTunnelState(newState))
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
index 1b31605adc..4f1f291026 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt
@@ -63,8 +63,8 @@ class MullvadVpnService : TalpidVpnService() {
}
}
- private var accountExpiryNotification
- by observable<AccountExpiryNotification?>(null) { _, oldNotification, _ ->
+ private var accountExpiryNotification by observable<AccountExpiryNotification?>(null) {
+ _, oldNotification, _ ->
oldNotification?.onDestroy()
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt
index 0f4646335c..16d44487c3 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/NotificationChannel.kt
@@ -6,7 +6,7 @@ import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.os.Build
-import android.support.v4.app.NotificationCompat
+import androidx.core.app.NotificationCompat
import net.mullvad.mullvadvpn.R
class NotificationChannel(
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt
index de384379cf..8bb836f0f4 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/TunnelStateNotification.kt
@@ -6,7 +6,7 @@ import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.os.Build
-import android.support.v4.app.NotificationCompat
+import androidx.core.app.NotificationCompat
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.TunnelState
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
index d5644ae72f..86538f71dc 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
@@ -1,10 +1,10 @@
package net.mullvad.mullvadvpn.ui
import android.os.Bundle
-import android.support.v4.app.FragmentManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.fragment.app.FragmentManager
import java.text.DateFormat
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.TunnelState
@@ -139,9 +139,9 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) {
}
private fun showRedeemVoucherDialog() {
- val transaction = fragmentManager?.beginTransaction()
+ val transaction = requireFragmentManager().beginTransaction()
- transaction?.addToBackStack(null)
+ transaction.addToBackStack(null)
RedeemVoucherDialogFragment().show(transaction, null)
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
index f02f5cca91..b7b9445cbe 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
@@ -1,10 +1,10 @@
package net.mullvad.mullvadvpn.ui
import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.Settings
@@ -124,10 +124,10 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) {
}
private fun showConfirmPublicDnsServerDialog(confirmation: CompletableDeferred<Boolean>) {
- val transaction = fragmentManager?.beginTransaction()
+ val transaction = requireFragmentManager().beginTransaction()
detachBackButtonHandler()
- transaction?.addToBackStack(null)
+ transaction.addToBackStack(null)
ConfirmPublicDnsDialogFragment()
.apply { confirmPublicDns = confirmation }
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt
index 1789bd0c64..8271e8141d 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmNoEmailDialogFragment.kt
@@ -5,12 +5,12 @@ import android.content.Context
import android.content.DialogInterface
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
-import android.support.v4.app.DialogFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams
import android.widget.Button
+import androidx.fragment.app.DialogFragment
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt
index 3888e756e0..c75662dcf0 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt
@@ -4,12 +4,12 @@ import android.app.Dialog
import android.content.DialogInterface
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
-import android.support.v4.app.DialogFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams
import android.widget.Button
+import androidx.fragment.app.DialogFragment
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt
index 55084a0ea2..07753a1265 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ListItemDividerDecoration.kt
@@ -2,10 +2,10 @@ package net.mullvad.mullvadvpn.ui
import android.content.Context
import android.graphics.Rect
-import android.support.v7.widget.RecyclerView
-import android.support.v7.widget.RecyclerView.ItemDecoration
-import android.support.v7.widget.RecyclerView.State
import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.RecyclerView.ItemDecoration
+import androidx.recyclerview.widget.RecyclerView.State
import kotlin.properties.Delegates.observable
class ListItemDividerDecoration(context: Context) : ItemDecoration() {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
index fa5df39a0e..528524ac23 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
@@ -2,12 +2,12 @@ package net.mullvad.mullvadvpn.ui
import android.graphics.Rect
import android.os.Bundle
-import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ScrollView
import android.widget.TextView
+import androidx.fragment.app.Fragment
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.delay
import net.mullvad.mullvadvpn.R
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
index 613927fe49..5929490065 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
@@ -9,10 +9,10 @@ import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.os.IBinder
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentActivity
-import android.support.v4.app.FragmentManager
import android.view.WindowManager
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.fragment.app.FragmentManager
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@@ -170,7 +170,7 @@ class MainActivity : FragmentActivity() {
}
fun openSettings() {
- supportFragmentManager?.beginTransaction()?.apply {
+ supportFragmentManager.beginTransaction().apply {
setCustomAnimations(
R.anim.fragment_enter_from_bottom,
R.anim.do_nothing,
@@ -184,7 +184,7 @@ class MainActivity : FragmentActivity() {
}
fun returnToLaunchScreen() {
- supportFragmentManager?.apply {
+ supportFragmentManager.apply {
popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
beginTransaction().apply {
@@ -206,7 +206,7 @@ class MainActivity : FragmentActivity() {
}
private fun addInitialFragment() {
- supportFragmentManager?.beginTransaction()?.apply {
+ supportFragmentManager.beginTransaction().apply {
add(R.id.main_fragment, LaunchFragment())
commit()
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
index 491f0d53fc..ce99256e19 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
@@ -3,7 +3,6 @@ package net.mullvad.mullvadvpn.ui
import android.content.Context
import android.graphics.Typeface
import android.os.Bundle
-import android.support.v4.app.Fragment
import android.text.Editable
import android.text.Spannable
import android.text.SpannableStringBuilder
@@ -18,6 +17,7 @@ import android.widget.EditText
import android.widget.ScrollView
import android.widget.TextView
import android.widget.ViewSwitcher
+import androidx.fragment.app.Fragment
import kotlin.properties.Delegates.observable
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
@@ -197,9 +197,9 @@ class ProblemReportFragment : Fragment() {
}
private fun showConfirmNoEmailDialog() {
- val transaction = fragmentManager?.beginTransaction()
+ val transaction = requireFragmentManager().beginTransaction()
- transaction?.addToBackStack(null)
+ transaction.addToBackStack(null)
ConfirmNoEmailDialogFragment().show(transaction, null)
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt
index 1a300e1fec..5822da9a91 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt
@@ -4,7 +4,6 @@ import android.app.Dialog
import android.content.Context
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
-import android.support.v4.app.DialogFragment
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
@@ -13,6 +12,7 @@ import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams
import android.widget.EditText
import android.widget.TextView
+import androidx.fragment.app.DialogFragment
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.VoucherSubmissionResult
import net.mullvad.mullvadvpn.service.AccountCache
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
index e35377c690..ddc89d973b 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
@@ -2,7 +2,6 @@ package net.mullvad.mullvadvpn.ui
import android.content.Context
import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -10,6 +9,7 @@ import android.view.animation.Animation
import android.view.animation.Animation.AnimationListener
import android.view.animation.AnimationUtils
import android.widget.ImageButton
+import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.model.Constraint
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
index 4bbff22a59..aa70bfd4ca 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
@@ -1,7 +1,7 @@
package net.mullvad.mullvadvpn.ui
import android.content.Context
-import android.support.v4.app.Fragment
+import androidx.fragment.app.Fragment
import net.mullvad.mullvadvpn.util.JobTracker
abstract class ServiceAwareFragment : Fragment() {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt
index 6294a2028a..a7b74ddeb0 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnelingFragment.kt
@@ -4,10 +4,10 @@ import android.animation.Animator
import android.animation.Animator.AnimatorListener
import android.animation.ObjectAnimator
import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.recyclerview.widget.LinearLayoutManager
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.applist.AppListAdapter
import net.mullvad.mullvadvpn.ui.widget.CellSwitch
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt
index e53a8fe2fe..2b28f21ff1 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/UnderNotificationBannerBehavior.kt
@@ -1,11 +1,11 @@
package net.mullvad.mullvadvpn.ui
import android.content.Context
-import android.support.design.widget.CoordinatorLayout
-import android.support.design.widget.CoordinatorLayout.Behavior
import android.util.AttributeSet
import android.view.View
import android.widget.ScrollView
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
import net.mullvad.mullvadvpn.R
class UnderNotificationBannerBehavior(
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
index 30a81111b9..43a31ccfad 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
@@ -2,11 +2,11 @@ package net.mullvad.mullvadvpn.ui
import android.content.Context
import android.os.Bundle
-import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
+import androidx.fragment.app.Fragment
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
import net.mullvad.mullvadvpn.util.JobTracker
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt
index 44af15c1f7..709fc2d1b6 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.customdns
-import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView.Adapter
import java.net.InetAddress
import kotlin.properties.Delegates.observable
import kotlinx.coroutines.CompletableDeferred
@@ -27,8 +27,8 @@ class CustomDnsAdapter(val customDns: CustomDns) : Adapter<CustomDnsItemHolder>(
private var editingPosition: Int? = null
- private var activeCustomDnsServers
- by observable<List<InetAddress>>(emptyList()) { _, _, servers ->
+ private var activeCustomDnsServers by observable<List<InetAddress>>(emptyList()) {
+ _, _, servers ->
if (servers != cachedCustomDnsServers) {
cachedCustomDnsServers = servers.toMutableList()
notifyDataSetChanged()
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt
index 3276737e5d..cfaf9399cc 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsItemHolder.kt
@@ -1,6 +1,6 @@
package net.mullvad.mullvadvpn.ui.customdns
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
abstract class CustomDnsItemHolder(view: View) : ViewHolder(view)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt
index 737e4a3859..555d8e75b0 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryAdapter.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.widget
-import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView.Adapter
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.util.SegmentedTextFormatter
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt
index e0e911467b..4a87f4f601 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountHistoryHolder.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.widget
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.util.SegmentedTextFormatter
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
index 58051411ff..491c7086e2 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt
@@ -3,15 +3,14 @@ package net.mullvad.mullvadvpn.ui.widget
import android.animation.ValueAnimator
import android.app.Activity
import android.content.Context
-import android.support.v7.widget.LinearLayoutManager
-import android.support.v7.widget.RecyclerView
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.View.OnLayoutChangeListener
-import android.view.ViewGroup.MarginLayoutParams
import android.view.inputmethod.InputMethodManager
import android.widget.RelativeLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import kotlin.properties.Delegates.observable
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.ui.ListItemDividerDecoration
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt
index 06244067b8..ef8caf7e7c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomItemAnimator.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.widget
-import android.support.v7.widget.DefaultItemAnimator
-import android.support.v7.widget.RecyclerView.LayoutManager
-import android.support.v7.widget.RecyclerView.ViewHolder
+import androidx.recyclerview.widget.DefaultItemAnimator
+import androidx.recyclerview.widget.RecyclerView.LayoutManager
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import kotlin.math.round
class CustomItemAnimator : DefaultItemAnimator() {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt
index 3e0c4d1d70..4684d50871 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CustomRecyclerView.kt
@@ -1,9 +1,8 @@
package net.mullvad.mullvadvpn.ui.widget
import android.content.Context
-import android.support.v7.widget.RecyclerView
-import android.support.v7.widget.RecyclerView.LayoutManager
import android.util.AttributeSet
+import androidx.recyclerview.widget.RecyclerView
import net.mullvad.mullvadvpn.util.ListenableScrollableView
class CustomRecyclerView : RecyclerView, ListenableScrollableView {
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt
index 9ff9c3588d..1080e4e3fb 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NavigateCell.kt
@@ -1,10 +1,10 @@
package net.mullvad.mullvadvpn.ui.widget
import android.content.Context
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentActivity
import android.util.AttributeSet
import android.widget.ImageView
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
import kotlin.reflect.KClass
import net.mullvad.mullvadvpn.R
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt
index 308eff37df..f1e27e7b1b 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/RedeemVoucherButton.kt
@@ -1,8 +1,8 @@
package net.mullvad.mullvadvpn.ui.widget
import android.content.Context
-import android.support.v4.app.FragmentManager
import android.util.AttributeSet
+import androidx.fragment.app.FragmentManager
import net.mullvad.mullvadvpn.ui.RedeemVoucherDialogFragment
import net.mullvad.mullvadvpn.util.JobTracker
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt
index 379d58f758..cbf96457ef 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/AdapterWithHeader.kt
@@ -1,11 +1,11 @@
package net.mullvad.mullvadvpn.util
-import android.support.v7.widget.RecyclerView.Adapter
-import android.support.v7.widget.RecyclerView.AdapterDataObserver
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView.Adapter
+import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
import kotlin.properties.Delegates.observable
class AdapterWithHeader<H : ViewHolder>(
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
index 631d69100e..308298443a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/HeaderOrHolder.kt
@@ -1,7 +1,7 @@
package net.mullvad.mullvadvpn.util
-import android.support.v7.widget.RecyclerView.ViewHolder
import android.view.View
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
sealed class HeaderOrHolder<H : ViewHolder>(itemView: View) : ViewHolder(itemView) {
class Header<H : ViewHolder>(headerView: View) : HeaderOrHolder<H>(headerView)
diff --git a/android/src/main/res/layout/account_login.xml b/android/src/main/res/layout/account_login.xml
index d91222c73f..8a57930721 100644
--- a/android/src/main/res/layout/account_login.xml
+++ b/android/src/main/res/layout/account_login.xml
@@ -9,8 +9,8 @@
android:layout_height="48dp"
android:layout_alignParentTop="true"
android:orientation="horizontal" />
- <android.support.v7.widget.RecyclerView android:id="@+id/history"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/input" />
+ <androidx.recyclerview.widget.RecyclerView android:id="@+id/history"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/input" />
</merge>
diff --git a/android/src/main/res/layout/connect.xml b/android/src/main/res/layout/connect.xml
index 254dd05442..d6ac999d43 100644
--- a/android/src/main/res/layout/connect.xml
+++ b/android/src/main/res/layout/connect.xml
@@ -7,8 +7,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0.5dp" />
- <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent"
- android:layout_height="match_parent">
+ <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"
+ android:layout_height="match_parent">
<net.mullvad.mullvadvpn.ui.widget.NotificationBanner android:id="@+id/notification_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -16,75 +16,76 @@
<ScrollView android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="match_parent"
- app:layout_behavior="net.mullvad.mullvadvpn.ui.UnderNotificationBannerBehavior"
- android:fillViewport="true">
+ android:fillViewport="true"
+ app:layout_behavior="net.mullvad.mullvadvpn.ui.UnderNotificationBannerBehavior">
+
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
- android:gravity="bottom">
+ android:gravity="bottom"
+ android:orientation="vertical">
<ProgressBar android:id="@+id/connecting_spinner"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginBottom="7dp"
android:indeterminate="true"
- android:indeterminateOnly="true"
- android:indeterminateDuration="600"
android:indeterminateDrawable="@drawable/icon_spinner"
+ android:indeterminateDuration="600"
+ android:indeterminateOnly="true"
android:visibility="invisible" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0"
android:layout_marginTop="7dp"
- android:orientation="vertical"
- android:gravity="start">
+ android:layout_weight="0"
+ android:gravity="start"
+ android:orientation="vertical">
<TextView android:id="@+id/connection_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginBottom="2dp"
android:layout_marginHorizontal="@dimen/side_margin"
+ android:layout_marginBottom="2dp"
+ android:text="@string/unsecured_connection"
+ android:textAllCaps="true"
android:textColor="@color/red"
android:textSize="@dimen/text_medium"
- android:textStyle="bold"
- android:text="@string/unsecured_connection"
- android:textAllCaps="true" />
+ android:textStyle="bold" />
<TextView android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/side_margin"
+ android:text=""
android:textColor="@color/white"
android:textSize="@dimen/text_huge"
- android:textStyle="bold"
- android:text="" />
+ android:textStyle="bold" />
<TextView android:id="@+id/country"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/side_margin"
android:layout_marginBottom="2dp"
+ android:text=""
android:textColor="@color/white"
android:textSize="@dimen/text_huge"
- android:textStyle="bold"
- android:text="" />
+ android:textStyle="bold" />
<LinearLayout android:id="@+id/tunnel_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
- android:orientation="vertical"
- android:paddingHorizontal="@dimen/side_margin"
- android:gravity="bottom"
+ android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
- android:background="?android:attr/selectableItemBackground">
+ android:gravity="bottom"
+ android:orientation="vertical"
+ android:paddingHorizontal="@dimen/side_margin">
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:gravity="center">
+ android:gravity="center"
+ android:orientation="horizontal">
<TextView android:id="@+id/hostname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:text=""
android:textColor="@color/white40"
- android:textSize="@dimen/text_hostname"
- android:text="" />
+ android:textSize="@dimen/text_hostname" />
<ImageView android:id="@+id/chevron"
android:layout_width="24dp"
android:layout_height="24dp"
@@ -96,23 +97,23 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
+ android:text=""
android:textColor="@color/white"
- android:textSize="@dimen/text_small"
- android:text="" />
+ android:textSize="@dimen/text_small" />
<TextView android:id="@+id/in_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
+ android:text=""
android:textColor="@color/white"
- android:textSize="@dimen/text_small"
- android:text="" />
+ android:textSize="@dimen/text_small" />
<TextView android:id="@+id/out_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
+ android:text=""
android:textColor="@color/white"
- android:textSize="@dimen/text_small"
- android:text="" />
+ android:textSize="@dimen/text_small" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:layout_width="match_parent"
@@ -130,21 +131,21 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id="@+id/action_button"
+ style="@style/GreenButton"
android:layout_weight="1"
- android:text="@string/connect"
- style="@style/GreenButton" />
+ android:text="@string/connect" />
<ImageButton android:id="@+id/reconnect_button"
android:layout_width="50dp"
android:layout_height="match_parent"
- android:layout_weight="0"
android:layout_marginLeft="1dp"
- android:padding="9dp"
+ android:layout_weight="0"
android:background="@drawable/transparent_red_right_half_button_background"
- android:visibility="gone"
- android:src="@drawable/icon_reload" />
+ android:padding="9dp"
+ android:src="@drawable/icon_reload"
+ android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
- </android.support.design.widget.CoordinatorLayout>
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>