Browse Source

HOome V2 commence

master
preyearegmi 6 years ago
parent
commit
066f32de77
  1. 48
      app/src/main/AndroidManifest.xml
  2. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java
  3. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeFragment.java
  4. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/HomeParentViewContractV2.java
  5. 73
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/gateway/HomeV2Gateway.java
  6. 9
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserInfoModelV2.java
  7. 53
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserInfoV2DataApiResponse.java
  8. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2InteractorInterface.java
  9. 67
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2Presenter.java
  10. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2PresenterInterface.java
  11. 71
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/model/LoginModelV2.java
  12. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  13. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

48
app/src/main/AndroidManifest.xml

@ -59,18 +59,18 @@
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden">
<!--<intent-filter>-->
<!--<action android:name="HOME" />-->
<intent-filter>
<action android:name="HOME" />
<!--<category android:name="android.intent.category.DEFAULT" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
@ -510,18 +510,18 @@
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<!-- <intent-filter> -->
<!-- <action android:name="HOME" /> -->
<!--<intent-filter> -->
<!--<action android:name="HOME" /> -->
<!-- <category android:name="android.intent.category.DEFAULT" /> -->
<!-- </intent-filter> -->
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.MAIN" /> -->
<!--<category android:name="android.intent.category.DEFAULT" /> -->
<!--</intent-filter> -->
<!--<intent-filter> -->
<!--<action android:name="android.intent.action.MAIN" /> -->
<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<!-- </intent-filter> -->
<!--<category android:name="android.intent.category.LAUNCHER" /> -->
<!--</intent-filter> -->
</activity>
<activity
android:name=".loginV2.view.LoginV2Activity"
@ -543,16 +543,16 @@
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="HOME" />
<!--<intent-filter>-->
<!--<action android:name="HOME" />-->
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--<category android:name="android.intent.category.DEFAULT" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
</activity>
<activity android:name=".transactionhistoryV2.view.TransactionHistoryActivityV2"
android:screenOrientation="portrait"

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeActivity.java

