@@ -238,7 +238,7 @@ public void onFailure(Call<ResponseBody> call, Throwable t) {
238
238
public void getOAuthToken (String code , final ApiResponseListener listener ) {
239
239
240
240
Log .d (TAG , "Get OAuth Token" );
241
- String url = BuildConfig . TOKEN_URL ;
241
+ String url = getTokenUrl () ;
242
242
243
243
try {
244
244
apiInterface .oauthLogin (url , "application/x-www-form-urlencoded" ,
@@ -294,10 +294,68 @@ public void onFailure(Call<ResponseBody> call, Throwable t) {
294
294
}
295
295
}
296
296
297
+ public void getOAuthTokenForWechat (String code , final ApiResponseListener listener ) {
298
+
299
+ Log .d (TAG , "Get OAuth Token for WeChat" );
300
+ String url = getTokenUrl ();
301
+
302
+ try {
303
+ apiInterface .oauthLoginForWeChat (url , "application/x-www-form-urlencoded" ,
304
+ "authorization_code" , BuildConfig .CHINA_CLIENT_ID , code , true ,
305
+ BuildConfig .REDIRECT_URI ).enqueue (new Callback <ResponseBody >() {
306
+ @ Override
307
+ public void onResponse (Call <ResponseBody > call , Response <ResponseBody > response ) {
308
+
309
+ Log .d (TAG , "Get OAuth Token for WeChat, Response code : " + response .code ());
310
+ try {
311
+ if (response .isSuccessful ()) {
312
+
313
+ String jsonResponse = response .body ().string ();
314
+ JSONObject jsonObject = new JSONObject (jsonResponse );
315
+ idToken = jsonObject .getString (AppConstants .KEY_ID_TOKEN );
316
+ accessToken = jsonObject .getString (AppConstants .KEY_ACCESS_TOKEN );
317
+ refreshToken = jsonObject .getString (AppConstants .KEY_REFRESH_TOKEN );
318
+ isOAuthLogin = true ;
319
+
320
+ SharedPreferences .Editor editor = sharedPreferences .edit ();
321
+ editor .putString (AppConstants .KEY_ID_TOKEN , idToken );
322
+ editor .putString (AppConstants .KEY_ACCESS_TOKEN , accessToken );
323
+ editor .putString (AppConstants .KEY_REFRESH_TOKEN , refreshToken );
324
+ editor .putBoolean (AppConstants .KEY_IS_OAUTH_LOGIN , true );
325
+ editor .apply ();
326
+
327
+ getTokenAndUserId ();
328
+ listener .onSuccess (null );
329
+
330
+ } else {
331
+ String jsonErrResponse = response .errorBody ().string ();
332
+ processError (jsonErrResponse , listener , "Failed to get WeChat login token." );
333
+ }
334
+ } catch (IOException e ) {
335
+ e .printStackTrace ();
336
+ listener .onResponseFailure (e );
337
+ } catch (JSONException e ) {
338
+ e .printStackTrace ();
339
+ listener .onResponseFailure (e );
340
+ }
341
+ }
342
+
343
+ @ Override
344
+ public void onFailure (Call <ResponseBody > call , Throwable t ) {
345
+ t .printStackTrace ();
346
+ listener .onNetworkFailure (new Exception (t ));
347
+ }
348
+ });
349
+ } catch (Exception e ) {
350
+ e .printStackTrace ();
351
+ listener .onNetworkFailure (e );
352
+ }
353
+ }
354
+
297
355
public void getOAuthTokenForController (String code , final ApiResponseListener listener ) {
298
356
299
357
Log .d (TAG , "Get OAuth Token for Matter Controller" );
300
- String url = BuildConfig . TOKEN_URL ;
358
+ String url = getTokenUrl () ;
301
359
302
360
try {
303
361
apiInterface .oauthLogin (url , "application/x-www-form-urlencoded" ,
@@ -2679,8 +2737,9 @@ public void run() {
2679
2737
public void initiateClaim (JsonObject body , final ApiResponseListener listener ) {
2680
2738
2681
2739
Log .d (TAG , "Initiate Claiming..." );
2740
+ String url = getClaimBaseUrl () + AppConstants .URL_CLAIM_INITIATE ;
2682
2741
2683
- apiInterface .initiateClaiming (AppConstants . URL_CLAIM_INITIATE , accessToken , body ).enqueue (new Callback <ResponseBody >() {
2742
+ apiInterface .initiateClaiming (url , accessToken , body ).enqueue (new Callback <ResponseBody >() {
2684
2743
2685
2744
@ Override
2686
2745
public void onResponse (Call <ResponseBody > call , Response <ResponseBody > response ) {
@@ -2716,8 +2775,9 @@ public void onFailure(Call<ResponseBody> call, Throwable t) {
2716
2775
public void verifyClaiming (JsonObject body , final ApiResponseListener listener ) {
2717
2776
2718
2777
Log .d (TAG , "Verifying Claiming..." );
2778
+ String url = getClaimBaseUrl () + AppConstants .URL_CLAIM_VERIFY ;
2719
2779
2720
- apiInterface .verifyClaiming (AppConstants . URL_CLAIM_VERIFY , accessToken , body ).enqueue (new Callback <ResponseBody >() {
2780
+ apiInterface .verifyClaiming (url , accessToken , body ).enqueue (new Callback <ResponseBody >() {
2721
2781
2722
2782
@ Override
2723
2783
public void onResponse (Call <ResponseBody > call , Response <ResponseBody > response ) {
@@ -4761,6 +4821,20 @@ private String getBaseUrl() {
4761
4821
return EspApplication .BASE_URL + AppConstants .PATH_SEPARATOR + AppConstants .CURRENT_VERSION ;
4762
4822
}
4763
4823
4824
+ private String getTokenUrl () {
4825
+ if (BuildConfig .isChinaRegion ) {
4826
+ return BuildConfig .CHINA_TOKEN_URL ;
4827
+ }
4828
+ return BuildConfig .TOKEN_URL ;
4829
+ }
4830
+
4831
+ private String getClaimBaseUrl () {
4832
+ if (BuildConfig .isChinaRegion ) {
4833
+ return BuildConfig .CHINA_CLAIM_BASE_URL ;
4834
+ }
4835
+ return BuildConfig .CLAIM_BASE_URL ;
4836
+ }
4837
+
4764
4838
private String getLoginEndpointUrl () {
4765
4839
String endpoint = Integer .valueOf (BuildConfig .USER_POOL ) == AppConstants .USER_POOL_1 ? AppConstants .URL_LOGIN : AppConstants .URL_LOGIN_2 ;
4766
4840
String loginUrl = getBaseUrl () + endpoint ;
0 commit comments