|
@ -1,13 +1,13 @@ |
|
|
package com.gmeremit.online.gmeremittance_native.homeV2.gateway; |
|
|
package com.gmeremit.online.gmeremittance_native.homeV2.gateway; |
|
|
|
|
|
|
|
|
import android.content.SharedPreferences; |
|
|
import android.content.SharedPreferences; |
|
|
import android.util.Log; |
|
|
|
|
|
|
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.GmeApplication; |
|
|
import com.gmeremit.online.gmeremittance_native.GmeApplication; |
|
|
import com.gmeremit.online.gmeremittance_native.base.PrefKeys; |
|
|
import com.gmeremit.online.gmeremittance_native.base.PrefKeys; |
|
|
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; |
|
|
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoV2DataApiResponse; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoV2DataApiResponse; |
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserCachedState; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.presenter.HomeV2InteractorInterface; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.presenter.HomeV2InteractorInterface; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; |
|
|
import com.google.gson.JsonObject; |
|
|
import com.google.gson.JsonObject; |
|
@ -19,30 +19,31 @@ import io.reactivex.Observable; |
|
|
public class HomeV2Gateway extends PrivilegedGateway implements HomeV2InteractorInterface.HomeV2GatewayInterface { |
|
|
public class HomeV2Gateway extends PrivilegedGateway implements HomeV2InteractorInterface.HomeV2GatewayInterface { |
|
|
|
|
|
|
|
|
private final HomeV2InteractorInterface interactor; |
|
|
private final HomeV2InteractorInterface interactor; |
|
|
|
|
|
private UserCachedState userStateCache; |
|
|
|
|
|
|
|
|
public HomeV2Gateway(HomeV2InteractorInterface interactor) { |
|
|
public HomeV2Gateway(HomeV2InteractorInterface interactor) { |
|
|
this.interactor=interactor; |
|
|
|
|
|
|
|
|
this.interactor = interactor; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Observable<UserInfoV2DataApiResponse> getUserRelatedData(String auth,String userId,String fcmId, String appVersion, String phoneBrand, String phoneOs, String deviceId, String osVersion) { |
|
|
|
|
|
JsonObject jsonObject=new JsonObject(); |
|
|
|
|
|
jsonObject.addProperty("userId",userId); |
|
|
|
|
|
jsonObject.addProperty("uuid",deviceId); |
|
|
|
|
|
jsonObject.addProperty("appVersion",appVersion); |
|
|
|
|
|
jsonObject.addProperty("phoneBrand",phoneBrand); |
|
|
|
|
|
jsonObject.addProperty("phoneOS",phoneOs); |
|
|
|
|
|
jsonObject.addProperty("fcmId",fcmId); |
|
|
|
|
|
jsonObject.addProperty("osVersion",osVersion); |
|
|
|
|
|
|
|
|
public Observable<UserInfoV2DataApiResponse> getUserRelatedData(String auth, String userId, String fcmId, String appVersion, String phoneBrand, String phoneOs, String deviceId, String osVersion) { |
|
|
|
|
|
JsonObject jsonObject = new JsonObject(); |
|
|
|
|
|
jsonObject.addProperty("userId", userId); |
|
|
|
|
|
jsonObject.addProperty("uuid", deviceId); |
|
|
|
|
|
jsonObject.addProperty("appVersion", appVersion); |
|
|
|
|
|
jsonObject.addProperty("phoneBrand", phoneBrand); |
|
|
|
|
|
jsonObject.addProperty("phoneOS", phoneOs); |
|
|
|
|
|
jsonObject.addProperty("fcmId", fcmId); |
|
|
|
|
|
jsonObject.addProperty("osVersion", osVersion); |
|
|
// return HttpClientV2.getInstance().getUserRelatedInfoV2(auth,jsonObject); |
|
|
// return HttpClientV2.getInstance().getUserRelatedInfoV2(auth,jsonObject); |
|
|
|
|
|
|
|
|
// Mock slow server response |
|
|
// Mock slow server response |
|
|
return Observable.timer(3, TimeUnit.SECONDS).flatMap(tick->HttpClientV2.getInstance().getUserRelatedInfoV2(auth,jsonObject)); |
|
|
|
|
|
|
|
|
return Observable.timer(3, TimeUnit.SECONDS).flatMap(tick -> HttpClientV2.getInstance().getUserRelatedInfoV2(auth, jsonObject)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Observable<UserInfoModelV2> saveUserInfo(UserInfoModelV2 loginApiResponseModelV2) { |
|
|
public Observable<UserInfoModelV2> saveUserInfo(UserInfoModelV2 loginApiResponseModelV2) { |
|
|
return Observable.create(observable->{ |
|
|
|
|
|
|
|
|
return Observable.create(observable -> { |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
SharedPreferences.Editor sharedPreferenceEditor = GmeApplication.getStorage().edit(); |
|
|
SharedPreferences.Editor sharedPreferenceEditor = GmeApplication.getStorage().edit(); |
|
@ -76,17 +77,15 @@ public class HomeV2Gateway extends PrivilegedGateway implements HomeV2Interactor |
|
|
sharedPreferenceEditor.putString(PrefKeys.USER_DOB, loginApiResponseModelV2.getUserDob()); |
|
|
sharedPreferenceEditor.putString(PrefKeys.USER_DOB, loginApiResponseModelV2.getUserDob()); |
|
|
sharedPreferenceEditor.commit(); |
|
|
sharedPreferenceEditor.commit(); |
|
|
|
|
|
|
|
|
|
|
|
userStateCache = new UserCachedState(loginApiResponseModelV2.getKyc(), loginApiResponseModelV2.getVerified(), loginApiResponseModelV2.getEmail(), loginApiResponseModelV2.getUserDob()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception e ) |
|
|
|
|
|
{ |
|
|
|
|
|
if(!observable.isDisposed()) |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
if (!observable.isDisposed()) |
|
|
observable.onError(new Throwable("Failed to write to disk")); |
|
|
observable.onError(new Throwable("Failed to write to disk")); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(!observable.isDisposed()) { |
|
|
|
|
|
|
|
|
if (!observable.isDisposed()) { |
|
|
observable.onNext(loginApiResponseModelV2); |
|
|
observable.onNext(loginApiResponseModelV2); |
|
|
observable.onComplete(); |
|
|
observable.onComplete(); |
|
|
} |
|
|
} |
|
@ -98,40 +97,87 @@ public class HomeV2Gateway extends PrivilegedGateway implements HomeV2Interactor |
|
|
GmeApplication.getStorage().edit().clear().apply(); |
|
|
GmeApplication.getStorage().edit().clear().apply(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void updateSubmittedKycInCache(boolean action) { |
|
|
|
|
|
if (userStateCache == null) |
|
|
|
|
|
userStateCache = new UserCachedState(); |
|
|
|
|
|
userStateCache.setHasSubmittedKyc(action); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void updateVerifiedUser(boolean action) { |
|
|
|
|
|
if (userStateCache == null) |
|
|
|
|
|
userStateCache = new UserCachedState(); |
|
|
|
|
|
userStateCache.setVerifiedUser(action); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public boolean hasUserSubmittedKYC() { |
|
|
|
|
|
if (userStateCache != null) |
|
|
|
|
|
return userStateCache.hasSubmittedKyc(); |
|
|
|
|
|
return super.hasUserSubmittedKYC(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public boolean isUserKYCVerified() { |
|
|
|
|
|
if (userStateCache != null) |
|
|
|
|
|
return userStateCache.isVerifiedUser(); |
|
|
|
|
|
return super.isUserKYCVerified(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public String getUserEmailID() { |
|
|
|
|
|
if(userStateCache!=null&&userStateCache.getEmail()!=null) |
|
|
|
|
|
return userStateCache.getEmail(); |
|
|
|
|
|
return super.getUserEmailID(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public String getUserDob() { |
|
|
|
|
|
if(userStateCache!=null&&userStateCache.getDob()!=null) |
|
|
|
|
|
return userStateCache.getEmail(); |
|
|
|
|
|
return super.getUserDob(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Observable<UserInfoModelV2> getCachedUserInfo() { |
|
|
public Observable<UserInfoModelV2> getCachedUserInfo() { |
|
|
UserInfoModelV2 userInfoModelV2=new UserInfoModelV2(); |
|
|
|
|
|
|
|
|
UserInfoModelV2 userInfoModelV2 = new UserInfoModelV2(); |
|
|
|
|
|
|
|
|
SharedPreferences sharedPreferenceEditor = GmeApplication.getStorage(); |
|
|
SharedPreferences sharedPreferenceEditor = GmeApplication.getStorage(); |
|
|
userInfoModelV2.setAccessCode(sharedPreferenceEditor.getString(PrefKeys.USER_ACCESS_CODE,"")); |
|
|
|
|
|
userInfoModelV2.setActive(sharedPreferenceEditor.getBoolean(PrefKeys.USER_ACTIVE,false)); |
|
|
|
|
|
userInfoModelV2.setAvailableBalance(sharedPreferenceEditor.getString(PrefKeys.USER_AVAILABLE_BALANCE,"")); |
|
|
|
|
|
userInfoModelV2.setCmRegistrationId(sharedPreferenceEditor.getString(PrefKeys.USER_CM_REGISTRATION_ID,"")); |
|
|
|
|
|
userInfoModelV2.setCountryCode(sharedPreferenceEditor.getString(PrefKeys.USER_COOUNTRY_CODE,"")); |
|
|
|
|
|
userInfoModelV2.setCountry(sharedPreferenceEditor.getString(PrefKeys.USER_COUNTRY,"")); |
|
|
|
|
|
userInfoModelV2.setDpUrl(sharedPreferenceEditor.getString(PrefKeys.USER_DP_URL,"")); |
|
|
|
|
|
userInfoModelV2.setIdNumber(sharedPreferenceEditor.getString(PrefKeys.USER_DOCUMENT_ID_NUMBER,"")); |
|
|
|
|
|
userInfoModelV2.setEmail(sharedPreferenceEditor.getString(PrefKeys.USER_EMAIL,"")); |
|
|
|
|
|
userInfoModelV2.setFirstName(sharedPreferenceEditor.getString(PrefKeys.USER_FIRST_NAME,"")); |
|
|
|
|
|
userInfoModelV2.setUserId(sharedPreferenceEditor.getString(PrefKeys.USER_ID,"")); |
|
|
|
|
|
userInfoModelV2.setSenderId(sharedPreferenceEditor.getString(PrefKeys.USER_ID_NUMBER,"")); |
|
|
|
|
|
userInfoModelV2.setIdType(sharedPreferenceEditor.getString(PrefKeys.USER_ID_TYPE,"")); |
|
|
|
|
|
userInfoModelV2.setReferred(sharedPreferenceEditor.getBoolean(PrefKeys.USER_IS_REFERRED,false)); |
|
|
|
|
|
userInfoModelV2.setKyc(sharedPreferenceEditor.getBoolean(PrefKeys.USER_KYC_SUBMITTED,false)); |
|
|
|
|
|
userInfoModelV2.setLastName(sharedPreferenceEditor.getString(PrefKeys.USER_LAST_NAME,"")); |
|
|
|
|
|
userInfoModelV2.setMiddleName(sharedPreferenceEditor.getString(PrefKeys.USER_MIDDLE_NAME,"")); |
|
|
|
|
|
userInfoModelV2.setMobileNumber(sharedPreferenceEditor.getString(PrefKeys.USER_MSISDN,"")); |
|
|
|
|
|
userInfoModelV2.setNickName(sharedPreferenceEditor.getString(PrefKeys.USER_NICK_NAME,"")); |
|
|
|
|
|
userInfoModelV2.setPrimaryBankName(sharedPreferenceEditor.getString(PrefKeys.USER_PRIMARY_BANK_NAME,"")); |
|
|
|
|
|
userInfoModelV2.setProvince(sharedPreferenceEditor.getString(PrefKeys.USER_PROVINCE,"")); |
|
|
|
|
|
userInfoModelV2.setProvinceId(sharedPreferenceEditor.getString(PrefKeys.USER_PROVINCE_ID,"")); |
|
|
|
|
|
userInfoModelV2.setRewardPoint(sharedPreferenceEditor.getString(PrefKeys.USER_REWAD_POINT,"")); |
|
|
|
|
|
userInfoModelV2.setSourceId(sharedPreferenceEditor.getString(PrefKeys.USER_SOURCE_ID,"")); |
|
|
|
|
|
userInfoModelV2.setVerified(sharedPreferenceEditor.getBoolean(PrefKeys.USER_KYC_VERIFIED,false)); |
|
|
|
|
|
userInfoModelV2.setWalletNumber(sharedPreferenceEditor.getString(PrefKeys.USER_WALLET_NUMBER,"")); |
|
|
|
|
|
userInfoModelV2.setYearlyLimit(sharedPreferenceEditor.getString(PrefKeys.USER_YEARLY_REMAINING_LIMIT,"")); |
|
|
|
|
|
|
|
|
|
|
|
Log.d("DashBoardError","Cached Data is prepared"); |
|
|
|
|
|
|
|
|
userInfoModelV2.setAccessCode(sharedPreferenceEditor.getString(PrefKeys.USER_ACCESS_CODE, "")); |
|
|
|
|
|
userInfoModelV2.setActive(sharedPreferenceEditor.getBoolean(PrefKeys.USER_ACTIVE, false)); |
|
|
|
|
|
userInfoModelV2.setAvailableBalance(sharedPreferenceEditor.getString(PrefKeys.USER_AVAILABLE_BALANCE, "")); |
|
|
|
|
|
userInfoModelV2.setCmRegistrationId(sharedPreferenceEditor.getString(PrefKeys.USER_CM_REGISTRATION_ID, "")); |
|
|
|
|
|
userInfoModelV2.setCountryCode(sharedPreferenceEditor.getString(PrefKeys.USER_COOUNTRY_CODE, "")); |
|
|
|
|
|
userInfoModelV2.setCountry(sharedPreferenceEditor.getString(PrefKeys.USER_COUNTRY, "")); |
|
|
|
|
|
userInfoModelV2.setDpUrl(sharedPreferenceEditor.getString(PrefKeys.USER_DP_URL, "")); |
|
|
|
|
|
userInfoModelV2.setIdNumber(sharedPreferenceEditor.getString(PrefKeys.USER_DOCUMENT_ID_NUMBER, "")); |
|
|
|
|
|
userInfoModelV2.setEmail(sharedPreferenceEditor.getString(PrefKeys.USER_EMAIL, "")); |
|
|
|
|
|
userInfoModelV2.setFirstName(sharedPreferenceEditor.getString(PrefKeys.USER_FIRST_NAME, "")); |
|
|
|
|
|
userInfoModelV2.setUserId(sharedPreferenceEditor.getString(PrefKeys.USER_ID, "")); |
|
|
|
|
|
userInfoModelV2.setSenderId(sharedPreferenceEditor.getString(PrefKeys.USER_ID_NUMBER, "")); |
|
|
|
|
|
userInfoModelV2.setIdType(sharedPreferenceEditor.getString(PrefKeys.USER_ID_TYPE, "")); |
|
|
|
|
|
userInfoModelV2.setReferred(sharedPreferenceEditor.getBoolean(PrefKeys.USER_IS_REFERRED, false)); |
|
|
|
|
|
userInfoModelV2.setKyc(sharedPreferenceEditor.getBoolean(PrefKeys.USER_KYC_SUBMITTED, false)); |
|
|
|
|
|
userInfoModelV2.setLastName(sharedPreferenceEditor.getString(PrefKeys.USER_LAST_NAME, "")); |
|
|
|
|
|
userInfoModelV2.setMiddleName(sharedPreferenceEditor.getString(PrefKeys.USER_MIDDLE_NAME, "")); |
|
|
|
|
|
userInfoModelV2.setMobileNumber(sharedPreferenceEditor.getString(PrefKeys.USER_MSISDN, "")); |
|
|
|
|
|
userInfoModelV2.setNickName(sharedPreferenceEditor.getString(PrefKeys.USER_NICK_NAME, "")); |
|
|
|
|
|
userInfoModelV2.setPrimaryBankName(sharedPreferenceEditor.getString(PrefKeys.USER_PRIMARY_BANK_NAME, "")); |
|
|
|
|
|
userInfoModelV2.setProvince(sharedPreferenceEditor.getString(PrefKeys.USER_PROVINCE, "")); |
|
|
|
|
|
userInfoModelV2.setProvinceId(sharedPreferenceEditor.getString(PrefKeys.USER_PROVINCE_ID, "")); |
|
|
|
|
|
userInfoModelV2.setRewardPoint(sharedPreferenceEditor.getString(PrefKeys.USER_REWAD_POINT, "")); |
|
|
|
|
|
userInfoModelV2.setSourceId(sharedPreferenceEditor.getString(PrefKeys.USER_SOURCE_ID, "")); |
|
|
|
|
|
userInfoModelV2.setVerified(sharedPreferenceEditor.getBoolean(PrefKeys.USER_KYC_VERIFIED, false)); |
|
|
|
|
|
userInfoModelV2.setWalletNumber(sharedPreferenceEditor.getString(PrefKeys.USER_WALLET_NUMBER, "")); |
|
|
|
|
|
userInfoModelV2.setYearlyLimit(sharedPreferenceEditor.getString(PrefKeys.USER_YEARLY_REMAINING_LIMIT, "")); |
|
|
|
|
|
|
|
|
|
|
|
userStateCache = new UserCachedState(userInfoModelV2.getKyc(), userInfoModelV2.getVerified(), userInfoModelV2.getEmail(), userInfoModelV2.getUserDob()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Observable.just(userInfoModelV2); |
|
|
return Observable.just(userInfoModelV2); |
|
|
} |
|
|
} |
|
|