1
+
1
2
package com .example .ensor ;
2
3
3
4
import androidx .appcompat .app .AppCompatActivity ;
15
16
import kotlin .jvm .functions .Function1 ;
16
17
import kotlin .jvm .functions .Function2 ;
17
18
18
- public class LoginActivity extends AppCompatActivity {
19
- private static final String TAG = "LoginActivity" ;
20
- private View loginButton , logoutButton ;
21
- private TextView nickName ;
22
- private TextView email ;
19
+ public class LoginActivity extends AppCompatActivity {
20
+ private static final String TAG = "LoginActivity" ;
21
+ private View loginButton , logoutButton ;
22
+ private TextView nickName ;
23
+ private TextView email ;
23
24
24
- @ Override
25
- protected void onCreate (Bundle savedInstanceState ) {
26
- super .onCreate (savedInstanceState );
27
- setContentView (R .layout .activity_login );
25
+ @ Override
26
+ protected void onCreate (Bundle savedInstanceState ) {
27
+ super .onCreate (savedInstanceState );
28
+ setContentView (R .layout .activity_login );
28
29
29
- loginButton = findViewById (R .id .login );
30
- logoutButton = findViewById (R .id .logout );
31
- nickName = findViewById (R .id .nickname );
32
- email = findViewById (R .id .email );
30
+ loginButton = findViewById (R .id .login );
31
+ logoutButton = findViewById (R .id .logout );
32
+ nickName = findViewById (R .id .nickname );
33
+ email = findViewById (R .id .email );
33
34
34
- // 카카오가 설치되어 있는지 확인 하는 메서드또한 카카오에서 제공 콜백 객체를 이용함
35
- Function2 <OAuthToken , Throwable , Unit > callback = new Function2 <OAuthToken , Throwable , Unit >() {
36
- @ Override
37
- public Unit invoke (OAuthToken oAuthToken , Throwable throwable ) {
38
- // 이때 토큰이 전달이 되면 로그인이 성공한 것이고 토큰이 전달되지 않았다면 로그인 실패
39
- if (oAuthToken != null ) {
35
+ // 카카오가 설치되어 있는지 확인 하는 메서드또한 카카오에서 제공 콜백 객체를 이용함
36
+ Function2 <OAuthToken , Throwable , Unit > callback = new Function2 <OAuthToken , Throwable , Unit >() {
37
+ @ Override
38
+ public Unit invoke (OAuthToken oAuthToken , Throwable throwable ) {
39
+ // 이때 토큰이 전달이 되면 로그인이 성공한 것이고 토큰이 전달되지 않았다면 로그인 실패
40
+ if (oAuthToken != null ) {
40
41
41
- }
42
- if (throwable != null ) {
42
+ }
43
+ if (throwable != null ) {
43
44
45
+ }
46
+ updateKakaoLoginUi ();
47
+ return null ;
44
48
}
45
- updateKakaoLoginUi ();
46
- return null ;
47
- }
48
- };
49
- // 로그인 버튼
50
- loginButton .setOnClickListener (new View .OnClickListener () {
51
- @ Override
52
- public void onClick (View view ) {
53
- if (UserApiClient .getInstance ().isKakaoTalkLoginAvailable (LoginActivity .this )) {
54
- UserApiClient .getInstance ().loginWithKakaoTalk (LoginActivity .this , callback );
55
- }else {
56
- UserApiClient .getInstance ().loginWithKakaoAccount (LoginActivity .this , callback );
57
- }
58
- }
59
- });
60
- // 로그 아웃 버튼
61
- logoutButton .setOnClickListener (new View .OnClickListener () {
62
- @ Override
63
- public void onClick (View view ) {
64
- UserApiClient .getInstance ().logout (new Function1 <Throwable , Unit >() {
65
- @ Override
66
- public Unit invoke (Throwable throwable ) {
67
- updateKakaoLoginUi ();
68
- return null ;
49
+ };
50
+ // 로그인 버튼
51
+ loginButton .setOnClickListener (new View .OnClickListener () {
52
+ @ Override
53
+ public void onClick (View view ) {
54
+ if (UserApiClient .getInstance ().isKakaoTalkLoginAvailable (LoginActivity .this )) {
55
+ UserApiClient .getInstance ().loginWithKakaoTalk (LoginActivity .this , callback );
56
+ }else {
57
+ UserApiClient .getInstance ().loginWithKakaoAccount (LoginActivity .this , callback );
69
58
}
70
- });
71
- }
72
- });
73
- updateKakaoLoginUi ();
74
- }
75
- private void updateKakaoLoginUi (){
76
- UserApiClient .getInstance ().me (new Function2 <User , Throwable , Unit >() {
77
- @ Override
78
- public Unit invoke (User user , Throwable throwable ) {
79
- // 로그인이 되어있으면
80
- if (user !=null ){
59
+ }
60
+ });
61
+ // 로그 아웃 버튼
62
+ logoutButton .setOnClickListener (new View .OnClickListener () {
63
+ @ Override
64
+ public void onClick (View view ) {
65
+ UserApiClient .getInstance ().logout (new Function1 <Throwable , Unit >() {
66
+ @ Override
67
+ public Unit invoke (Throwable throwable ) {
68
+ updateKakaoLoginUi ();
69
+ return null ;
70
+ }
71
+ });
72
+ }
73
+ });
74
+ updateKakaoLoginUi ();
75
+ }
76
+ private void updateKakaoLoginUi (){
77
+ UserApiClient .getInstance ().me (new Function2 <User , Throwable , Unit >() {
78
+ @ Override
79
+ public Unit invoke (User user , Throwable throwable ) {
80
+ // 로그인이 되어있으면
81
+ if (user !=null ){
81
82
82
- // 유저의 아이디
83
- Log .d (TAG ,"invoke: id" + user .getId ());
84
- // 유저의 어카운트정보에 이메일
85
- Log .d (TAG ,"invoke: nickname" + user .getKakaoAccount ().getEmail ());
86
- // 유저의 어카운트 정보의 프로파일에 닉네임
87
- Log .d (TAG ,"invoke: email" + user .getKakaoAccount ().getProfile ().getNickname ());
83
+ // 유저의 아이디
84
+ Log .d (TAG ,"invoke: id" + user .getId ());
85
+ // 유저의 어카운트정보에 이메일
86
+ Log .d (TAG ,"invoke: nickname" + user .getKakaoAccount ().getEmail ());
87
+ // 유저의 어카운트 정보의 프로파일에 닉네임
88
+ Log .d (TAG ,"invoke: email" + user .getKakaoAccount ().getProfile ().getNickname ());
88
89
89
- nickName .setText (user .getKakaoAccount ().getProfile ().getNickname ());
90
- email .setText (user .getKakaoAccount ().getEmail ());
91
- loginButton .setVisibility (View .GONE );
92
- logoutButton .setVisibility (View .VISIBLE );
93
- }else {
94
- // 로그인이 되어 있지 않다면 위와 반대로
95
- nickName .setText (null );
96
- email .setText (null );
97
- loginButton .setVisibility (View .VISIBLE );
98
- logoutButton .setVisibility (View .GONE );
90
+ nickName .setText (user .getKakaoAccount ().getProfile ().getNickname ());
91
+ email .setText (user .getKakaoAccount ().getEmail ());
92
+ loginButton .setVisibility (View .GONE );
93
+ logoutButton .setVisibility (View .VISIBLE );
94
+ }else {
95
+ // 로그인이 되어 있지 않다면 위와 반대로
96
+ nickName .setText (null );
97
+ email .setText (null );
98
+ loginButton .setVisibility (View .VISIBLE );
99
+ logoutButton .setVisibility (View .GONE );
100
+ }
101
+ return null ;
99
102
}
100
- return null ;
101
- }
102
- });
103
- }
104
- }
103
+ });
104
+ }
105
+ };
106
+
0 commit comments