@ -471,6 +471,10 @@ public class HomeActivity extends AppCompatActivity implements HomeContract.Home
}
}
/**
* Server user related response is managed here
* @param body
*/
@Override
public void onSuccessUserProfile(UserProfile body) {
presenter.getNotificationStatus();

5
app/src/main/java/com/gmeremit/online/gmeremittance_native/home/view/HomeFragment.java

@ -70,6 +70,7 @@ import com.gmeremit.online.gmeremittance_native.socials.view.SocialPostLikesActi
import com.gmeremit.online.gmeremittance_native.socials.view.SocialPrivateWallActivity;
import com.gmeremit.online.gmeremittance_native.track_transfer.view.TrackYourTransferActivity;
import com.gmeremit.online.gmeremittance_native.transaction_statement.view.TransactionStatementActivity;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.view.TransactionHistoryActivityV2;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.utils.other.PersistenceStorageManager;
@ -529,7 +530,9 @@ public class HomeFragment extends Fragment implements HomeContract.MenuItemClick
} else if (id == 4) {
startActivity(new Intent(getContext(), TrackYourTransferActivity.class));
} else if (id == 5) {
startActivity(new Intent(getContext(), TransactionStatementActivity.class));
// startActivity(new Intent(getContext(), TransactionStatementActivity.class));
startActivity(new Intent(getActivity(), TransactionHistoryActivityV2.class));
// showFetaureComingSoon();
} else if (id == 6) {

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/HomeParentViewContractV2.java

@ -13,5 +13,4 @@ public interface HomeParentViewContractV2 {
void showWalletToWalletView();
void showInfoInDrawer(String fullname, String email, String balance, String walletNumber, String bankName, String contact);
}

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

@ -1,7 +1,80 @@
package com.gmeremit.online.gmeremittance_native.homeV2.gateway;
import android.content.SharedPreferences;
import com.gmeremit.online.gmeremittance_native.GmeApplication;
import com.gmeremit.online.gmeremittance_native.base.PrefKeys;
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.UserInfoV2DataApiResponse;
import com.gmeremit.online.gmeremittance_native.homeV2.presenter.HomeV2InteractorInterface;
import io.reactivex.Observable;
public class HomeV2Gateway extends PrivilegedGateway implements HomeV2InteractorInterface.HomeV2GatewayInterface {
private final HomeV2InteractorInterface interactor;
public HomeV2Gateway(HomeV2InteractorInterface interactor) {
this.interactor=interactor;
}
@Override
public Observable<UserInfoV2DataApiResponse> getUserRelatedData(String auth) {
return null;
}
@Override
public Observable<UserInfoModelV2> saveUserInfo(UserInfoModelV2 loginApiResponseModelV2) {
return Observable.create(observable->{
try {
SharedPreferences.Editor sharedPreferenceEditor = GmeApplication.getStorage().edit();
//
// sharedPreferenceEditor.putString(PrefKeys.USER_ACCESS_CODE, loginApiResponseModelV2.getAccessCode());
// sharedPreferenceEditor.putBoolean(PrefKeys.USER_ACTIVE, loginApiResponseModelV2.getActive());
// sharedPreferenceEditor.putString(PrefKeys.USER_AVAILABLE_BALANCE, loginApiResponseModelV2.getAvailableBalance());
// sharedPreferenceEditor.putString(PrefKeys.USER_CM_REGISTRATION_ID, loginApiResponseModelV2.getCmRegistrationId());
// sharedPreferenceEditor.putString(PrefKeys.USER_COOUNTRY_CODE, loginApiResponseModelV2.getCountryCode());
// sharedPreferenceEditor.putString(PrefKeys.USER_COUNTRY, loginApiResponseModelV2.getCountry());
// sharedPreferenceEditor.putString(PrefKeys.USER_DP_URL, loginApiResponseModelV2.getDpUrl());
// sharedPreferenceEditor.putString(PrefKeys.USER_DOCUMENT_ID_NUMBER, loginApiResponseModelV2.getIdNumber());
// sharedPreferenceEditor.putString(PrefKeys.USER_EMAIL, loginApiResponseModelV2.getEmail());
// sharedPreferenceEditor.putString(PrefKeys.USER_FIRST_NAME, loginApiResponseModelV2.getFirstName());
// sharedPreferenceEditor.putString(PrefKeys.USER_ID, loginApiResponseModelV2.getUserId());
// sharedPreferenceEditor.putString(PrefKeys.USER_ID_NUMBER, loginApiResponseModelV2.getSenderId());
// sharedPreferenceEditor.putString(PrefKeys.USER_ID_TYPE, loginApiResponseModelV2.getIdType());
// sharedPreferenceEditor.putBoolean(PrefKeys.USER_IS_REFERRED, loginApiResponseModelV2.getReferred());
// sharedPreferenceEditor.putBoolean(PrefKeys.USER_KYC_VERIFIED, loginApiResponseModelV2.getKyc());
// sharedPreferenceEditor.putString(PrefKeys.USER_LAST_NAME, loginApiResponseModelV2.getLastName());
// sharedPreferenceEditor.putString(PrefKeys.USER_MIDDLE_NAME, loginApiResponseModelV2.getMiddleName());
// sharedPreferenceEditor.putString(PrefKeys.USER_MSISDN, loginApiResponseModelV2.getMobileNumber());
// sharedPreferenceEditor.putString(PrefKeys.USER_NICK_NAME, loginApiResponseModelV2.getNickName());
// sharedPreferenceEditor.putString(PrefKeys.USER_PRIMARY_BANK_NAME, loginApiResponseModelV2.getPrimaryBankName());
// sharedPreferenceEditor.putString(PrefKeys.USER_PROVINCE, loginApiResponseModelV2.getProvince());
// sharedPreferenceEditor.putString(PrefKeys.USER_PROVINCE_ID, loginApiResponseModelV2.getProvinceId());
// sharedPreferenceEditor.putString(PrefKeys.USER_REWAD_POINT, loginApiResponseModelV2.getRewardPoint());
// sharedPreferenceEditor.putString(PrefKeys.USER_SOURCE_ID, loginApiResponseModelV2.getSourceId());
// sharedPreferenceEditor.putBoolean(PrefKeys.USER_VERIFIED, loginApiResponseModelV2.getVerified());
// sharedPreferenceEditor.putString(PrefKeys.USER_WALLET_NUMBER, loginApiResponseModelV2.getWalletNumber());
sharedPreferenceEditor.commit();
}
catch (Exception e )
{
if(!observable.isDisposed())
observable.onError(new Throwable("Failed to write to disk"));
}
if(!observable.isDisposed()) {
observable.onNext(loginApiResponseModelV2);
observable.onComplete();
}
});
}
@Override
public Observable<UserInfoModelV2> getCachedUserInfo() {
return null;
}
}

9
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserInfoModelV2.java

@ -0,0 +1,9 @@
package com.gmeremit.online.gmeremittance_native.homeV2.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class UserInfoModelV2 {
}

53
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserInfoV2DataApiResponse.java

@ -0,0 +1,53 @@
package com.gmeremit.online.gmeremittance_native.homeV2.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class UserInfoV2DataApiResponse {
@SerializedName("ErrorCode")
@Expose
private String errorCode;
@SerializedName("Msg")
@Expose
private String msg;
@SerializedName("Id")
@Expose
private String id;
@SerializedName("Data")
@Expose
private UserInfoModelV2 data;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public UserInfoModelV2 getData() {
return data;
}
public void setData(UserInfoModelV2 data) {
this.data = data;
}
}

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

@ -2,8 +2,11 @@ package com.gmeremit.online.gmeremittance_native.homeV2.presenter;
import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2;
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoV2DataApiResponse;
import com.gmeremit.online.gmeremittance_native.kycV2.model.KYCRegistrationDataResponse;
import com.gmeremit.online.gmeremittance_native.kycV2.model.KYCRelatedDataResponse;
import com.gmeremit.online.gmeremittance_native.loginV2.model.LoginModelV2;
import java.io.File;
@ -15,5 +18,10 @@ public interface HomeV2InteractorInterface extends BaseInteractorInterface {
interface HomeV2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<UserInfoV2DataApiResponse> getUserRelatedData(String auth);
Observable<UserInfoModelV2> saveUserInfo(UserInfoModelV2 userRelatedData);
Observable<UserInfoModelV2> getCachedUserInfo();
}
}

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

