Browse Source

HomePresenter converted to HomeViewModel

new_design
gary 4 years ago
parent
commit
bba8d68055
  1. 1
      app/src/main/java/com/swifttech/remit/android/base/PrivilegedGateway.java
  2. 266
      app/src/main/java/com/swifttech/remit/android/features/home/HomeViewModel.java
  3. 30
      app/src/main/java/com/swifttech/remit/android/features/home/HomeViewModelFactory.java
  4. 5
      app/src/main/java/com/swifttech/remit/android/features/home/presenter/HomeV2Presenter.java
  5. 10
      app/src/main/java/com/swifttech/remit/android/features/home/presenter/HomeV2PresenterInterface.java
  6. 44
      app/src/main/java/com/swifttech/remit/android/features/home/view/HomeActivityV2.java
  7. 12
      app/src/main/java/com/swifttech/remit/android/features/home/view/HomeFragmentV2.java
  8. 5
      app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/KYCV3ViewModelFactory.java
  9. 1
      app/src/main/res/layout/activity_splash_screen_key_0.xml
  10. 1
      app/src/main/res/layout/activity_splash_screen_key_1.xml
  11. 19
      app/src/main/res/values/styles.xml

1
app/src/main/java/com/swifttech/remit/android/base/PrivilegedGateway.java

@ -194,6 +194,7 @@ public abstract class PrivilegedGateway extends BaseGateway implements Privilege
sharedPreferenceEditor.putString(PrefKeys.USER_REWAD_POINT, loginApiResponseModelV2.getRewardPoint());
sharedPreferenceEditor.commit();
if (privilegedGatewayDataObserverManager != null)
privilegedGatewayDataObserverManager.broadcastUserRelatedDataUpdateEvent();
}

266
app/src/main/java/com/swifttech/remit/android/features/home/HomeViewModel.java

