카톡 Login시 Activity 점유 문제

카카오톡 로그인을 커스텀으로 개발하여 사용하고 있습니다.

Session.getCurrentSession.open 을 이용하여 액티비티를 넘겨주고 로그인하는 뷰를 띄워주는데요.

테스트 폰에 카톡이 깔려 있지 않아 웹뷰가 띄워지고 카카오 계정 로그인 화면에서 꺼버린 후에는 해당 뷰를 띄운 Activity 내에서 Finish 처리를 할 수가 없고 onBackPressed도 타지 않는 상태가 되네요.

KakaoAdapter.getCurrentActivity에서 가지고 있나 확인해봤는데, Callback에서 OpenFailed를 탈 때에는 그 쪽에 넘어가진 않는 듯 하더라구요.

class LoginKakao(activity : BaseActivity) : SNSAdapter(activity) {
    private val adapter = CKakaoAdapter(activity)
    private var kakaoCallback = KakaoCallback()

    init{
        try{
            KakaoSDK.init(adapter)

            Session.getCurrentSession().addCallback(kakaoCallback)
        }catch (e: KakaoSDK.AlreadyInitializedException){}
    }

    override fun run(){
        Session.getCurrentSession().open(adapter.sessionConfig.authTypes[0], activity)
    }

    fun handleActivityResult(reqCode: Int, resultCode: Int, data: Intent?){
        Session.getCurrentSession().handleActivityResult(reqCode, resultCode, data)
    }

    override fun setOnCompleteListener(listener: CompleteListener) {
        super.setOnCompleteListener(listener)

        kakaoCallback.setOnCompleteListener(listener)
    }

    private class KakaoCallback : ISessionCallback {
        private var listener : SNSAdapter.CompleteListener? = null

        override fun onSessionOpenFailed(exception: KakaoException?) {
            listener?.onAuthError(L_KAKAO, "Open Failed")
        }

        override fun onSessionOpened() {
            UserManagement.getInstance().me(object : MeV2ResponseCallback(){
                override fun onSuccess(result: MeV2Response?) {
                    listener?.onAuthComplete()
                }

                override fun onSessionClosed(errorResult: ErrorResult?) {
                    listener?.onAuthError(L_KAKAO, "Session Closed")
                }
            })
        }

        fun setOnCompleteListener(listener : SNSAdapter.CompleteListener){
            this.listener = listener
        }
    }

    fun getCurrentActivity() = KakaoSDK.getCurrentActivity()

    private class CKakaoAdapter(private val activity: BaseActivity) : KakaoAdapter(){
        override fun getApplicationConfig(): IApplicationConfig = IApplicationConfig { activity.application }

        override fun getSessionConfig(): ISessionConfig = object : ISessionConfig {
            override fun isSaveFormData(): Boolean = true

            override fun getAuthTypes(): Array<AuthType> = arrayOf(AuthType.KAKAO_LOGIN_ALL)

            override fun isSecureMode(): Boolean = false

            override fun getApprovalType(): ApprovalType? = ApprovalType.INDIVIDUAL

            override fun isUsingWebviewTimer(): Boolean = false
        }
    }
}