@ -2,20 +2,81 @@ package com.gmeremit.online.gmeremittance_native.homeV2.presenter;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.homeV2.gateway.HomeV2Gateway;
import com.gmeremit.online.gmeremittance_native.homeV2.model.UserInfoModelV2;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInterface,HomeV2InteractorInterface {
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInterface, HomeV2InteractorInterface {
private final HomeV2ContractInterface view;
private final HomeV2GatewayInterface gateway;
private final CompositeDisposable compositeDisposable;
public HomeV2Presenter(HomeV2PresenterInterface.HomeV2ContractInterface view) {
this.view=view;
this.gateway= new HomeV2Gateway();
this.view = view;
this.gateway = new HomeV2Gateway(this);
this.compositeDisposable = new CompositeDisposable();
}
/**
* Try to fetch real data, otherwise show stale data to user if cannot be fetched.
*/
@Override
public void getRequiredData() {
compositeDisposable.add(
Observable.concat(getDataFromServerAndCacheIt().timeout(5, TimeUnit.SECONDS).onErrorResumeNext((Function<Throwable, ObservableSource<? extends UserInfoModelV2>>) Observable::error).subscribeOn(Schedulers.io()),
this.gateway.getCachedUserInfo().subscribeOn(Schedulers.io()))
.observeOn(AndroidSchedulers.mainThread())
.take(1)
.subscribeWith(new UserInfoObserver()));
}
private Observable<UserInfoModelV2> getDataFromServerAndCacheIt() {
return this.gateway.getUserRelatedData(this.gateway.getAuth()).flatMap(userInfoV2DataApiResponse -> {
if (userInfoV2DataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2))
return Observable.just(userInfoV2DataApiResponse.getData());
else
return Observable.error(new Throwable(userInfoV2DataApiResponse.getMsg()));
});
}
public class UserInfoObserver extends GenericApiObserverResponse<UserInfoModelV2> {
@Override
protected void onSuccess(UserInfoModelV2 userInfoModelV2) {
// String fullName = "";
// if ((userInfoModelV2.getMiddleName() != null && userInfoModelV2.getMiddleName().length() > 0))
// fullName = userInfoModelV2.getFirstName() + " " + userInfoModelV2.getMiddleName() + " " + userInfoModelV2.getLastName();
// else
// fullName = userInfoModelV2.getFirstName() + " " + userInfoModelV2.getLastName();
// view.showInfoInDrawer(fullName, userInfoModelV2.getEmail(), userInfoModelV2.getAvailableBalance(), userInfoModelV2.getWalletNumber(), userInfoModelV2.getPrimaryBankName(), userInfoModelV2.getMobileNumber());
// }
}
@Override
public void onFailed(String message) {
}
@Override
protected void onConnectionNotEstablished(String message) {
}
}
}

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2PresenterInterface.java