@ -0,0 +1,266 @@
package com.swifttech.remit.android.features.home;
import android.util.Log;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.google.firebase.iid.FirebaseInstanceId;
import com.swifttech.remit.android.BuildConfig;
import com.swifttech.remit.android.R;
import com.swifttech.remit.android.RemitApplication;
import com.swifttech.remit.android.base.BaseViewModel;
import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog;
import com.swifttech.remit.android.features.home.model.AppUpdateModel;
import com.swifttech.remit.android.features.home.model.HomeNotificationViewDTO;
import com.swifttech.remit.android.features.home.model.HomeViewRelatedDTOV2;
import com.swifttech.remit.android.features.home.model.UserInfoModelV2;
import com.swifttech.remit.android.features.home.presenter.HomeNotificationHandler;
import com.swifttech.remit.android.features.home.presenter.HomeV2InteractorInterface;
import com.swifttech.remit.android.features.home.presenter.HomeV2PresenterInterface;
import com.swifttech.remit.android.utils.Constants;
import com.swifttech.remit.android.utils.https.HTTPConstants;
import com.swifttech.remit.android.utils.https.SessionExpiredException;
import com.swifttech.remit.android.utils.https.UserSessionObserverResponse;
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;
import retrofit2.HttpException;
public class HomeViewModel extends BaseViewModel implements HomeV2PresenterInterface {
private final HomeV2ContractInterface view;
private final HomeV2InteractorInterface.HomeV2GatewayInterface gateway;
private final boolean shouldCheckFingerprintPrompt;
private final CompositeDisposable compositeDisposable;
private boolean shouldNotPromptAppUpdate;
public HomeViewModel(HomeV2ContractInterface view,
HomeV2InteractorInterface.HomeV2GatewayInterface gateway,
boolean shouldCheckFingerprintPrompt) {
this.view = view;
this.gateway = gateway;
this.compositeDisposable = new CompositeDisposable();
this.shouldNotPromptAppUpdate = false;
this.shouldCheckFingerprintPrompt = shouldCheckFingerprintPrompt;
homeRelatedMutableLiveData = new MutableLiveData<>();
}
private MutableLiveData<HomeViewRelatedDTOV2> homeRelatedMutableLiveData;
@Override
public void getRequiredData() {
compositeDisposable.add(
Observable.concat(getDataFromServerAndSaveIt().timeout(25, TimeUnit.SECONDS).onErrorResumeNext(new Function<Throwable, ObservableSource<? extends UserInfoModelV2>>() {
@Override
public ObservableSource<? extends UserInfoModelV2> apply(Throwable throwable) throws Exception {
if (throwable instanceof SessionExpiredException)
return Observable.error(throwable);
else if (throwable instanceof HttpException && ((HttpException) throwable).code() == 401)
return Observable.error(new SessionExpiredException(HTTPConstants.getErrorMessageFromCode(((HttpException) throwable).code())));
else
return Observable.empty();
}
}),
this.gateway.getCachedUserInfoFromDB())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.take(1)
.subscribeWith(new UserInfoObserver()));
}
@Override
public void getRequiredCachedData() {
compositeDisposable.add(
this.gateway.getCachedUserInfoFromDB()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new UserInfoObserver())
);
}
@Override
public void clearAllData() {
this.gateway.clearAllUserData();
}
@Override
public String checkIfUserVerified() {
String resultMessage = null;
String pennyTestStatus = gateway.getPennyTestStatus();
if (!gateway.hasUserSubmittedKYC())
resultMessage = getStringfromStringId(R.string.complete_your_registration_text);
else if (pennyTestStatus != null && pennyTestStatus.length() > 0 && !pennyTestStatus.equalsIgnoreCase("2"))
resultMessage = getStringfromStringId(R.string.complete_penny_test);
else if (!gateway.isUserKYCVerified())
resultMessage = getStringfromStringId(R.string.verification_in_aproval_process_text);
return resultMessage;
}
@Override
public void storeAppUpdateDecision(boolean booleanExtra) {
this.shouldNotPromptAppUpdate = booleanExtra;
}
@Override
public boolean shouldNotPromptAppUpdate() {
return this.shouldNotPromptAppUpdate;
}
@Override
public void checkIfFingerprintPromptShouldBeShown() {
//TODO disable fingerprint
// if (shouldCheckFingerprintPrompt) {
// if (!gateway.hasPromptedUserForFingerprintFirstTime() && SecurityUtils.checkFingerPrintUsablity(view.getContext()) && !gateway.isFingerPrintAuthEnabled() && gateway.getPersistedUserId() != null && gateway.getPersistedUserPwd() != null)
// view.showFingerprintAvailablityToUser();
//
// }
}
@Override
public LiveData<HomeViewRelatedDTOV2> subscribeToHomeRelatedDataEvent() {
return homeRelatedMutableLiveData;
}
@Override
public HomeNotificationViewDTO constructKYCVerificationRequiredViewNotification() {
return HomeNotificationHandler.generateNotificationFromType(RemitApplication.getStringExtractor(), HomeNotificationHandler.HomeNoticeViewTypeEnum.KYC_NOT_VERIFIED);
}
@Override
public void onViewReady() {
}
@Override
public void onViewNotReady() {
}
@Override
public void onViewDestroyed() {
super.onViewDestroyed();
if (compositeDisposable != null && !compositeDisposable.isDisposed())
compositeDisposable.dispose();
}
private Observable<UserInfoModelV2> getDataFromServerAndSaveIt() {
String fcmID;
try {
fcmID = FirebaseInstanceId.getInstance().getToken();
} catch (Exception e) {
fcmID = null;
}
if (fcmID == null || fcmID.length() < 1)
fcmID = this.gateway.getLastKnownFcmId();
RemitApplication.AppRelatedMetaData appRelatedMetaData = RemitApplication.getAppRelatedMetaData(view.getContext());
return this.gateway.getUserRelatedData(this.gateway.getAuth(),
this.gateway.getUserID(),
fcmID,
appRelatedMetaData.getAppVersion(),
appRelatedMetaData.getPhoneBrand(),
appRelatedMetaData.getOsName(),
appRelatedMetaData.getDeviceId(),
appRelatedMetaData.getOsVersion()
).flatMap(userInfoV2DataApiResponse -> {
if (userInfoV2DataApiResponse.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
return this.gateway.saveUserInfo(userInfoV2DataApiResponse.getData());
} else
return Observable.error(new SessionExpiredException(userInfoV2DataApiResponse.getMsg()));
});
}
public class UserInfoObserver extends UserSessionObserverResponse<UserInfoModelV2> {
@Override
protected void onSuccess(UserInfoModelV2 userInfoModelV2) {
String fullName = userInfoModelV2.getFirstName();
view.showInfoInDrawer(fullName, userInfoModelV2.getCustomerEmail(), userInfoModelV2.getYearlyLimit(), userInfoModelV2.getWalletNumber(), userInfoModelV2.getPrimaryBankName(), userInfoModelV2.getMobileNumber());
boolean shouldShowTermsAndCondition = "0".equalsIgnoreCase(userInfoModelV2.getAgreeYn());
HomeNotificationViewDTO notificationViewDTO = new HomeNotificationHandler(
RemitApplication.getStringExtractor(),
userInfoModelV2.getKyc(),
userInfoModelV2.isVerified(),
userInfoModelV2.getPennyTestStatus(),
userInfoModelV2.getRedirectTo(),
shouldShowTermsAndCondition)
.generateAppropriateHomeNotificationViewDTO();
homeRelatedMutableLiveData.setValue(
new HomeViewRelatedDTOV2(
fullName,
userInfoModelV2.getAvailableBalance(),
userInfoModelV2.getYearlyLimit(),
userInfoModelV2.getRewardPoint(),
userInfoModelV2.getPrimaryBankName(),
userInfoModelV2.getWalletNumber(),
notificationViewDTO,
shouldShowTermsAndCondition
));
//If no notification is generated then we can show privileged Operation View
view.showPrivilegedOperationView(notificationViewDTO == null || notificationViewDTO.shouldShowPrivilegedView());
AppUpdateModel androidAppUpdateModel = null;
if (userInfoModelV2.getAppUpdate() != null)
for (AppUpdateModel model : userInfoModelV2.getAppUpdate()) {
if (model.getOS().equalsIgnoreCase("ANDROID"))
androidAppUpdateModel = model;
}
// checkIfUpdateIsRequired(androidAppUpdateModel);
}
@Override
public void onFailed(String message) {
Log.d("DashBoardError", "Recieved Error : " + message);
}
@Override
protected void onConnectionNotEstablished(String message) {
Log.d("DashBoardError", "Recieved Error : " + message);
}
@Override
protected void onSessionExpired(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> {
view.performLogout();
});
}
}
private void checkIfUpdateIsRequired(AppUpdateModel androidAppUpdateModel) {
if (androidAppUpdateModel == null)
return;
try {
int playStoreBuildNumber = Integer.parseInt(androidAppUpdateModel.getBuild());
if (playStoreBuildNumber > BuildConfig.VERSION_CODE) {
if (androidAppUpdateModel.getInfo() != null && androidAppUpdateModel.getInfo().length() < 1)
androidAppUpdateModel.setInfo(null);
boolean isForceUpdate = androidAppUpdateModel.getCritical().equalsIgnoreCase("Y");
if (isForceUpdate)
view.showUpdateScreen(androidAppUpdateModel.getBuild(), androidAppUpdateModel.getInfo(), true);
}
} catch (Exception e) {
return;
}
}
}

