Browse Source

Auto refund page completed

master
Preyea Regmi 6 years ago
parent
commit
0fb4f9b795
  1. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/gateway/HomeV2Gateway.java
  2. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/UserInfoModelV2.java
  3. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2Presenter.java
  4. 1
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2PresenterInterface.java
  5. 28
      app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java
  6. 25
      app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/view/ProfileActivity.java
  7. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  8. 13
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
  9. 37
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java
  10. 42
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundOperationResponse.java
  11. 53
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataModel.java
  12. 41
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java
  13. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java
  14. 93
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java
  15. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2PresenterInterface.java
  16. 90
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/view/WithdrawV2Activity.java
  17. 2
      app/src/main/res/layout/activity_profile.xml
  18. 4
      app/src/main/res/layout/activity_withdraw_v2.xml
  19. 1
      app/src/main/res/layout/nav_drawer_fragment.xml

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

@ -12,8 +12,6 @@ import com.gmeremit.online.gmeremittance_native.homeV2.presenter.HomeV2Interacto
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.google.gson.JsonObject;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
public class HomeV2Gateway extends PrivilegedGateway implements HomeV2InteractorInterface.HomeV2GatewayInterface {
@ -72,13 +70,13 @@ public class HomeV2Gateway extends PrivilegedGateway implements HomeV2Interactor
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_KYC_VERIFIED, loginApiResponseModelV2.getVerified());
sharedPreferenceEditor.putBoolean(PrefKeys.USER_KYC_VERIFIED, loginApiResponseModelV2.isVerified());
sharedPreferenceEditor.putString(PrefKeys.USER_WALLET_NUMBER, loginApiResponseModelV2.getWalletNumber());
sharedPreferenceEditor.putString(PrefKeys.USER_YEARLY_REMAINING_LIMIT, loginApiResponseModelV2.getYearlyLimit());
sharedPreferenceEditor.putString(PrefKeys.USER_DOB, loginApiResponseModelV2.getUserDob());
sharedPreferenceEditor.commit();
userStateCache = new UserCachedState(loginApiResponseModelV2.getKyc(), loginApiResponseModelV2.getVerified(), loginApiResponseModelV2.getEmail(), loginApiResponseModelV2.getUserDob());
userStateCache = new UserCachedState(loginApiResponseModelV2.getKyc(), loginApiResponseModelV2.isVerified(), loginApiResponseModelV2.getEmail(), loginApiResponseModelV2.getUserDob());
} catch (Exception e) {
if (!observable.isDisposed())
@ -177,7 +175,7 @@ public class HomeV2Gateway extends PrivilegedGateway implements HomeV2Interactor
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());
userStateCache = new UserCachedState(userInfoModelV2.getKyc(), userInfoModelV2.isVerified(), userInfoModelV2.getEmail(), userInfoModelV2.getUserDob());
return Observable.just(userInfoModelV2);

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

@ -215,7 +215,7 @@ public class UserInfoModelV2 {
this.kyc = kyc;
}
public Boolean getVerified() {
public Boolean isVerified() {
return verified;
}

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

@ -154,13 +154,13 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
boolean disableKYCViewClick = userInfoModelV2.getKyc() && !userInfoModelV2.getVerified();
boolean disableKYCViewClick = userInfoModelV2.getKyc() && !userInfoModelV2.isVerified();
boolean shouldShowKYCView = false;
if (!userInfoModelV2.getKyc()) {
shouldShowKYCView = true;
title = "Verify your Account";
message = "Kindly complete your registration process with us to start using GME services.";
} else if (!userInfoModelV2.getVerified()) {
} else if (!userInfoModelV2.isVerified()) {
shouldShowKYCView = true;
title = "Verification in Process";
@ -169,6 +169,8 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
if (homeFragmentRelatedSubject != null)
homeFragmentRelatedSubject.onNext(new HomeFragmentRelatedData(shouldShowKYCView, message, title, disableKYCViewClick, fullName, userInfoModelV2.getYearlyLimit(), userInfoModelV2.getRewardPoint()));
view.showWithdrawView(userInfoModelV2.isVerified());
}

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

@ -32,5 +32,6 @@ public interface HomeV2PresenterInterface extends BasePresenterInterface {
void performLogout();
void showWithdrawView(Boolean action);
}
}

28
app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java

