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.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import dev.jdtech.jellyfin.R
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentLoginBinding
|
import dev.jdtech.jellyfin.databinding.FragmentLoginBinding
|
||||||
import dev.jdtech.jellyfin.viewmodels.LoginViewModel
|
import dev.jdtech.jellyfin.viewmodels.LoginViewModel
|
||||||
import dev.jdtech.jellyfin.viewmodels.LoginViewModelFactory
|
import dev.jdtech.jellyfin.viewmodels.LoginViewModelFactory
|
||||||
|
@ -35,6 +37,13 @@ class LoginFragment : Fragment() {
|
||||||
binding.editTextUsernameLayout.error = it
|
binding.editTextUsernameLayout.error = it
|
||||||
})
|
})
|
||||||
|
|
||||||
|
viewModel.navigateToMain.observe(viewLifecycleOwner, {
|
||||||
|
if (it) {
|
||||||
|
findNavController().navigate(R.id.action_loginFragment_to_mainActivity)
|
||||||
|
viewModel.doneNavigatingToMain()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -23,6 +23,10 @@ class LoginViewModel(application: Application) : ViewModel() {
|
||||||
private val _error = MutableLiveData<String>()
|
private val _error = MutableLiveData<String>()
|
||||||
val error: LiveData<String> = _error
|
val error: LiveData<String> = _error
|
||||||
|
|
||||||
|
|
||||||
|
private val _navigateToMain = MutableLiveData<Boolean>()
|
||||||
|
val navigateToMain: LiveData<Boolean> = _navigateToMain
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a authentication request to the Jellyfin server
|
* Send a authentication request to the Jellyfin server
|
||||||
*
|
*
|
||||||
|
@ -49,6 +53,11 @@ class LoginViewModel(application: Application) : ViewModel() {
|
||||||
authenticationResult.accessToken!!
|
authenticationResult.accessToken!!
|
||||||
)
|
)
|
||||||
insert(server)
|
insert(server)
|
||||||
|
jellyfinApi.apply {
|
||||||
|
api.accessToken = authenticationResult.accessToken
|
||||||
|
userId = authenticationResult.user?.id
|
||||||
|
}
|
||||||
|
_navigateToMain.value = true
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Log.e("LoginViewModel", "${e.message}")
|
Log.e("LoginViewModel", "${e.message}")
|
||||||
_error.value = e.message
|
_error.value = e.message
|
||||||
|
@ -66,4 +75,8 @@ class LoginViewModel(application: Application) : ViewModel() {
|
||||||
database.insert(server)
|
database.insert(server)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun doneNavigatingToMain() {
|
||||||
|
_navigateToMain.value = false
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -21,7 +21,11 @@
|
||||||
android:id="@+id/loginFragment"
|
android:id="@+id/loginFragment"
|
||||||
android:name="dev.jdtech.jellyfin.fragments.LoginFragment"
|
android:name="dev.jdtech.jellyfin.fragments.LoginFragment"
|
||||||
android:label="fragment_login"
|
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
|
<fragment
|
||||||
android:id="@+id/serverSelectFragment"
|
android:id="@+id/serverSelectFragment"
|
||||||
android:name="dev.jdtech.jellyfin.fragments.ServerSelectFragment"
|
android:name="dev.jdtech.jellyfin.fragments.ServerSelectFragment"
|
||||||
|
@ -41,5 +45,6 @@
|
||||||
<activity
|
<activity
|
||||||
android:id="@+id/mainActivity"
|
android:id="@+id/mainActivity"
|
||||||
android:name="dev.jdtech.jellyfin.MainActivity"
|
android:name="dev.jdtech.jellyfin.MainActivity"
|
||||||
android:label="MainActivity" />
|
android:label="MainActivity"
|
||||||
|
tools:layout="@layout/activity_main" />
|
||||||
</navigation>
|
</navigation>
|
Loading…
Reference in a new issue