Browse Source

Cache moved to gateway layer

master
preyearegmi 6 years ago
parent
commit
2ccfd03a05
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java
  3. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java
  4. 144
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/gateway/HomeV2Gateway.java
  5. 57
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserCachedState.java
  6. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2InteractorInterface.java
  7. 84
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2Presenter.java

BIN
.idea/caches/build_file_checksums.ser

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java

@ -7,7 +7,6 @@ public abstract class PrivilegedGateway implements PrivilegedGatewayInterface {
@Override @Override
public String getUserEmailID() { public String getUserEmailID() {
return GmeApplication.getStorage().getString(PrefKeys.USER_EMAIL,""); return GmeApplication.getStorage().getString(PrefKeys.USER_EMAIL,"");
} }
@Override @Override

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java

@ -1,6 +1,5 @@
package com.gmeremit.online.gmeremittance_native.base; package com.gmeremit.online.gmeremittance_native.base;
import com.gmeremit.online.gmeremittance_native.GmeApplication;
public interface PrivilegedGatewayInterface extends BaseGatewayInterface { public interface PrivilegedGatewayInterface extends BaseGatewayInterface {
@ -29,5 +28,6 @@ public interface PrivilegedGatewayInterface extends BaseGatewayInterface {
String getUserDob(); String getUserDob();
boolean isUserKYCVerified(); boolean isUserKYCVerified();
boolean hasUserSubmittedKYC(); boolean hasUserSubmittedKYC();
} }

144
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/gateway/HomeV2Gateway.java

@ -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);
} }

57
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserCachedState.java

@ -0,0 +1,57 @@
package com.gmeremit.online.gmeremittance_native.homeV2.model;
/**
* In Memory Cache for user related data
* Cache only the vital state that is required during the UI navigation/transition
* For eg:
* User privilege is checked i.e "KYC submitted", "KYC verified" before navigating to send money or other privileged required operation.
* And checking privilege from non-volatile storage is costly operation during "OnClick" listener and may cause some delay in UI navigation/transition.
* So we prefer in-memory cache, for these type of operation.
* It is also important to update the cache to latest state manually where it is used.
*
*/
public class UserCachedState {
private boolean hasSubmittedKyc;
private boolean isVerifiedUser;
private String email;
private String dob;
public UserCachedState(boolean hasSubmittedKyc, boolean isVerifiedUser, String email, String dob) {
this.hasSubmittedKyc = hasSubmittedKyc;
this.isVerifiedUser = isVerifiedUser;
this.email = email;
this.dob = dob;
}
public UserCachedState() {
this.hasSubmittedKyc=false;
this.isVerifiedUser=false;
this.email=null;
this.dob=null;
}
public boolean hasSubmittedKyc() {
return hasSubmittedKyc;
}
public boolean isVerifiedUser() {
return isVerifiedUser;
}
public String getEmail() {
return email;
}
public String getDob() {
return dob;
}
public void setHasSubmittedKyc(boolean hasSubmittedKyc) {
this.hasSubmittedKyc = hasSubmittedKyc;
}
public void setVerifiedUser(boolean verifiedUser) {
isVerifiedUser = verifiedUser;
}
}

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2InteractorInterface.java

@ -26,6 +26,9 @@ public interface HomeV2InteractorInterface extends BaseInteractorInterface {
void clearAllUserData(); void clearAllUserData();
void updateSubmittedKycInCache(boolean action);
void updateVerifiedUser(boolean action);
} }
} }

84
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2Presenter.java

