Navigate to Main Activity from Login Fragment
This commit is contained in:
parent
b7feaf44df
commit
cbc5c31066
3 changed files with 30 additions and 3 deletions
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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>
|
Loading…
Reference in a new issue