@ -5,6 +5,7 @@ import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Color;
import android.os.Build;
import android.os.Handler;
import android.support.annotation.RequiresApi;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
@ -40,7 +41,6 @@ import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.view.Transa
import com.gmeremit.online.gmeremittance_native.user_profile.view.ProfileActivity;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.walletstatementV2.view.WalletStatementV2Activity;
import com.gmeremit.online.gmeremittance_native.withdraw.view.WithDrawActivity;
import com.gmeremit.online.gmeremittance_native.withdrawV2.view.WithdrawV2Activity;
import com.text.drawable.TextDrawable;
@ -167,7 +167,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
break;
case R.id.btn_withdraw:
showDrawer(false);
startActivity(new Intent(this, WithdrawV2Activity.class));
new Handler().postDelayed(this::openWithdrawScreen,200);
break;
case R.id.view_about_gme:
showDrawer(false);
@ -197,8 +197,6 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
}
}
private void showLogoutConfirmationDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
@ -294,6 +292,17 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
showFetaureComingSoon();
}
private void openWithdrawScreen() {
String unverifiedMessage = presenter.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(this, WithdrawV2Activity.class));
else
showPopUpMessage(unverifiedMessage, CustomAlertDialog.AlertType.ALERT, null);
}
@Override
public HomeV2PresenterInterface getPresenter() {
return presenter;
@ -352,6 +361,17 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
}
@Override
public void showWithdrawView(Boolean action) {
View withdrawView= nav_drawer.findViewById(R.id.btn_withdraw);
if(action)
withdrawView.setVisibility(View.VISIBLE);
else
withdrawView.setVisibility(View.INVISIBLE);
}
public void setWalletNo(TextView controlNo, String walletNumber, String bankName) {
if (walletNumber == null || walletNumber.length() <= 0) {
walletNumber = "N/A";

25
app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/view/ProfileActivity.java

@ -4,6 +4,7 @@ import android.Manifest;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
@ -28,7 +29,9 @@ import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.gmeremit.online.gmeremittance_native.GmeApplication;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.PrefKeys;
import com.gmeremit.online.gmeremittance_native.changepasswordV2.view.ChangePasswordV2Activity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView;
import com.gmeremit.online.gmeremittance_native.user_profile.UserProfileContract;
@ -40,6 +43,7 @@ import com.gmeremit.online.gmeremittance_native.utils.other.DisplayUtils;
import com.gmeremit.online.gmeremittance_native.utils.other.PersistenceStorageManager;
import com.gmeremit.online.gmeremittance_native.utils.other.Utility;
import com.gmeremit.online.gmeremittance_native.withdraw.view.WithDrawActivity;
import com.gmeremit.online.gmeremittance_native.withdrawV2.view.WithdrawV2Activity;
import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.NetworkPolicy;
import com.squareup.picasso.Picasso;
@ -78,10 +82,14 @@ public class ProfileActivity extends AppCompatActivity implements UserProfileCon
GmeTextView tvBalance;
@BindView(R.id.tv_wallet_number)
GmeTextView tvWalletNumber;
@BindView(R.id.tv_withdraw)
GmeTextView tv_withdraw;
Uri imageoutputUri;
String walletText = "GME Wallet No. ";
private ProgressDialog dialog;
private PersistenceStorageManager persistenceStorageManager;
private SharedPreferences myPreferences;
private UserProfileContract.UserProfilePresenter userProfilePresenter;
Bitmap bitmap;
@ -98,8 +106,12 @@ public class ProfileActivity extends AppCompatActivity implements UserProfileCon
persistenceStorageManager = new PersistenceStorageManager(this);
myPreferences=GmeApplication.getStorage();
userProfilePresenter = new UserProfilePresenter(this, new UserProfileModel(this));
userProfilePresenter.userProfile(persistenceStorageManager.getUserId());
userProfilePresenter.userProfile(myPreferences.getString(PrefKeys.USER_ID,""));
showWithdrawView(myPreferences.getBoolean(PrefKeys.USER_KYC_VERIFIED,false));
}
@OnClick({R.id.iv_back, R.id.iv_uploadImage, R.id.iv_edit_profile, R.id.iv_change_password, R.id.tv_withdraw})
@ -132,7 +144,7 @@ public class ProfileActivity extends AppCompatActivity implements UserProfileCon
startActivity(new Intent(ProfileActivity.this, ChangePasswordV2Activity.class));
break;
case R.id.tv_withdraw:
startActivity(new Intent(ProfileActivity.this, WithDrawActivity.class));
startActivity(new Intent(ProfileActivity.this, WithdrawV2Activity.class));
break;
}
}
@ -229,6 +241,15 @@ public class ProfileActivity extends AppCompatActivity implements UserProfileCon
}
}
public void showWithdrawView(Boolean action) {
if(action)
tv_withdraw.setVisibility(View.VISIBLE);
else
tv_withdraw.setVisibility(View.INVISIBLE);
}
private void startCropActivity(@NonNull Uri uri) {
File f = new File("" + uri);

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

@ -144,5 +144,8 @@ public class API_URL {
public static final String AMMENDMENT_TRANSACTION_V2 = "mobile/sendmoney/amendtransaction";
public static final String GET_WALLET_STATEMENTS_V2 = "mobile/walletstatement/{userId}";
public static final String CHANGE_PASSWORD_V2 = "mobile/ChangePassword";
public static final String GET_REFUND_RELATED_DATA = "mobile/refund/{username}";
public static final String PERFORM_REFUND = "mobile/refund/proceed";
}

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

@ -106,6 +106,8 @@ import com.gmeremit.online.gmeremittance_native.wallet_to_wallet.model.WalletRes
import com.gmeremit.online.gmeremittance_native.wallet_to_wallet.model.WalletUserInfo;
import com.gmeremit.online.gmeremittance_native.walletstatementV2.model.WalletStatementV2APIResponse;
import com.gmeremit.online.gmeremittance_native.withdraw.model.WithDraw;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse;
import com.google.gson.JsonObject;
import java.util.List;
@ -615,8 +617,7 @@ public interface ApiEndpoints {
@Part MultipartBody.Part profileImage,
@Part MultipartBody.Part idImageFront,
@Part MultipartBody.Part formImageBack,
@Part MultipartBody.Part passbookImage
);
@Part MultipartBody.Part passbookImage);
@POST(API_URL.GET_TRANSACTION_HISTORY_V2)
@ -646,4 +647,12 @@ public interface ApiEndpoints {
@POST(API_URL.CHANGE_PASSWORD_V2)
@Headers("Content-Type: application/json")
Observable<ChangePasswordActivityV2APIResponse> performChangePasswordV2(@Header("Authorization") String token, @Body() JsonObject jsonObject);
@GET(API_URL.GET_REFUND_RELATED_DATA)
@Headers("Content-Type: application/json")
Observable<RefundRelatedMetaDataResponse> getRefunRelatedData(@Header("Authorization") String token, @Path("username") String userName);
@POST(API_URL.PERFORM_REFUND)
@Headers("Content-Type: application/json")
Observable<RefundOperationResponse> performRefundOperation(@Header("Authorization") String token, @Body() JsonObject jsonObject);
}

