in ReferenceAppKotlin/app/src/main/java/com/android/tv/reference/auth/SignInFragment.kt [52:92]
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val binding = FragmentSignInBinding.inflate(inflater, container, false)
viewModel.signInStatus.observe(
viewLifecycleOwner,
{ status ->
when (status) {
is SignInStatus.Success -> findNavController().popBackStack()
is SignInStatus.ShouldSavePassword -> startSavePasswordWithGoogle(
status.username,
status.password
)
is SignInStatus.Error -> {
val errorText = when (status) {
is SignInStatus.Error.InputError ->
getString(R.string.empty_username_or_password)
is SignInStatus.Error.InvalidPassword ->
getString(R.string.invalid_credentials)
is SignInStatus.Error.ServerError -> getString(R.string.server_error)
is SignInStatus.Error.OneTapInvalid ->
getString(R.string.invalid_credentials)
is SignInStatus.Error.OneTapError -> getString(R.string.onetap_error)
else -> getString(R.string.unknown_error)
}
binding.signInError.text = getString(R.string.sign_in_error, errorText)
}
}
}
)
binding.signInIntro.text = getString(R.string.sign_in_intro, MockAuthClient.MOCK_USER_EMAIL)
binding.signInButton.setOnClickListener {
val username = binding.usernameEdit.text.toString()
val password = binding.passwordEdit.text.toString()
viewModel.signInWithPassword(username, password)
}
startGoogleOneTapRequest()
return binding.root
}