마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 구글 로그인시 버그..?

0 추천

구글 로그인이 끝난후에도 저 원형으로 도는 이미지가 계속해서 화면에 떠있습니다. 제거하려면 어떻게 해야하나요

씽멍 (120 포인트) 님이 2021년 8월 7일 질문

1개의 답변

0 추천
해당 View의 visibility를 GONE으로 세팅해 주세요.

https://developer.android.com/reference/android/view/View#setVisibility(int)
spark (225,780 포인트) 님이 2021년 8월 9일 답변
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_login)

        // Firebase 로그인 통합 관리하는 Object 만들기
        auth = FirebaseAuth.getInstance()

        //구글 로그인 옵션
        var gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build()
        //구글 로그인 클래스를 만듬
        googleSignInClient = GoogleSignIn.getClient(this, gso)
        callbackManager = CallbackManager.Factory.create()

        //트위터 세팅


        //구글 로그인 버튼 세팅
        google_sign_in_button.setOnClickListener { googleLogin() }

        //페이스북 로그인 세팅
        facebook_login_button.setOnClickListener { facebookLogin() }

        //이메일 로그인 세팅
        email_login_button.setOnClickListener { emailLogin() }



    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // 구글에서 승인된 정보를 가지고 오기
        if (requestCode == GOOGLE_LOGIN_CODE){
            var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
            println(result.status.toString())
            if (result.isSuccess) {
                val account = result.signInAccount
                firebaseAuthWithGoogle(account!!)

            } else {
                progress_bar.visibility = View.GONE
            }
        }
    }

    fun googleLogin() {
        progress_bar.visibility = View.VISIBLE
        var signInIntent = googleSignInClient?.signInIntent
        startActivityForResult(signInIntent, GOOGLE_LOGIN_CODE)
    }

    fun moveMainPage(user: FirebaseUser?) {

        // User is signed in
        if (user != null) {
            Toast.makeText(this, getString(R.string.signin_complete), Toast.LENGTH_SHORT).show()
            startActivity(Intent(this, MainActivity::class.java))
            finish()
        }
    }

혹시 어디를 수정해야하는지 알려주실수 있나요? 아직 배우는 중이라 어디를 어떻게 고쳐야하는지 감이 잘안오네요..
onActivityResult가 해당 함수인데, 보니까 이미 처리가 되어 있네요.
언뜻 보기에는 로직이 잘못되어서 버그가 난 것 같은데요.

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // 구글에서 승인된 정보를 가지고 오기
        if (requestCode == GOOGLE_LOGIN_CODE){
            ...
            if (result.isSuccess) {
                ...

            } else {
                 // 여기에서 제거
            }

            progress_bar.visibility = View.GONE //이 부분을 이렇게 바깥으로 꺼내보세요.
        }
    }
해결했습니다!! 감사드려요!
...