Skip to content

Commit ba16b98

Browse files
authored
Merge pull request #16 from toshi3221/fix/login_on_android
Fix some login error on android
2 parents f8f061a + e6b422a commit ba16b98

File tree

1 file changed

+34
-20
lines changed

1 file changed

+34
-20
lines changed

android/src/main/java/com/xmartlabs/lineloginmanager/LineLogin.java

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,30 @@ public class LineLogin extends ReactContextBaseJavaModule {
2727

2828
private LineApiClient lineApiClient;
2929
private Promise currentPromise;
30-
private LineLoginResult loginResult;
3130
private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() {
3231
@Override
3332
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
3433
super.onActivityResult(activity, requestCode, resultCode, data);
3534
if (currentPromise != null) {
35+
final Promise promise = currentPromise;
36+
currentPromise = null;
3637
if (requestCode != REQUEST_CODE) {
37-
currentPromise.reject(ERROR, "Unsupported request");
38+
promise.reject(ERROR, "Unsupported request");
3839
return;
3940
}
40-
loginResult = LineLoginApi.getLoginResultFromIntent(data);
41+
final LineLoginResult loginResult = LineLoginApi.getLoginResultFromIntent(data);
4142
switch (loginResult.getResponseCode()) {
4243
case SUCCESS:
43-
currentPromise.resolve(parseLoginResult(loginResult));
44+
promise.resolve(parseLoginResult(loginResult));
4445
break;
4546
case CANCEL:
46-
loginResult = null;
47-
currentPromise.reject(ERROR, "Line login canceled by user");
47+
promise.reject(ERROR, "Line login canceled by user");
48+
break;
49+
case AUTHENTICATION_AGENT_ERROR:
50+
promise.reject(ERROR, "The user has denied the approval");
4851
break;
4952
default:
50-
loginResult = null;
51-
currentPromise.reject(ERROR, loginResult.getErrorData().toString());
53+
promise.reject(ERROR, loginResult.getErrorData().toString());
5254
break;
5355
}
5456
}
@@ -143,10 +145,14 @@ protected LineApiResponse doInBackground(Void... voids) {
143145

144146
@Override
145147
protected void onPostExecute(LineApiResponse lineApiResponse) {
146-
if (lineApiResponse.isSuccess()) {
147-
currentPromise.resolve(new Object());
148-
} else {
149-
currentPromise.reject(ERROR, lineApiResponse.getErrorData().toString());
148+
if (currentPromise != null) {
149+
final Promise promise = currentPromise;
150+
currentPromise = null;
151+
if (lineApiResponse.isSuccess()) {
152+
promise.resolve(null);
153+
} else {
154+
promise.reject(ERROR, lineApiResponse.getErrorData().toString());
155+
}
150156
}
151157
}
152158
}
@@ -157,10 +163,14 @@ protected LineApiResponse<LineProfile> doInBackground(Void... params) {
157163
}
158164

159165
protected void onPostExecute(LineApiResponse<LineProfile> lineApiResponse) {
160-
if (lineApiResponse.isSuccess()) {
161-
currentPromise.resolve(parseProfile(lineApiResponse.getResponseData()));
162-
} else {
163-
currentPromise.reject(ERROR, lineApiResponse.getErrorData().toString());
166+
if (currentPromise != null) {
167+
final Promise promise = currentPromise;
168+
currentPromise = null;
169+
if (lineApiResponse.isSuccess()) {
170+
promise.resolve(parseProfile(lineApiResponse.getResponseData()));
171+
} else {
172+
promise.reject(ERROR, lineApiResponse.getErrorData().toString());
173+
}
164174
}
165175
}
166176
}
@@ -172,10 +182,14 @@ protected LineApiResponse<LineAccessToken> doInBackground(Void... params) {
172182

173183
@Override
174184
protected void onPostExecute(LineApiResponse<LineAccessToken> lineApiResponse) {
175-
if (lineApiResponse.isSuccess()) {
176-
currentPromise.resolve(parseAccessToken(lineApiResponse.getResponseData()));
177-
} else {
178-
currentPromise.reject(ERROR, lineApiResponse.getErrorData().toString());
185+
if (currentPromise != null) {
186+
final Promise promise = currentPromise;
187+
currentPromise = null;
188+
if (lineApiResponse.isSuccess()) {
189+
promise.resolve(parseAccessToken(lineApiResponse.getResponseData()));
190+
} else {
191+
promise.reject(ERROR, lineApiResponse.getErrorData().toString());
192+
}
179193
}
180194
}
181195
}

0 commit comments

Comments
 (0)