30
app/src/main/java/com/swifttech/remit/android/features/home/HomeViewModelFactory.java

@ -0,0 +1,30 @@
package com.swifttech.remit.android.features.home;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.swifttech.remit.android.features.home.presenter.HomeV2InteractorInterface;
import com.swifttech.remit.android.features.home.presenter.HomeV2PresenterInterface;
public class HomeViewModelFactory implements ViewModelProvider.Factory {
private final HomeV2PresenterInterface.HomeV2ContractInterface view;
private final HomeV2InteractorInterface.HomeV2GatewayInterface gateway;
private final boolean shouldCheckFingerprintPrompt;
public HomeViewModelFactory(
HomeV2PresenterInterface.HomeV2ContractInterface view,
HomeV2InteractorInterface.HomeV2GatewayInterface gateway,
boolean shouldCheckFingerprintPrompt) {
this.view = view;
this.gateway=gateway;
this.shouldCheckFingerprintPrompt=shouldCheckFingerprintPrompt;
}
@SuppressWarnings("unchecked")
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
return (T) new HomeViewModel(view,gateway,shouldCheckFingerprintPrompt);
}
}

5
app/src/main/java/com/swifttech/remit/android/features/home/presenter/HomeV2Presenter.java

@ -42,7 +42,8 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
private MutableLiveData<HomeViewRelatedDTOV2> homeRelatedMutableLiveData;
public HomeV2Presenter(HomeV2ContractInterface view,
HomeV2GatewayInterface gateway, boolean checkFingerprintPromptScreen) {
HomeV2GatewayInterface gateway,
boolean checkFingerprintPromptScreen) {
this.view = view;
this.gateway = gateway;
this.compositeDisposable = new CompositeDisposable();
@ -169,6 +170,8 @@ public class HomeV2Presenter extends BasePresenter implements HomeV2PresenterInt
@Override
public void onUserRelatedDataUpdated() {
getRequiredCachedData();
//Todo keep this feature in ViewModel too
}
@Override

10
app/src/main/java/com/swifttech/remit/android/features/home/presenter/HomeV2PresenterInterface.java

@ -19,13 +19,8 @@ public interface HomeV2PresenterInterface extends BasePresenterInterface {
void clearAllData();
String checkIfUserVerified();
void storeAppUpdateDecision(boolean booleanExtra);
boolean shouldNotPromptAppUpdate();
@ -33,11 +28,6 @@ public interface HomeV2PresenterInterface extends BasePresenterInterface {
void checkIfFingerprintPromptShouldBeShown();
LiveData<HomeViewRelatedDTOV2> subscribeToHomeRelatedDataEvent();

44
app/src/main/java/com/swifttech/remit/android/features/home/view/HomeActivityV2.java

@ -23,6 +23,7 @@ import androidx.core.content.ContextCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.navigation.NavigationView;
@ -30,15 +31,15 @@ import com.swifttech.remit.android.R;
import com.swifttech.remit.android.base.BaseActivity;
import com.swifttech.remit.android.common.customwidgets.CustomAlertDialog;
import com.swifttech.remit.android.features.aboutscreen.view.AboutFastRemit;
import com.swifttech.remit.android.features.agentslisting.view.AgentListV2Activity;
import com.swifttech.remit.android.features.appupdate.AppUpdateActivity;
import com.swifttech.remit.android.features.cashpickuptowallet.view.CashPickupToWalletActivity;
import com.swifttech.remit.android.features.customersupport.view.CustomerSupportFragment;
import com.swifttech.remit.android.features.exrate.view.ExchangeRateActivity;
import com.swifttech.remit.android.features.home.HomeParentViewContractV2;
import com.swifttech.remit.android.features.home.HomeViewModel;
import com.swifttech.remit.android.features.home.HomeViewModelFactory;
import com.swifttech.remit.android.features.home.gateway.HomeV2Gateway;
import com.swifttech.remit.android.features.home.presenter.HomeV2Presenter;
import com.swifttech.remit.android.features.home.presenter.HomeV2PresenterInterface;
import com.swifttech.remit.android.features.home.view.notifications.DimBackgroundView;
import com.swifttech.remit.android.features.recipientmanagement.view.recipientlistingV3.RecipientListingV3Activity;
@ -89,7 +90,8 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
private Fragment currentFragment;
private FragmentManager manager;
private HomeV2PresenterInterface presenter;
// private HomeV2PresenterInterface presenter;
private HomeViewModel viewModel;
private static int WITHDRAW_AMOUNT_REQUEST_CODE = 24943;
private static int SEND_MONEY_REQUEST_CODE = 24944;
public static final String PROMPT_FINGERPRINT_BUNDLE_FLAG = "bundleKeyPromptFlag";
@ -108,14 +110,18 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
private void initialize() {
manager = getSupportFragmentManager();
presenter = new HomeV2Presenter(this,new HomeV2Gateway(), getIntent().getBooleanExtra(PROMPT_FINGERPRINT_BUNDLE_FLAG, false));
HomeViewModelFactory homeViewModelFactory = new HomeViewModelFactory(this, new HomeV2Gateway(), getIntent().getBooleanExtra(PROMPT_FINGERPRINT_BUNDLE_FLAG, false));
viewModel = new ViewModelProvider(this, homeViewModelFactory).get(HomeViewModel.class);
/* presenter = new HomeV2Presenter(this,
new HomeV2Gateway(),
getIntent().getBooleanExtra(PROMPT_FINGERPRINT_BUNDLE_FLAG, false));*/
}
private void performDefaultAction(Bundle savedInstanceState) {
if (savedInstanceState == null) {
loadHomeAsCurrentView();
presenter.checkIfFingerprintPromptShouldBeShown();
viewModel.checkIfFingerprintPromptShouldBeShown();
}
}
@ -188,7 +194,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
protected void onResume() {
super.onResume();
presenter.getRequiredData();
viewModel.getRequiredData();
}
@OnClick({R.id.iv_help, R.id.iv_nav, R.id.btn_withdraw, R.id.view_about_gme, R.id.view_setting, R.id.view_logout, R.id.iv_close, R.id.iv_notification})
@ -218,10 +224,6 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
showDrawer(false);
break;
}
}
@ -286,7 +288,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
public void showSendMoneyView() {
if (isNotificaitonViewActive())
return;
String unverifiedMessage = presenter.checkIfUserVerified();
String unverifiedMessage = viewModel.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(getApplicationContext(), RecipientListingV3Activity.class));
else
@ -307,7 +309,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
public void showWalletStatment() {
if (isNotificaitonViewActive())
return;
String unverifiedMessage = presenter.checkIfUserVerified();
String unverifiedMessage = viewModel.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(getApplicationContext(), WalletStatementV2Activity.class));
else
@ -319,7 +321,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
public void showTransactionHistoryView() {
if (isNotificaitonViewActive())
return;
String unverifiedMessage = presenter.checkIfUserVerified();
String unverifiedMessage = viewModel.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(getApplicationContext(), RemitTransactionHistoryActivity.class));
else
@ -335,7 +337,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
public HomeV2PresenterInterface getPresenter() {
return presenter;
return viewModel;
}
@ -372,7 +374,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
public void showBankDeposit() {
if (isNotificaitonViewActive())
return;
String unverifiedMessage = presenter.checkIfUserVerified();
String unverifiedMessage = viewModel.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(getApplicationContext(), WithdrawActivity.class));
else
@ -383,7 +385,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
public void showCashPickupRedeem() {
if (isNotificaitonViewActive())
return;
String unverifiedMessage = presenter.checkIfUserVerified();
String unverifiedMessage = viewModel.checkIfUserVerified();
if (unverifiedMessage == null)
startActivity(new Intent(getApplicationContext(), CashPickupToWalletActivity.class));
else
@ -429,14 +431,14 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
public void showKYCVerifiedIfRequired(boolean shouldShowView, String message, String title, boolean disableKYCViewClick) {
if (currentFragment instanceof HomeFragmentV2)
((HomeFragmentV2) currentFragment).showNotificationView(presenter.constructKYCVerificationRequiredViewNotification());
((HomeFragmentV2) currentFragment).showNotificationView(viewModel.constructKYCVerificationRequiredViewNotification());
}
@Override
public void showUpdateScreen(String build, String info, boolean isForceUpdate) {
if (!this.presenter.shouldNotPromptAppUpdate()) {
if (!this.viewModel.shouldNotPromptAppUpdate()) {
new Handler().postDelayed(() -> {
Intent intent = new Intent(HomeActivityV2.this, AppUpdateActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
@ -465,7 +467,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
public void performLogout() {
presenter.clearAllData();
viewModel.clearAllData();
logout();
}
@ -491,7 +493,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == APP_UPDATE_REQUEST && resultCode == RESULT_OK) {
this.presenter.storeAppUpdateDecision(data.getBooleanExtra(AppUpdateActivity.APP_UPDATE_NOT_NOW_TEMPORARY, false));
this.viewModel.storeAppUpdateDecision(data.getBooleanExtra(AppUpdateActivity.APP_UPDATE_NOT_NOW_TEMPORARY, false));
}
@ -500,7 +502,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra
@Override
protected void onDestroy() {
super.onDestroy();
presenter.onViewDestroyed();
viewModel.onViewDestroyed();
}

12
app/src/main/java/com/swifttech/remit/android/features/home/view/HomeFragmentV2.java

@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@ -26,6 +27,7 @@ import com.swifttech.remit.android.base.BaseFragment;
import com.swifttech.remit.android.common.customwidgets.LockableScrollView;
import com.swifttech.remit.android.common.customwidgets.WaveProgressBarView;
import com.swifttech.remit.android.features.home.HomeParentViewContractV2;
import com.swifttech.remit.android.features.home.HomeViewModel;
import com.swifttech.remit.android.features.home.adapters.HomeMenuRvAdapterV2;
import com.swifttech.remit.android.features.home.model.HomeNotificationViewDTO;
import com.swifttech.remit.android.features.home.model.MenuItem;
@ -34,6 +36,7 @@ import com.swifttech.remit.android.features.home.view.notifications.KYCNotSubmit
import com.swifttech.remit.android.features.home.view.notifications.KYCNotVerifiedNotificationView;
import com.swifttech.remit.android.features.home.view.notifications.NotificaitonBaseView;
import com.swifttech.remit.android.features.kyc.existingCustomer.view.ExistingKYCV3Activity;
import com.swifttech.remit.android.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.swifttech.remit.android.features.kyc.newCustomer.view.KYCV3Activity;
import java.util.ArrayList;
@ -94,6 +97,7 @@ public class HomeFragmentV2 extends BaseFragment implements
HomeMenuRvAdapterV2 homeMenuRvAdapterV2;
private CompositeDisposable compositeDisposable;
private HomeViewModel homeViewModel;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -111,6 +115,7 @@ public class HomeFragmentV2 extends BaseFragment implements
private void init() {
setupMenuRecyclerView();
homeViewModel = new ViewModelProvider(requireActivity()).get(HomeViewModel.class);
compositeDisposable = new CompositeDisposable();
@ -136,9 +141,12 @@ public class HomeFragmentV2 extends BaseFragment implements
swiperefresh.setOnRefreshListener(() -> {
waveProgressBarView.startAnimatingPath();
//TODO change to view model
HomeParentViewContractV2 parentView = ((HomeParentViewContractV2) getActivity());
/* HomeParentViewContractV2 parentView = ((HomeParentViewContractV2) getActivity());
if (parentView != null)
parentView.getPresenter().getRequiredData();
parentView.getPresenter().getRequiredData();*/
if(homeViewModel!=null){
homeViewModel.getRequiredData();
}
});
lb_rewardpoint.setOnClickListener(this);
tv_rewardpoint.setOnClickListener(this);

5
app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/KYCV3ViewModelFactory.java

@ -15,7 +15,10 @@ public class KYCV3ViewModelFactory implements ViewModelProvider.Factory {
private final String userId;
private final String userPwd;
public KYCV3ViewModelFactory(KYCV3PresenterInterface.KYCV3ViewContractInterface view,String userId,String userPwd) {
public KYCV3ViewModelFactory(
KYCV3PresenterInterface.KYCV3ViewContractInterface view,
String userId,
String userPwd) {
this.view = view;
this.userId=userId;
this.userPwd=userPwd;

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

@ -385,7 +385,6 @@
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

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

@ -35,7 +35,6 @@
<FrameLayout
android:background="@drawable/curve_rectangle_bright_grey"
android:id="@+id/selectLangBg"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginEnd="@dimen/_8sdp"

19
app/src/main/res/values/styles.xml

@ -13,7 +13,6 @@
</style>
<style name="AppTheme.Launcher">
<item name="android:windowBackground">@color/colorPrimary</item>
<item name="windowActionBar">false</item>
@ -44,10 +43,6 @@
</style>
<style name="gme_form_text_input_layout" parent="Widget.Design.TextInputLayout">
<item name="android:layout_marginTop">@dimen/_4sdp</item>
@ -59,6 +54,7 @@
<item name="android:imeOptions">actionDone</item>
</style>
<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:windowBackground">@drawable/ic_rounded_white</item>
</style>
@ -160,8 +156,10 @@
<style name="AppBottomSheetDialogTheme" parent="Theme.Design.Light.BottomSheetDialog">
<!-- <item name="bottomSheetStyle">@style/AppModalStyle</item>-->
<item name="android:windowIsFloating">false</item> <!-- This is important -->
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item> <!-- And then this will be needed -->
<item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/white</item>
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent
</item> <!-- And then this will be needed -->
<item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/white
</item>
<!-- <item name="android:windowBackground">@android:color/transparent</item>-->
<!-- <item name="android:windowSoftInputMode">adjustResize|stateVisible</item>-->
<!-- <item name="android:colorBackground">@android:color/white</item>-->
@ -182,8 +180,10 @@
<style name="RoundedBottomSheetDialog" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
<item name="bottomSheetStyle">@style/RoundedBottomSheet</item>
<item name="android:windowIsFloating">false</item> <!-- This is important -->
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item> <!-- And then this will be needed -->
<item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/white</item>
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent
</item> <!-- And then this will be needed -->
<item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/white
</item>
<item name="android:windowBackground">@drawable/bg_window_top_inset</item>
</style>
@ -220,6 +220,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
</style>
<style name="MFormBoundWithCornerRadius" parent="MFormBound">
<item name="android:background">@drawable/mform_with_corner_radius_bg</item>
<item name="android:layout_margin">@dimen/form_rounded_corner_default_margin</item>

Loading…
Cancel
Save