37
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java

@ -4,6 +4,8 @@ import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway;
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.gmeremit.online.gmeremittance_native.walletstatementV2.model.WalletStatementV2APIResponse;
import com.gmeremit.online.gmeremittance_native.walletstatementV2.presenter.WalletStatementV2InteractorInterface;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.presenter.WithdrawV2InteractorInterface;
import com.google.gson.JsonObject;
@ -13,33 +15,20 @@ public class WithdrawV2Gateway extends PrivilegedGateway implements WithdrawV2In
private final WithdrawV2InteractorInterface interactor;
private String mockedString="{\n" +
" \"ErrorCode\": \"0\",\n" +
" \"Msg\": \"1 wallet txn\",\n" +
" \"Id\": null,\n" +
" \"Extra\": \"\",\n" +
" \"Extra2\": \"\",\n" +
" \"Data\": [\n" +
" {\n" +
" \"TransactionDate\": \"1900.01.01\",\n" +
" \"Particular\": \"Balance Brought Forward\",\n" +
" \"WalletIn\": \"₩0\",\n" +
" \"WalletOut\": \"₩100,000,000\",\n" +
" \"ClosingAmount\": \"-₩85,000\"\n" +
" },\n" +
" {\n" +
" \"TransactionDate\": \"1900.01.01\",\n" +
" \"Particular\": \"Balance Brought Backward\",\n" +
" \"WalletIn\": \"₩200,000,000\",\n" +
" \"WalletOut\": \"₩0\",\n" +
" \"ClosingAmount\": \"-₩100,000\"\n" +
" }\n" +
" ]\n" +
"}";
public WithdrawV2Gateway(WithdrawV2InteractorInterface interactor) {
this.interactor=interactor;
}
@Override
public Observable<RefundRelatedMetaDataResponse> getWithdrawRelatedData(String userId, String auth) {
return HttpClientV2.getInstance().getRefunRelatedData(auth,userId);
}
@Override
public Observable<RefundOperationResponse> performWithdrawMoney(String amount, String auth) {
JsonObject body=new JsonObject();
body.addProperty("Amounts",amount);
return HttpClientV2.getInstance().performRefundOperation(auth,body);
}
}

42
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundOperationResponse.java