@ -12,5 +12,7 @@ public interface HomeV2PresenterInterface extends BasePresenterInterface {
interface HomeV2ContractInterface extends BaseContractInterface
{
void showInfoInDrawer(String fullname, String email, String balance, String walletNumber, String bankName, String contact);
}
}

71
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/model/LoginModelV2.java

@ -7,94 +7,97 @@ public class LoginModelV2 {
@SerializedName("userId")
@Expose
private String userId;
protected String userId;
@SerializedName("firstName")
@Expose
private String firstName;
protected String firstName;
@SerializedName("middleName")
@Expose
private String middleName;
protected String middleName;
@SerializedName("lastName")
@Expose
private String lastName;
protected String lastName;
@SerializedName("nickName")
@Expose
private String nickName;
protected String nickName;
@SerializedName("email")
@Expose
private String email;
protected String email;
@SerializedName("mobileNumber")
@Expose
private String mobileNumber;
protected String mobileNumber;
@SerializedName("rewardPoint")
@Expose
private String rewardPoint;
protected String rewardPoint;
@SerializedName("walletNumber")
@Expose
private String walletNumber;
protected String walletNumber;
@SerializedName("availableBalance")
@Expose
private String availableBalance;
protected String availableBalance;
@SerializedName("primaryBankName")
@Expose
private String primaryBankName;
protected String primaryBankName;
@SerializedName("accessCode")
@Expose
private String accessCode;
protected String accessCode;
@SerializedName("dpUrl")
@Expose
private String dpUrl;
protected String dpUrl;
@SerializedName("kyc")
@Expose
private Boolean kyc;
protected Boolean kyc;
@SerializedName("verified")
@Expose
private Boolean verified;
protected Boolean verified;
@SerializedName("active")
@Expose
private Boolean active;
protected Boolean active;
@SerializedName("cmRegistrationId")
@Expose
private String cmRegistrationId;
protected String cmRegistrationId;
@SerializedName("isReferred")
@Expose
private Boolean isReferred;
protected Boolean isReferred;
@SerializedName("country")
@Expose
private String country;
protected String country;
@SerializedName("province")
@Expose
private String province;
protected String province;
@SerializedName("provinceId")
@Expose
private String provinceId;
protected String provinceId;
@SerializedName("sourceId")
@Expose
private String sourceId;
protected String sourceId;
@SerializedName("idType")
@Expose
private String idType;
protected String idType;
@SerializedName("idNumber")
@Expose
private String idNumber;
protected String idNumber;
@SerializedName("countryCode")
@Expose
private String countryCode;
protected String countryCode;
@SerializedName("ErrorCode")
@Expose
private String errorCode;
protected String errorCode;
@SerializedName("Msg")
@Expose
private String msg;
protected String msg;
@SerializedName("Id")
@Expose
private String id;
protected String id;
@SerializedName("senderId")
@Expose
private String senderId;
protected String senderId;
@SerializedName("yearlyLimit")
@Expose
protected String yearlyLimit;
@SerializedName("Data")
@Expose
private Object data;
protected Object data;
public String getUserId() {
return userId;
@ -335,4 +338,12 @@ public class LoginModelV2 {
public void setData(Object data) {
this.data = data;
}
public String getYearlyLimit() {
return yearlyLimit;
}
public void setYearlyLimit(String yearlyLimit) {
this.yearlyLimit = yearlyLimit;
}
}

1
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java

@ -139,5 +139,6 @@ public class API_URL {
public static final String KYC_RELATED_DATA_V2 = "mobile/loadform/kyc";
public static final String UPLOAD_KYC_V2 = "mobile/RegisterKyc";
public static final String GET_TRANSACTION_HISTORY_V2 = "mobile/tranhistory/{userId}";
public static final String GET_USER_INFO_V2 = "/users/{userId}";
}

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java

@ -621,4 +621,7 @@ public interface ApiEndpoints {
Observable<TransactionHistoryAPIResponse> getTransactionHistoryV2(@Header("Authorization") String token, @Path("userId") String userId, @Body() JsonObject jsonObject);
@GET(API_URL.USER_PROFILE + "/{userId}")
@Headers("Content-Type: application/json")
Call<UserProfile> getUserRelatedInfo(@Path("userId") String userId);
}
Loading…
Cancel
Save