diff options
| author | Albin <albin@mullvad.net> | 2022-07-07 10:27:24 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-07-20 09:59:02 +0200 |
| commit | 2f848635d7dc7caca4531360924f8813b65d5180 (patch) | |
| tree | 6720b8a78da844412a6d0df5436f870bb3ba8515 /android | |
| parent | 5d504ddc2c22652362db57e8c10cac9f296606cc (diff) | |
| download | mullvadvpn-2f848635d7dc7caca4531360924f8813b65d5180.tar.xz mullvadvpn-2f848635d7dc7caca4531360924f8813b65d5180.zip | |
Decouple LoginFragment
Diffstat (limited to 'android')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt index d0e6fbf2f3..18e2f08b95 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt @@ -15,16 +15,17 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.ui.extension.requireMainActivity import net.mullvad.mullvadvpn.ui.fragments.ACCOUNT_TOKEN_ARGUMENT_KEY +import net.mullvad.mullvadvpn.ui.fragments.BaseFragment import net.mullvad.mullvadvpn.ui.fragments.DeviceListFragment import net.mullvad.mullvadvpn.ui.widget.AccountLogin import net.mullvad.mullvadvpn.ui.widget.HeaderBar +import net.mullvad.mullvadvpn.util.JobTracker import net.mullvad.mullvadvpn.viewmodel.LoginViewModel import org.koin.androidx.viewmodel.ext.android.viewModel -class LoginFragment : - ServiceDependentFragment(OnNoService.GoToLaunchScreen), - NavigationBarPainter { +class LoginFragment : BaseFragment(), NavigationBarPainter { private val loginViewModel: LoginViewModel by viewModel() @@ -38,11 +39,19 @@ class LoginFragment : private lateinit var background: View private lateinit var headerBar: HeaderBar - override fun onSafelyCreateView( + @Deprecated("Refactor code to instead rely on Lifecycle.") + private val jobTracker = JobTracker() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + lifecycleScope.launchUiSubscriptionsOnResume() + } + + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View { + ): View? { val view = inflater.inflate(R.layout.login, container, false) headerBar = view.findViewById(R.id.header_bar) @@ -74,12 +83,9 @@ class LoginFragment : return view } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - lifecycleScope.launchUiSubscriptionsOnResume() - } - - override fun onSafelyStart() { - parentActivity.backButtonHandler = { + override fun onStart() { + super.onStart() + requireMainActivity().backButtonHandler = { if (accountLogin.hasFocus) { background.requestFocus() true @@ -94,8 +100,10 @@ class LoginFragment : paintNavigationBar(ContextCompat.getColor(requireContext(), R.color.darkBlue)) } - override fun onSafelyStop() { - parentActivity.backButtonHandler = null + override fun onStop() { + jobTracker.cancelAllJobs() + requireMainActivity().backButtonHandler = null + super.onStop() } private fun triggerAutoLoginIfAccountTokenPresent() { |