@ -0,0 +1,42 @@
package com.gmeremit.online.gmeremittance_native.withdrawV2.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RefundOperationResponse {
@SerializedName("ErrorCode")
@Expose
private String errorCode;
@SerializedName("Msg")
@Expose
private String msg;
@SerializedName("Data")
@Expose
private Object 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 Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}

53
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataModel.java

@ -0,0 +1,53 @@
package com.gmeremit.online.gmeremittance_native.withdrawV2.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RefundRelatedMetaDataModel {
@SerializedName("Username")
@Expose
private String username;
@SerializedName("Amount")
@Expose
private String amount;
@SerializedName("ChargeAmount")
@Expose
private String chargeAmount;
@SerializedName("UserId")
@Expose
private String userId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getChargeAmount() {
return chargeAmount;
}
public void setChargeAmount(String chargeAmount) {
this.chargeAmount = chargeAmount;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}

41
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java

@ -0,0 +1,41 @@
package com.gmeremit.online.gmeremittance_native.withdrawV2.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RefundRelatedMetaDataResponse {
@SerializedName("ErrorCode")
@Expose
private String errorCode;
@SerializedName("Msg")
@Expose
private String msg;
@SerializedName("Data")
@Expose
private RefundRelatedMetaDataModel 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 RefundRelatedMetaDataModel getData() {
return data;
}
public void setData(RefundRelatedMetaDataModel data) {
this.data = data;
}
}

5
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java

@ -3,6 +3,8 @@ package com.gmeremit.online.gmeremittance_native.withdrawV2.presenter;
import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import com.gmeremit.online.gmeremittance_native.walletstatementV2.model.WalletStatementV2APIResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse;
import io.reactivex.Observable;
@ -11,5 +13,8 @@ public interface WithdrawV2InteractorInterface extends BaseInteractorInterface {
interface WithdrawV2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<RefundRelatedMetaDataResponse> getWithdrawRelatedData(String userId, String auth);
Observable<RefundOperationResponse> performWithdrawMoney(String amount, String auth);
}
}

93
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java

@ -1,23 +1,116 @@
package com.gmeremit.online.gmeremittance_native.withdrawV2.presenter;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.gateway.WithdrawV2Gateway;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
public class WithdrawV2Presenter extends BasePresenter implements WithdrawV2PresenterInterface,WithdrawV2InteractorInterface {
private final WithdrawV2ContractInterface view;
private final WithdrawV2GatewayInterface gateway;
private final CompositeDisposable compositeDisposables;
private String serviceCharge;
public WithdrawV2Presenter(WithdrawV2ContractInterface view) {
this.view=view;
this.gateway=new WithdrawV2Gateway(this);
compositeDisposables=new CompositeDisposable();
serviceCharge=null;
}
@Override
public void validateAndPerformAutoRefund(String amount) {
if(true)
{
compositeDisposables.add(
this.gateway.performWithdrawMoney(amount,this.gateway.getAuth())
.doOnSubscribe(action->view.showProgressBar(true,"Performing transaction..."))
.doFinally(()->view.showProgressBar(false,""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new WithdrawOperationDataObserver())
);}
else
{
view.showToastMessage("Amount cannot be minimum than "+serviceCharge);
}
}
@Override
public void getRequiredData() {
compositeDisposables.add(
this.gateway.getWithdrawRelatedData(this.gateway.getUserID(),this.gateway.getAuth())
.doOnSubscribe(action->view.showProgressBar(true,"Fetching user related data..."))
.doFinally(()->view.showProgressBar(false,""))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new WithdrawRelatedDataObserver())
);
}
class WithdrawRelatedDataObserver extends GenericApiObserverResponse<RefundRelatedMetaDataResponse>
{
@Override
protected void onSuccess(RefundRelatedMetaDataResponse refundRelatedMetaDataResponse) {
if(refundRelatedMetaDataResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2))
{
view.updateAvailableBalance(refundRelatedMetaDataResponse.getData().getAmount());
view.updateServiceCharge(refundRelatedMetaDataResponse.getData().getChargeAmount());
serviceCharge=refundRelatedMetaDataResponse.getData().getChargeAmount();
}
else
{
view.showPopUpMessage(refundRelatedMetaDataResponse.getMsg(),CustomAlertDialog.AlertType.FAILED,alertType -> view.exitView());
}
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message,CustomAlertDialog.AlertType.FAILED,alertType -> view.exitView());
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message,CustomAlertDialog.AlertType.NO_INTERNET,alertType -> view.exitView());
}
}
class WithdrawOperationDataObserver extends GenericApiObserverResponse<RefundOperationResponse>
{
@Override
protected void onSuccess(RefundOperationResponse refundOperationResponse) {
if(refundOperationResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2))
{
view.showPopUpMessage(refundOperationResponse.getMsg(),CustomAlertDialog.AlertType.SUCCESS,alertType -> view.exitView());
}
else
{
view.showPopUpMessage(refundOperationResponse.getMsg(),CustomAlertDialog.AlertType.FAILED,null);
}
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message,CustomAlertDialog.AlertType.FAILED,null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message,CustomAlertDialog.AlertType.NO_INTERNET,null);
}
}
}

