Navigate to Main Activity from Login Fragment

This commit is contained in:
Jarne Demeulemeester 2021-06-16 12:22:18 +02:00
parent b7feaf44df
commit cbc5c31066
No known key found for this signature in database
GPG key ID: B61B7B150DB6A6D2
3 changed files with 30 additions and 3 deletions

View file

@ -6,6 +6,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import dev.jdtech.jellyfin.R
import dev.jdtech.jellyfin.databinding.FragmentLoginBinding
import dev.jdtech.jellyfin.viewmodels.LoginViewModel
import dev.jdtech.jellyfin.viewmodels.LoginViewModelFactory
@ -35,6 +37,13 @@ class LoginFragment : Fragment() {
binding.editTextUsernameLayout.error = it
})
viewModel.navigateToMain.observe(viewLifecycleOwner, {
if (it) {
findNavController().navigate(R.id.action_loginFragment_to_mainActivity)
viewModel.doneNavigatingToMain()
}
})
return binding.root
}
}

View file

@ -23,6 +23,10 @@ class LoginViewModel(application: Application) : ViewModel() {
private val _error = MutableLiveData<String>()
val error: LiveData<String> = _error
private val _navigateToMain = MutableLiveData<Boolean>()
val navigateToMain: LiveData<Boolean> = _navigateToMain
/**
* Send a authentication request to the Jellyfin server
*
@ -49,6 +53,11 @@ class LoginViewModel(application: Application) : ViewModel() {
authenticationResult.accessToken!!
)
insert(server)
jellyfinApi.apply {
api.accessToken = authenticationResult.accessToken
userId = authenticationResult.user?.id
}
_navigateToMain.value = true
} catch (e: Exception) {
Log.e("LoginViewModel", "${e.message}")
_error.value = e.message
@ -66,4 +75,8 @@ class LoginViewModel(application: Application) : ViewModel() {
database.insert(server)
}
}
fun doneNavigatingToMain() {
_navigateToMain.value = false
}
}

View file

@ -8,7 +8,7 @@
android:id="@+id/addServerFragment"
android:name="dev.jdtech.jellyfin.fragments.AddServerFragment"
android:label="fragment_add_server"
tools:layout="@layout/fragment_add_server" >
tools:layout="@layout/fragment_add_server">
<action
android:id="@+id/action_addServerFragment_to_loginFragment"
app:destination="@id/loginFragment"
@ -21,7 +21,11 @@
android:id="@+id/loginFragment"
android:name="dev.jdtech.jellyfin.fragments.LoginFragment"
android:label="fragment_login"
tools:layout="@layout/fragment_login" />
tools:layout="@layout/fragment_login">
<action
android:id="@+id/action_loginFragment_to_mainActivity"
app:destination="@id/mainActivity" />
</fragment>
<fragment
android:id="@+id/serverSelectFragment"
android:name="dev.jdtech.jellyfin.fragments.ServerSelectFragment"
@ -41,5 +45,6 @@
<activity
android:id="@+id/mainActivity"
android:name="dev.jdtech.jellyfin.MainActivity"
android:label="MainActivity" />
android:label="MainActivity"
tools:layout="@layout/activity_main" />
</navigation>