@ -29,7 +29,6 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
private final HomeV2GatewayInterface gateway; private final HomeV2GatewayInterface gateway;
private final CompositeDisposable compositeDisposable; private final CompositeDisposable compositeDisposable;
private final BehaviorSubject<HomeFragmentRelatedData> homeFragmentRelatedSubject; private final BehaviorSubject<HomeFragmentRelatedData> homeFragmentRelatedSubject;
private UserState userState = null;
public HomeV2Presenter(HomeV2PresenterInterface.HomeV2ContractInterface view) { public HomeV2Presenter(HomeV2PresenterInterface.HomeV2ContractInterface view) {
this.view = view; this.view = view;
@ -41,12 +40,11 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
/** /**
* Try to fetch real data, otherwise show stale data to user if cannot be fetched.
* Try to fetch real data, otherwise show previously fetched data to user if cannot be fetched.
*/ */
@Override @Override
public void getRequiredData() { public void getRequiredData() {
compositeDisposable.add( compositeDisposable.add(
// Observable.concat(getDataFromServerAndCacheIt().timeout(5, TimeUnit.SECONDS).onErrorResumeNext((Function<Throwable, ObservableSource<? extends UserInfoModelV2>>) Observable::error).subscribeOn(Schedulers.io()),
Observable.concat(getDataFromServerAndCacheIt().timeout(5, TimeUnit.SECONDS).onErrorResumeNext(new Function<Throwable, ObservableSource<? extends UserInfoModelV2>>() { Observable.concat(getDataFromServerAndCacheIt().timeout(5, TimeUnit.SECONDS).onErrorResumeNext(new Function<Throwable, ObservableSource<? extends UserInfoModelV2>>() {
@Override @Override
public ObservableSource<? extends UserInfoModelV2> apply(Throwable throwable) throws Exception { public ObservableSource<? extends UserInfoModelV2> apply(Throwable throwable) throws Exception {
@ -64,7 +62,6 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
.take(1) .take(1)
.subscribeWith(new UserInfoObserver())); .subscribeWith(new UserInfoObserver()));
} }
@Override @Override
@ -76,45 +73,30 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
public void manuallyUpdateKYCForStatusToSubmitted() { public void manuallyUpdateKYCForStatusToSubmitted() {
String message = "Your registration request is in approval process. You will soon be able to use GME services."; String message = "Your registration request is in approval process. You will soon be able to use GME services.";
String title = "Verification in Process"; String title = "Verification in Process";
// String title = "Thank you for registering with us!";
view.showKYCVerifiedIfRequired(true, message, title, true); view.showKYCVerifiedIfRequired(true, message, title, true);
if (userState != null) {
userState.hasSubmittedKyc = true;
userState.isVerifiedUser = false;
}
gateway.updateSubmittedKycInCache(true);
gateway.updateVerifiedUser(false);
} }
@Override @Override
public String checkIfUserVerified() { public String checkIfUserVerified() {
String resultMessage = null; String resultMessage = null;
if (userState == null) {
if (!gateway.hasUserSubmittedKYC()) if (!gateway.hasUserSubmittedKYC())
resultMessage = "Kindly complete your kyc registration process with us to start using GME services"; resultMessage = "Kindly complete your kyc registration process with us to start using GME services";
else if (!gateway.isUserKYCVerified()) else if (!gateway.isUserKYCVerified())
resultMessage = "Your registration request is in approval process. You will soon be able to use GME services"; resultMessage = "Your registration request is in approval process. You will soon be able to use GME services";
} else {
if (!userState.hasSubmittedKyc())
resultMessage = "Kindly complete your kyc registration process with us to start using GME services";
else if (!userState.isVerifiedUser())
resultMessage = "Your registration request is in approval process. You will soon be able to use GME services";
}
return resultMessage; return resultMessage;
} }
@Override @Override
public String getUserEmailID() { public String getUserEmailID() {
if (userState == null)
return this.gateway.getUserEmailID(); return this.gateway.getUserEmailID();
else
return userState.getEmail();
} }
@Override @Override
public String getUserDob() { public String getUserDob() {
if (userState == null)
return this.gateway.getUserDob(); return this.gateway.getUserDob();
else
return userState.getDob();
} }
@Override @Override
@ -123,7 +105,13 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
} }
private Observable<UserInfoModelV2> getDataFromServerAndCacheIt() { private Observable<UserInfoModelV2> getDataFromServerAndCacheIt() {
String fcmID = FirebaseInstanceId.getInstance().getToken();
String fcmID;
try {
fcmID = FirebaseInstanceId.getInstance().getToken();
} catch (Exception e) {
fcmID = null;
}
if (fcmID == null || fcmID.length() < 1) if (fcmID == null || fcmID.length() < 1)
fcmID = this.gateway.getLastKnownFcmId(); fcmID = this.gateway.getLastKnownFcmId();
@ -164,7 +152,6 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
String message = ""; String message = "";
String title = ""; String title = "";
userState = new UserState(userInfoModelV2.getKyc(), userInfoModelV2.getVerified(), userInfoModelV2.getEmail(), userInfoModelV2.getUserDob());
boolean disableKYCViewClick = userInfoModelV2.getKyc() && !userInfoModelV2.getVerified(); boolean disableKYCViewClick = userInfoModelV2.getKyc() && !userInfoModelV2.getVerified();
@ -180,8 +167,8 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
message = "Your registration request is in approval process. You will soon be able to use GME services."; message = "Your registration request is in approval process. You will soon be able to use GME services.";
} }
if(homeFragmentRelatedSubject !=null)
homeFragmentRelatedSubject.onNext(new HomeFragmentRelatedData(shouldShowKYCView,message,title,disableKYCViewClick,fullName, userInfoModelV2.getYearlyLimit(), userInfoModelV2.getRewardPoint()));
if (homeFragmentRelatedSubject != null)
homeFragmentRelatedSubject.onNext(new HomeFragmentRelatedData(shouldShowKYCView, message, title, disableKYCViewClick, fullName, userInfoModelV2.getYearlyLimit(), userInfoModelV2.getRewardPoint()));
} }
@ -203,43 +190,8 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
} }
} }
/**
* In Memory Cache, the cache is always updated for meta information of user
*/
private class UserState {
private boolean hasSubmittedKyc;
private boolean isVerifiedUser;
private String email;
private String dob;
public UserState(boolean hasSubmittedKyc, boolean isVerifiedUser, String email, String dob) {
this.hasSubmittedKyc = hasSubmittedKyc;
this.isVerifiedUser = isVerifiedUser;
this.email = email;
this.dob = dob;
}
boolean hasSubmittedKyc() {
return hasSubmittedKyc;
}
boolean isVerifiedUser() {
return isVerifiedUser;
}
public String getEmail() {
return email;
}
public String getDob() {
return dob;
}
}
public class HomeFragmentRelatedData
{
public class HomeFragmentRelatedData {
private boolean shouldShowKycView; private boolean shouldShowKycView;
private String message; private String message;
private String title; private String title;
@ -249,14 +201,14 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
private String yearlyLimit; private String yearlyLimit;
private String rewardPoint; private String rewardPoint;
public HomeFragmentRelatedData(boolean shouldShowKycView, String message, String title, boolean disableKYCViewClick, String userName,String yearlyLimit, String rewardPoint) {
public HomeFragmentRelatedData(boolean shouldShowKycView, String message, String title, boolean disableKYCViewClick, String userName, String yearlyLimit, String rewardPoint) {
this.shouldShowKycView = shouldShowKycView; this.shouldShowKycView = shouldShowKycView;
this.message = message; this.message = message;
this.title = title; this.title = title;
this.disableKYCViewClick = disableKYCViewClick; this.disableKYCViewClick = disableKYCViewClick;
this.userName=userName;
this.yearlyLimit=yearlyLimit;
this.rewardPoint=rewardPoint;
this.userName = userName;
this.yearlyLimit = yearlyLimit;
this.rewardPoint = rewardPoint;
} }
public boolean isShouldShowKycView() { public boolean isShouldShowKycView() {

Loading…
Cancel
Save