Browse Source

Login done

master
preyearegmi 6 years ago
parent
commit
d18854fabf
  1. 11
      app/src/main/AndroidManifest.xml
  2. 10
      app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java
  3. 62
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/gateway/LoginV2Gateway.java
  4. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2InteractorInterface.java
  5. 61
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2Presenter.java
  6. 11
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2PresenterInterface.java
  7. 104
      app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java
  8. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java
  9. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sign_in/view/LoginView.java
  10. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java
  11. 5
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
  12. 7
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/other/PersistenceStorageManager.java
  13. 17
      app/src/main/res/layout/activity_login_v2.xml

11
app/src/main/AndroidManifest.xml

@ -491,8 +491,15 @@
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity android:name=".kycV2.view.KYCFormV2Activity" />
<activity android:name=".loginV2.view.LoginV2Activity"></activity>
<activity android:name=".kycV2.view.KYCFormV2Activity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden"/>
<activity android:name=".loginV2.view.LoginV2Activity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden"
></activity>
</application>
</manifest>

10
app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java

@ -5,6 +5,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.StrictMode;
import android.provider.Settings;
import android.support.multidex.MultiDex;
import com.crashlytics.android.Crashlytics;
@ -21,6 +22,7 @@ import java.lang.reflect.Method;
public class GmeApplication extends Application {
private static SharedPreferences gmeSharedPreferences = null;
private static String deviceID="";
@Override
public void onCreate() {
super.onCreate();
@ -35,6 +37,9 @@ public class GmeApplication extends Application {
StrictMode.setVmPolicy(builder.build());
}
deviceID=Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
gmeSharedPreferences= this.getSharedPreferences("GME", Context.MODE_PRIVATE);
/* if(Build.VERSION.SDK_INT>=24){
try{
@ -51,4 +56,9 @@ public class GmeApplication extends Application {
return gmeSharedPreferences;
}
public static String getDeviceID() {
return deviceID;
}
}

62
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/gateway/LoginV2Gateway.java

@ -1,23 +1,81 @@
package com.gmeremit.online.gmeremittance_native.loginV2.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.loginV2.presenter.LoginV2InteractorInterface;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.GetAllRecipientApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.recipientlisting.RecipientListingV2InteractorInterface;
import com.gmeremit.online.gmeremittance_native.sign_in.model.data.LoginApiResponseModelV2;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.google.gson.JsonObject;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
public class LoginV2Gateway extends PrivilegedGateway implements LoginV2InteractorInterface.Login2GatewayInterface {
private final LoginV2InteractorInterface interactor;
public LoginV2Gateway(LoginV2InteractorInterface agentListV2InteractorInterface) {
this.interactor=agentListV2InteractorInterface;
}
@Override
public Observable<LoginApiResponseModelV2> loginUser(String auth, String userId, String password) {
JsonObject jsonObject=new JsonObject();
jsonObject.addProperty("userId",userId);
jsonObject.addProperty("password",password);
return HttpClientV2.getInstance().signInV2(auth,jsonObject);
}
@Override
public Observable<Boolean> saveUserInfo(LoginApiResponseModelV2 loginApiResponseModelV2) {
return Observable.create(observable->{
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());
boolean result =sharedPreferenceEditor.commit();
if(!observable.isDisposed())
observable.onNext(result);
observable.onComplete();
});
}
}

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2InteractorInterface.java

@ -4,6 +4,7 @@ import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse;
import com.gmeremit.online.gmeremittance_native.sign_in.model.data.LoginApiResponseModelV2;
import io.reactivex.Observable;
@ -12,6 +13,8 @@ public interface LoginV2InteractorInterface extends BaseInteractorInterface {
interface Login2GatewayInterface extends PrivilegedGatewayInterface
{
Observable<LoginApiResponseModelV2> loginUser(String auth, String userId, String password);
Observable<Boolean> saveUserInfo(LoginApiResponseModelV2 userRelatedData);
}
}

61
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2Presenter.java

@ -1,19 +1,10 @@
package com.gmeremit.online.gmeremittance_native.loginV2.presenter;
import com.gmeremit.online.gmeremittance_native.GmeApplication;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.loginV2.gateway.LoginV2Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV2.gateway.RecipientAddV2Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.AddRecipientApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.CountryDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.DistrictDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ProvinceDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedDataApiResponse;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
import com.gmeremit.online.gmeremittance_native.utils.Constants;
import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import io.reactivex.Observable;
@ -24,13 +15,57 @@ import io.reactivex.schedulers.Schedulers;
public class LoginV2Presenter extends BasePresenter implements LoginV2PresenterInterface, LoginV2InteractorInterface {
private final LoginV2ContractInterface view;
private final LoginV2Gateway gateway;
CompositeDisposable compositeDisposable;
public LoginV2Presenter(LoginV2V2ContractInterface view) {
public LoginV2Presenter(LoginV2ContractInterface view) {
this.view=view;
this.gateway=new LoginV2Gateway(this);
}
public boolean validateUserId(String userId) {
return true;
}
@Override
public void loginUser(String userId, String userPwd) {
String auth= "Basic "+Utils.toBase64("172017F9EC11222E8107142733:QRK2UM0Q:" + GmeApplication.getDeviceID());
this.gateway.loginUser(auth,userId,userPwd)
.doOnSubscribe(d->view.showProgressBar(true,"Logging in..."))
.doFinally(()->view.showProgressBar(false,""))
.subscribeOn(Schedulers.io())
.flatMap(loginResponse->{
String accessCode = Utils.toBase64(loginResponse.getAccessCode() + ":" + GmeApplication.getDeviceID());
loginResponse.setAccessCode(accessCode);
return gateway.saveUserInfo(loginResponse);
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new LoginObserver());
}
public class LoginObserver extends GenericApiObserverResponse<Boolean>
{
@Override
protected void onSuccess(Boolean aBoolean) {
view.showInvalidPassword(null);
view.showInvalidUserId(null);
view.redirectToDashboard();
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,null);
}
}
}

11
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/presenter/LoginV2PresenterInterface.java

@ -13,8 +13,13 @@ import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisti
public interface LoginV2PresenterInterface extends BasePresenterInterface {
void loginUser(String userId, String userPwd);
interface LoginV2V2ContractInterface extends BaseContractInterface
{
interface LoginV2ContractInterface extends BaseContractInterface {
}}
void showInvalidUserId(String message);
void showInvalidPassword(String message);
void redirectToDashboard();
}
}

104
app/src/main/java/com/gmeremit/online/gmeremittance_native/loginV2/view/LoginV2Activity.java

@ -1,15 +1,117 @@
package com.gmeremit.online.gmeremittance_native.loginV2.view;
import android.content.Intent;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.home.view.HomeActivity;
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2Presenter;
import com.gmeremit.online.gmeremittance_native.loginV2.presenter.LoginV2PresenterInterface;
public class LoginV2Activity extends AppCompatActivity {
import butterknife.BindView;
import butterknife.ButterKnife;
public class LoginV2Activity extends BaseActivity implements View.OnClickListener, LoginV2PresenterInterface.LoginV2ContractInterface {
@BindView(R.id.usernameId)
EditText usernameId;
@BindView(R.id.passwordId)
EditText passwordId;
@BindView(R.id.btn_submit)
Button loginBtn;
@BindView(R.id.tv_forgotpass)
TextView forgetPwdTxt;
@BindView(R.id.register)
TextView registerTxt;
@BindView(R.id.useridWrapper)
TextInputLayout userIdWrapper;
@BindView(R.id.passwordWrapper)
TextInputLayout passwordWrapper;
private LoginV2Presenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_v2);
ButterKnife.bind(this);
initialize();
performDefaultAction(savedInstanceState);
}
private void initialize() {
this.presenter=new LoginV2Presenter(this);
}
private void performDefaultAction(Bundle savedInstanceState) {
}
@Override
protected void onStart() {
super.onStart();
forgetPwdTxt.setOnClickListener(this);
registerTxt.setOnClickListener(this);
loginBtn.setOnClickListener(this);
}
@Override
protected void onStop() {
super.onStop();
forgetPwdTxt.setOnClickListener(null);
registerTxt.setOnClickListener(null);
loginBtn.setOnClickListener(null);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.register:
break;
case R.id.btn_submit:
if(presenter.validateUserId(usernameId.getText().toString()))
{
presenter.loginUser(usernameId.getText().toString(),passwordId.getText().toString());
}
break;
case R.id.tv_forgotpass:
break;
}
}
@Override
public void showInvalidUserId(String message) {
userIdWrapper.setError(message);
}
@Override
public void showInvalidPassword(String message) {
passwordWrapper.setError(message);
}
@Override
public void redirectToDashboard() {
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/registerV2/presenter/RegisterV2Presenter.java

@ -23,9 +23,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
public class RegisterV2Presenter extends BasePresenter implements LoginV2PresenterInterface, LoginV2InteractorInterface {
public class RegisterV2Presenter extends BasePresenter implements RegisterV2PresenterInterface, RegisterV2InteractorInterface {
CompositeDisposable compositeDisposable;

4
app/src/main/java/com/gmeremit/online/gmeremittance_native/sign_in/view/LoginView.java

@ -22,6 +22,7 @@ import android.widget.Toast;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.home.view.HomeActivity;
import com.gmeremit.online.gmeremittance_native.kycform.view.KycFormActivity;
import com.gmeremit.online.gmeremittance_native.loginV2.view.LoginV2Activity;
import com.gmeremit.online.gmeremittance_native.reset_password.view.UserIdValidationActivity;
import com.gmeremit.online.gmeremittance_native.sign_in.LoginContract;
import com.gmeremit.online.gmeremittance_native.sign_in.model.LoginModel;
@ -108,7 +109,8 @@ public class LoginView extends AppCompatActivity implements LoginContract.LoginV
@OnClick(R.id.register)
public void setRegister() {
startActivity(new Intent(getApplicationContext(), SignUpActivity.class));
// startActivity(new Intent(getApplicationContext(), SignUpActivity.class));
startActivity(new Intent(this, LoginV2Activity.class));
}
@OnClick(R.id.tv_forgotpass)

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

@ -132,5 +132,7 @@ public class API_URL {
public static final String SEND_MONEY_AMOUNT_VALIDATION_V2 = "mobile/sendmoney/validation/account";
public static final String SEND_MONEY_TRANSACTION_V2 = "mobile/sendmoney/dotransaction";
public static final String SEND_MONEY_GET_RECEIPT_V2 = "mobile/receipt/{tranId}";
public static final String SIGN_IN_V2 = BuildConfig.BASE_URL + "users/access-code";
}

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

@ -69,6 +69,7 @@ import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.SendMoneyTrans
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.amountdetail.BranchListApiResponse;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.AccountValidationApiResponse;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.PayoutModeApiResponse;
import com.gmeremit.online.gmeremittance_native.sign_in.model.data.LoginApiResponseModelV2;
import com.gmeremit.online.gmeremittance_native.sign_in.model.data.SignInRequestBody;
import com.gmeremit.online.gmeremittance_native.sign_in.model.data.SignInResponse;
import com.gmeremit.online.gmeremittance_native.signup.model.data.SignupRequestBody;
@ -580,4 +581,8 @@ public interface ApiEndpoints {
@Headers("Content-Type: application/json")
Observable<SendMoneyTransactionCompleteV2ResponseBody> getSendMoneyReceiptV2(@Header("Authorization") String token, @Path("tranId") String tranId);
@POST(API_URL.SIGN_IN_V2)
@Headers("Content-Type: application/json")
Observable<LoginApiResponseModelV2> signInV2(@Header("Authorization") String token, @Body JsonObject signInJsonBody);
}

7
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/other/PersistenceStorageManager.java

@ -66,7 +66,12 @@ public class PersistenceStorageManager {
}
public String getUserId() {
return pref.getString(USER_ID, DEFAULT_VALUE);
// return pref.getString(USER_ID, DEFAULT_VALUE);
String uid= pref.getString(USER_ID, null);
if(uid==null)
return pref.getString(PrefKeys.USER_EMAIL, DEFAULT_VALUE);
else
return uid;
}
public void setUserId(String userId) {

17
app/src/main/res/layout/activity_login_v2.xml

@ -43,7 +43,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="Login with your email address or mobile number"
android:textSize="14sp"
app:txtfontName="@string/regular"
@ -55,6 +56,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="10dp"
android:hint="User ID"
android:textColorHint="@color/darkgray">
@ -76,6 +78,7 @@
android:layout_below="@id/useridWrapper"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="3dp"
android:hint="Password"
android:textColorHint="@color/darkgray"
>
@ -99,7 +102,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:padding="5dp"
android:text="Forgot Password?"
android:textColor="@color/colorAccent"
@ -111,11 +115,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/passwordWrapper"
android:layout_margin="4dp"
android:layout_marginBottom="10dp"
android:gravity="center"
>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
@ -124,11 +130,11 @@
android:textSize="14sp"/>
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="Register Here"
android:textColor="#2e3192"
android:textSize="14sp"/>
@ -141,6 +147,7 @@
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
android:background="@drawable/ic_rounded_background_coloured"
android:text="Login"
android:textAllCaps="false"

Loading…
Cancel
Save