override fun onCreateView()

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
    }