5
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2PresenterInterface.java

@ -10,8 +10,13 @@ import java.util.List;
public interface WithdrawV2PresenterInterface extends BasePresenterInterface {
void getRequiredData();
void validateAndPerformAutoRefund(String amount);
interface WithdrawV2ContractInterface extends BaseContractInterface {
void updateAvailableBalance(String availableBalance);
void updateServiceCharge(String serviceCharge);
}
}

90
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/view/WithdrawV2Activity.java

@ -2,15 +2,103 @@ package com.gmeremit.online.gmeremittance_native.withdrawV2.view;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientadd.RecipientAddV2Presenter;
import com.gmeremit.online.gmeremittance_native.withdrawV2.presenter.WithdrawV2Presenter;
import com.gmeremit.online.gmeremittance_native.withdrawV2.presenter.WithdrawV2PresenterInterface;
public class WithdrawV2Activity extends BaseActivity {
import butterknife.BindView;
import butterknife.ButterKnife;
public class WithdrawV2Activity extends BaseActivity implements View.OnClickListener, WithdrawV2PresenterInterface.WithdrawV2ContractInterface {
@BindView(R.id.iv_back)
View iv_back;
@BindView(R.id.iv_cancel)
View iv_cancel;
@BindView(R.id.toolbar_title)
GmeTextView toolbarTitle;
@BindView(R.id.withdrawAvailableTxt)
GmeTextView withdrawAvailableTxt;
@BindView(R.id.withdrawBankChargeTxt)
GmeTextView withdrawBankChargeTxt;
@BindView(R.id.withdrawAmountEdTxt)
GmeTextView withdrawAmountEdTxt;
@BindView(R.id.refundButton)
Button refundButton;
private WithdrawV2PresenterInterface presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_withdraw_v2);
ButterKnife.bind(this);
init();
performDefaultAction(savedInstanceState);
}
private void init() {
presenter=new WithdrawV2Presenter(this);
iv_cancel.setVisibility(View.INVISIBLE);
}
private void performDefaultAction(Bundle savedInstanceState) {
toolbarTitle.setText("Auto Refund");
presenter.getRequiredData();
}
@Override
protected void onStart() {
super.onStart();
iv_back.setOnClickListener(this);
refundButton.setOnClickListener(this);
}
@Override
protected void onStop() {
super.onStop();
iv_back.setOnClickListener(null);
refundButton.setOnClickListener(null);
}
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.iv_back:
onBackPressed();
break;
case R.id.refundButton:
presenter.validateAndPerformAutoRefund(withdrawAmountEdTxt.getText().toString());
break;
}
}
@Override
public void updateAvailableBalance(String availableBalance) {
withdrawAvailableTxt.setText(availableBalance);
}
@Override
public void updateServiceCharge(String serviceCharge) {
withdrawBankChargeTxt.setText(serviceCharge);
}
}

2
app/src/main/res/layout/activity_profile.xml

@ -59,7 +59,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/profile_image"
tools:text="Kapil Maharjan"
android:layout_centerHorizontal="true"
android:textSize="18sp"
app:txtfontName="@string/semibold"
@ -70,7 +69,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_user_name"
tools:text="+977 9812312312"
android:layout_centerHorizontal="true"
android:textSize="14sp"
android:padding="4dp"

4
app/src/main/res/layout/activity_withdraw_v2.xml

@ -118,7 +118,7 @@
android:textSize="16sp" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeEditText
android:id="@+id/sendAmountEdTxt"
android:id="@+id/withdrawAmountEdTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@android:color/transparent"
@ -181,7 +181,7 @@
android:layout_marginEnd="8dp"
android:layout_marginBottom="50dp"
android:background="@drawable/ic_rounded_background_coloured"
android:text="Calculate"
android:text="Refund"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="18sp"

1
app/src/main/res/layout/nav_drawer_fragment.xml

@ -126,6 +126,7 @@
android:text="KRW" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:visibility="invisible"
android:id="@+id/btn_withdraw"
android:layout_width="wrap_content"
android:layout_height="match_parent"

Loading…
Cancel
Save