@@ -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