diff --git a/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java b/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java index 85f3bd5..2ec713c 100644 --- a/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java +++ b/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java @@ -2,7 +2,6 @@ package com.ssb.simplitend.apputils; import android.app.Activity; import android.app.AlertDialog; -import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; @@ -10,7 +9,6 @@ import android.os.Handler; import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import androidx.annotation.NonNull; @@ -28,10 +26,17 @@ public abstract class AppUtil { // fields public static final String USER_DETAILS = "user_details"; - public static final String CAREGIVER_DETAILS = "user_details"; + public static final String CAREGIVER_DETAILS = "caregiver_details"; public static final String USER_TOKEN = "user_token"; - public static final String CAREGIVER_TOKEN = "user_token"; + public static final String CAREGIVER_TOKEN = "caregiver_token"; + + public static final String CG_APP_SECURITY = "cg_app_security"; + + public static final int NOT_ASKED_CG_SECURITY = 2; + public static final int CG_NO_SECURITY_NEEDED = 3; + public static final int CG_SECURITY_NEEDED = 4; + public static final String PATIENT_UID = "patient_uid"; // util functions @@ -167,4 +172,23 @@ public abstract class AppUtil { return sp.getString(CAREGIVER_TOKEN, null); } + public static void setWantSecurityFlag(Context context, int watSecurity){ + SharedPreferences sp = context.getSharedPreferences(CAREGIVER_DETAILS, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sp.edit(); + + editor.putInt(CG_APP_SECURITY, watSecurity); + + editor.apply(); + } + + public static int getWantSecurityFlag(Context context){ + SharedPreferences sp = context.getSharedPreferences(CAREGIVER_DETAILS, Context.MODE_PRIVATE); + return sp.getInt(CG_APP_SECURITY, NOT_ASKED_CG_SECURITY); + } + + public static void cgSignOut(Context context){ + saveCgData(null, context); + setWantSecurityFlag(context, NOT_ASKED_CG_SECURITY); + } + } diff --git a/app/src/main/java/com/ssb/simplitend/apputils/UserDataCache.java b/app/src/main/java/com/ssb/simplitend/apputils/UserDataCache.java new file mode 100644 index 0000000..f2ba2c2 --- /dev/null +++ b/app/src/main/java/com/ssb/simplitend/apputils/UserDataCache.java @@ -0,0 +1,15 @@ +package com.ssb.simplitend.apputils; + +import androidx.annotation.Nullable; + +import com.ssb.simplitend.welcome.welcomecg.mvvm.CareGiverData; +import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; + +public abstract class UserDataCache { + + @Nullable + public static PatientData patientData; + @Nullable + public static CareGiverData careGiverData; + +} diff --git a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/CaregiverDashActivity.java b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/CaregiverDashActivity.java index 0bafe3b..f1574cb 100644 --- a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/CaregiverDashActivity.java +++ b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/CaregiverDashActivity.java @@ -1,5 +1,6 @@ package com.ssb.simplitend.caregiverdashboard; +import android.content.Intent; import android.content.res.ColorStateList; import android.os.Bundle; import android.view.Menu; @@ -13,10 +14,12 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import com.ssb.simplitend.R; +import com.ssb.simplitend.apputils.UserDataCache; import com.ssb.simplitend.caregiverdashboard.fragments.CaregiverChatsFragment; import com.ssb.simplitend.caregiverdashboard.fragments.DashBoardFragment; import com.ssb.simplitend.caregiverdashboard.fragments.MyPatientFragment; import com.ssb.simplitend.caregiverdashboard.mvvm.CaregiverMainViewModel; +import com.ssb.simplitend.cg_subscription.CgSubscriptionActivity; import com.ssb.simplitend.customsviews.HomeBottomNav; import com.ssb.simplitend.customsviews.MenuItem; import com.ssb.simplitend.databinding.CaregiverDashboardActivityBinding; @@ -40,6 +43,17 @@ public class CaregiverDashActivity extends AppCompatActivity implements binding = CaregiverDashboardActivityBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); + if (UserDataCache.careGiverData != null){ + if (UserDataCache.careGiverData.isCaregiverTakeSubscription != 1){ + // user has not subscribed yet + Intent intent = new Intent(this, CgSubscriptionActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + finish(); + return; + } + } + initViews(); clickEvents(); diff --git a/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java b/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java index 54b4a85..3e8b25b 100644 --- a/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java +++ b/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java @@ -1,6 +1,7 @@ package com.ssb.simplitend.cg_subscription; import android.app.ProgressDialog; +import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.widget.Toast; @@ -12,10 +13,13 @@ import androidx.viewpager2.widget.ViewPager2; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; +import com.ssb.simplitend.apputils.UserDataCache; +import com.ssb.simplitend.caregiverdashboard.CaregiverDashActivity; import com.ssb.simplitend.cg_subscription.mvp.SubscriptionContracts; import com.ssb.simplitend.cg_subscription.mvp.SubscriptionCredentials; import com.ssb.simplitend.cg_subscription.mvp.SubscriptionPresenter; import com.ssb.simplitend.databinding.CgSubscriptionLayoutBinding; +import com.ssb.simplitend.welcome.welcomecg.mvvm.CareGiverData; import com.stripe.android.PaymentConfiguration; import com.stripe.android.paymentsheet.PaymentSheet; import com.stripe.android.paymentsheet.PaymentSheetResult; @@ -50,6 +54,14 @@ public class CgSubscriptionActivity extends AppCompatActivity presenter = SubscriptionPresenter.getPresenter(); + // static + AppUtil.showAlert(this, + "Testing!", + "Payment is in testing phase. So each time u open app it ill bring to subsription screen. This ill be updated in next build.", + "Ok, got it.", + ((dialogInterface, i) -> {}), + null, null); + initViews(); clickEvents(); @@ -63,6 +75,11 @@ public class CgSubscriptionActivity extends AppCompatActivity } private void payForSubscription() { + if (UserDataCache.careGiverData == null) { + Toast.makeText(this, "Couldn't make payment", Toast.LENGTH_SHORT).show(); + return; + } + int position = binding.viewPager.getCurrentItem(); if (subscriptionPlans == null || position < 0 || position >= subscriptionPlans.size()){ Toast.makeText(this, "Couldn't load plan.", Toast.LENGTH_SHORT).show(); @@ -78,10 +95,10 @@ public class CgSubscriptionActivity extends AppCompatActivity Map body = new HashMap<>(); - RequestBody name_body = RequestBody.create("Aditya Gaikwad", MediaType.parse("text/plain")); + RequestBody name_body = RequestBody.create(UserDataCache.careGiverData.first_name, MediaType.parse("text/plain")); body.put("name", name_body); - RequestBody email_body = RequestBody.create("test@gmail.com", MediaType.parse("text/plain")); + RequestBody email_body = RequestBody.create(UserDataCache.careGiverData.email, MediaType.parse("text/plain")); body.put("email", email_body); RequestBody price_body = RequestBody.create("595", MediaType.parse("text/plain")); @@ -90,7 +107,7 @@ public class CgSubscriptionActivity extends AppCompatActivity RequestBody subscription_xid_body = RequestBody.create("4", MediaType.parse("text/plain")); body.put("subscription_xid", subscription_xid_body); - RequestBody caregiver_xid_body = RequestBody.create("4", MediaType.parse("text/plain")); + RequestBody caregiver_xid_body = RequestBody.create("" + UserDataCache.careGiverData.caregiver_xid, MediaType.parse("text/plain")); body.put("caregiver_xid", caregiver_xid_body); String token = "Bearer " + AppUtil.getCgToken(this); @@ -137,8 +154,18 @@ public class CgSubscriptionActivity extends AppCompatActivity Toast.makeText(this, "Payment failed.", Toast.LENGTH_SHORT).show(); } else if (paymentSheetResult instanceof PaymentSheetResult.Completed) { // Display for example, an order confirmation screen - Log.d(TAG, "Completed"); + Log.d(TAG, "Payment successful"); Toast.makeText(this, "Payment successful.", Toast.LENGTH_SHORT).show(); + + // TODO: 11-08-2023 do the api call + if (UserDataCache.careGiverData != null){ + UserDataCache.careGiverData.isCaregiverTakeSubscription = 1; + + Intent intent = new Intent(this, CaregiverDashActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + finish(); + } } } diff --git a/app/src/main/java/com/ssb/simplitend/cg_subscription/SubscriptionPlan.java b/app/src/main/java/com/ssb/simplitend/cg_subscription/SubscriptionPlan.java index 49e1f70..4125bf2 100644 --- a/app/src/main/java/com/ssb/simplitend/cg_subscription/SubscriptionPlan.java +++ b/app/src/main/java/com/ssb/simplitend/cg_subscription/SubscriptionPlan.java @@ -16,8 +16,4 @@ public class SubscriptionPlan{ public SubscriptionPlan(){} - public SubscriptionPlan(String plan_name, String plan_value) { - this.plan_name = plan_name; - this.plan_value = plan_value; - } } diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java index d9bf8b5..ef18a0e 100644 --- a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java +++ b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java @@ -153,7 +153,7 @@ public class ProfileProgressFragment extends Fragment implements ProfileContract if (profile_progress == 4){ btn_text = "Proceed"; }else{ - btn_text = "Skip"; + btn_text = "Skip to dashboard"; } binding.proceed.setText(btn_text); diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java index b5bcea4..38e9b22 100644 --- a/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java +++ b/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java @@ -11,6 +11,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.gif.GifDrawable; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; import com.daimajia.androidanimations.library.Techniques; import com.daimajia.androidanimations.library.YoYo; import com.ssb.simplitend.R; @@ -27,7 +33,7 @@ public class RegisterCompleteFragment extends Fragment { int profile_progress, is_connect_to_caregiver; - public RegisterCompleteFragment(){ + public RegisterCompleteFragment() { // required } @@ -36,47 +42,33 @@ public class RegisterCompleteFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = RegisterationDoneFragmentBinding.inflate(inflater, container, false); - if (getArguments() != null){ + if (getArguments() != null) { profile_progress = getArguments().getInt(PROFILE_PROGRESS, 20); is_connect_to_caregiver = getArguments().getInt(IS_CONNECTED_TO_CG, 0); } - binding.animIv.setAnimation(R.raw.done_anim_2); - binding.animIv.playAnimation(); + Glide.with(requireContext()) + .asGif() + .load(R.raw.filling_anim) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + return false; + } - binding.animIv.addAnimatorListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(@NonNull Animator animator) { - - } - - @Override - public void onAnimationEnd(@NonNull Animator animator) { - - String title = "Your profile is " + (profile_progress * 20) + "% complete!"; - - binding.title.setText(title); - YoYo.with(Techniques.FadeIn) - .duration(100) - .playOn(binding.title); - } - - @Override - public void onAnimationCancel(@NonNull Animator animator) { - - } - - @Override - public void onAnimationRepeat(@NonNull Animator animator) { - - } - }); + @Override + public boolean onResourceReady(GifDrawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + resource.setLoopCount(1); + return false; + } + }) + .into(binding.animIv); binding.proceed.setOnClickListener(v -> { - if (is_connect_to_caregiver == 1){ + if (is_connect_to_caregiver == 1) { gotoPatientDashBoard(); - }else { + } else { AppUtil.showAlert(requireContext(), "Ask Caregiver to register", "Kindly ask CareGiver to complete registeration.", @@ -97,3 +89,34 @@ public class RegisterCompleteFragment extends Fragment { requireActivity().finish(); } } + +//binding.animIv.setAnimation(R.raw.done_anim_2); +// binding.animIv.playAnimation(); +// +// binding.animIv.addAnimatorListener(new Animator.AnimatorListener() { +//@Override +//public void onAnimationStart(@NonNull Animator animator) { +// +// } +// +//@Override +//public void onAnimationEnd(@NonNull Animator animator) { +// +// String title = "Your profile is " + (profile_progress * 20) + "% complete!"; +// +// binding.title.setText(title); +// YoYo.with(Techniques.FadeIn) +// .duration(100) +// .playOn(binding.title); +// } +// +//@Override +//public void onAnimationCancel(@NonNull Animator animator) { +// +// } +// +//@Override +//public void onAnimationRepeat(@NonNull Animator animator) { +// +// } +// }); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeApiService.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeApiService.java index 9e66fc5..d03b033 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeApiService.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeApiService.java @@ -42,4 +42,7 @@ public interface WelcomeApiService { @POST("api/auth/patient-caregiver-connect") Call> connectCg(@Body Map body); + @GET("api/caregiver-user-data") + Call> getCgUserData(@Header("Authorization") String token); + } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeContracts.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeContracts.java index bd67d4d..2c8488c 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeContracts.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/WelcomeContracts.java @@ -8,7 +8,7 @@ public interface WelcomeContracts { interface RegisterCareGiverCallback{ - void onCareGiverRegistered(CareGiverData careGiverData); + void onCareGiverRegistered(CareGiverData careGiverData, String token); void onRegisterFailed(Throwable t, String message); @@ -52,4 +52,12 @@ public interface WelcomeContracts { } + interface CgGetUserDataCallback{ + + void onCgDataFetched(CareGiverData careGiverData); + + void onCgDataFetchFailed(Throwable t, String message); + + } + } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java index b91189d..c35b9d4 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java @@ -1,7 +1,5 @@ package com.ssb.simplitend.welcome.welcomecg.fragments; -import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_WEAK; -import static android.hardware.biometrics.BiometricManager.Authenticators.DEVICE_CREDENTIAL; import static androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG; import android.content.Intent; @@ -10,7 +8,6 @@ import android.provider.Settings; import android.text.Editable; import android.text.TextWatcher; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -38,6 +35,19 @@ public class CgAuthActivity extends AppCompatActivity { binding = CgAuthFragmentBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); + int cg_security = AppUtil.getWantSecurityFlag(this); + + if (cg_security == AppUtil.NOT_ASKED_CG_SECURITY){ + // user has never been asked to setup security + // thus, showing that ui + binding.notAsked.setVisibility(View.VISIBLE); + binding.askedView.setVisibility(View.GONE); + }else{ + // user was asked already + binding.notAsked.setVisibility(View.GONE); + binding.askedView.setVisibility(View.VISIBLE); + } + initViews(); clickEvents(); @@ -46,10 +56,18 @@ public class CgAuthActivity extends AppCompatActivity { private void clickEvents() { binding.fingerprintView.setOnClickListener(v -> { - authenticateBiometrics(); - }); + + binding.setUpFingerprint.setOnClickListener(v -> { + authenticateBiometrics(); + }); + + binding.skip.setOnClickListener(v -> { + AppUtil.setWantSecurityFlag(this, AppUtil.CG_NO_SECURITY_NEEDED); + gotoCgDash(); + }); + } private void initViews() { @@ -66,6 +84,7 @@ public class CgAuthActivity extends AppCompatActivity { @Override public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) { super.onAuthenticationSucceeded(result); + AppUtil.setWantSecurityFlag(CgAuthActivity.this, AppUtil.CG_SECURITY_NEEDED); gotoCgDash(); } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgChangePwdFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgChangePwdFragment.java index 15d1a36..121460d 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgChangePwdFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgChangePwdFragment.java @@ -56,6 +56,10 @@ public class CgChangePwdFragment extends Fragment implements WelcomeContracts.Ch } private void clickEvents() { + binding.backBtn.setOnClickListener(view -> { + requireActivity().onBackPressed(); + }); + binding.resetPin.setOnClickListener(v -> { if (allOkay()) { changePassword(); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgCheckEmailFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgCheckEmailFragment.java index cca94b0..f448e84 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgCheckEmailFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgCheckEmailFragment.java @@ -81,6 +81,11 @@ public class CgCheckEmailFragment extends Fragment implements WelcomeContracts.F } private void clickEvents() { + + binding.backBtn.setOnClickListener(view -> { + requireActivity().onBackPressed(); + }); + binding.submit.setOnClickListener(view -> { if (checkOTPInputs()){ verifyOTP(); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java index e683aa5..60c36a3 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java @@ -33,7 +33,6 @@ public class CgConnectFragment extends Fragment implements WelcomeContracts.Conn protected ConnectCaregiverFragmentBinding binding; public static final String CAREGIVER_EMAIL = "cg_email"; - public static final String CAREGIVER_PASSWORD = "caregiver_pwd"; private String cg_email; @@ -147,7 +146,7 @@ public class CgConnectFragment extends Fragment implements WelcomeContracts.Conn Toast.makeText(requireContext(), "Caregiver connected.", Toast.LENGTH_SHORT).show(); // go to cg dash board - Intent intent = new Intent(requireActivity(), CaregiverDashActivity.class); + Intent intent = new Intent(requireActivity(), CgAuthActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); requireActivity().finish(); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgForgotPasswordFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgForgotPasswordFragment.java index 4a3fc41..9f4b46f 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgForgotPasswordFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgForgotPasswordFragment.java @@ -58,6 +58,10 @@ public class CgForgotPasswordFragment extends Fragment implements WelcomeContrac private void clickEvents() { + binding.backBtn.setOnClickListener(view -> { + requireActivity().onBackPressed(); + }); + binding.submit.setOnClickListener(v -> { if (!Patterns.EMAIL_ADDRESS.matcher(binding.emailAddress.getText().toString().trim()).matches()){ diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgRegisterFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgRegisterFragment.java index e928b11..9f9ec86 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgRegisterFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgRegisterFragment.java @@ -1,7 +1,6 @@ package com.ssb.simplitend.welcome.welcomecg.fragments; import static com.ssb.simplitend.welcome.welcomecg.fragments.CgConnectFragment.CAREGIVER_EMAIL; -import static com.ssb.simplitend.welcome.welcomecg.fragments.CgConnectFragment.CAREGIVER_PASSWORD; import android.app.DatePickerDialog; import android.app.ProgressDialog; @@ -423,9 +422,11 @@ public class CgRegisterFragment extends Fragment implements WelcomeContracts.Reg } @Override - public void onCareGiverRegistered(CareGiverData careGiverData) { + public void onCareGiverRegistered(CareGiverData careGiverData, String token) { Toast.makeText(requireContext(), "Caregiver registered successfully.", Toast.LENGTH_SHORT).show(); + AppUtil.saveCgData(token, requireContext()); + Bundle bundle = new Bundle(); bundle.putString(CAREGIVER_EMAIL, careGiverData.email); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java index 964a149..e07ae66 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java @@ -1,5 +1,7 @@ package com.ssb.simplitend.welcome.welcomecg.fragments; +import static com.ssb.simplitend.welcome.welcomecg.fragments.CgConnectFragment.CAREGIVER_EMAIL; + import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; @@ -17,6 +19,8 @@ import androidx.navigation.Navigation; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; +import com.ssb.simplitend.apputils.UserDataCache; +import com.ssb.simplitend.caregiverdashboard.CaregiverDashActivity; import com.ssb.simplitend.databinding.CgSignInFragmentBinding; import com.ssb.simplitend.welcome.welcomecg.WelcomeContracts; import com.ssb.simplitend.welcome.welcomecg.mvvm.CareGiverData; @@ -112,35 +116,51 @@ public class CgSignInFragment extends Fragment implements WelcomeContracts.CgLog return allOkay; } - private void gotoCgAuthActivity() { - Intent intent = new Intent(requireActivity(), CgAuthActivity.class); + private void gotoDashboard() { + int cg_app_security = AppUtil.getWantSecurityFlag(requireContext()); + + Intent intent; + if (cg_app_security == AppUtil.CG_NO_SECURITY_NEEDED){ + // caregiver user has chosen to not use security + intent = new Intent(requireActivity(), CaregiverDashActivity.class); + + }else{ + // caregiver user has asked to for security + intent = new Intent(requireActivity(), CgAuthActivity.class); + } + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); - requireActivity().finish(); } - private void gotoCgConnect() { + private void gotoCgConnect(String email) { NavOptions navOptions = new NavOptions.Builder() .setPopUpTo(R.id.welcomeFragment, true) .build(); + Bundle bundle = new Bundle(); + bundle.putString(CAREGIVER_EMAIL, email); + // goto cg connect screen Navigation.findNavController(binding.getRoot()) - .navigate(R.id.action_cgSignInFragment_to_cgConnectFragment, null, navOptions); + .navigate(R.id.action_cgSignInFragment_to_cgConnectFragment, bundle, navOptions); } @Override public void onLoginSuccess(CareGiverData careGiverData, String token) { + // caching user data + UserDataCache.careGiverData = careGiverData; + progressDialog.dismiss(); Toast.makeText(requireContext(), "Log in success.", Toast.LENGTH_SHORT).show(); AppUtil.saveCgData(token, requireContext()); - if (careGiverData.isPatientLinkedAndConnected == 1){ - gotoCgAuthActivity(); + if (careGiverData.isPatientAndCareGiverConnected == 1){ + gotoDashboard(); }else{ - gotoCgConnect(); + gotoCgConnect(careGiverData.email); } } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CareGiverData.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CareGiverData.java index 24df5df..bf5c401 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CareGiverData.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CareGiverData.java @@ -32,6 +32,7 @@ public class CareGiverData{ public int is_patient; public int is_caregiver; public int is_caregiver_account_updated; - public int isPatientLinkedAndConnected; + public int isPatientAndCareGiverConnected, isCaregiverTakeSubscription; + public int caregiver_xid; public String is_admin; } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CgWelcomeRepository.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CgWelcomeRepository.java index 9df17e1..bdfbaa5 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CgWelcomeRepository.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomecg/mvvm/CgWelcomeRepository.java @@ -49,7 +49,7 @@ public class CgWelcomeRepository { return; } - registerCareGiverCallback.onCareGiverRegistered(response.body().result); + registerCareGiverCallback.onCareGiverRegistered(response.body().result, response.body().token); }else{ registerCareGiverCallback.onRegisterFailed(new Exception(), "Please try again later."); } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/SignInFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/SignInFragment.java index e269574..07698ea 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/SignInFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/SignInFragment.java @@ -21,11 +21,12 @@ import androidx.navigation.Navigation; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; import com.ssb.simplitend.apputils.EditTextErrorRemover; +import com.ssb.simplitend.apputils.UserDataCache; import com.ssb.simplitend.patient_dashboard.DashBoardActivity; import com.ssb.simplitend.databinding.SignInFragmentBinding; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeContracts; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeViewModel; -import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientResult; +import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; import java.util.HashMap; import java.util.Map; @@ -149,7 +150,10 @@ public class SignInFragment extends Fragment implements WelcomeContracts.Registe } @Override - public void onResponse(PatientResult patientResult, String token) { + public void onResponse(PatientData patientResult, String token) { + // caching user data + UserDataCache.patientData = patientResult; + progressDialog.dismiss(); progressDialog.setMessage("Almost there..."); @@ -160,20 +164,15 @@ public class SignInFragment extends Fragment implements WelcomeContracts.Registe Toast.makeText(requireContext(), "Log in successful.", Toast.LENGTH_SHORT).show(); - if (patientResult.patientData != null){ - if (patientResult.patientData.isCareGiverConnectedWithPatient == 1){ - // connected to caregiver - // thus, sending it to dashboard - Intent intent = new Intent(requireActivity(), DashBoardActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(intent); - requireActivity().finish(); - } else if (patientResult.patientData.isCareGiverLink == 1){ - gotoProfileProgress(); - }else{ - // no patient data or no caregiver contact yet added thus sending to contact list - gotoContactList(); - } + if (patientResult.isCareGiverConnectedWithPatient == 1){ + // connected to caregiver + // thus, sending it to dashboard + Intent intent = new Intent(requireActivity(), DashBoardActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + requireActivity().finish(); + } else if (patientResult.isCareGiverLink == 1){ + gotoProfileProgress(); }else{ // no patient data or no caregiver contact yet added thus sending to contact list gotoContactList(); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java index 8d0e18a..c1eac9d 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java @@ -22,7 +22,6 @@ import com.ssb.simplitend.databinding.CreatePinFragmentBinding; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeContracts; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeViewModel; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; -import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientResult; public class CreatePinFragment extends Fragment implements WelcomeContracts.RegisterPatientContract { @@ -150,7 +149,7 @@ public class CreatePinFragment extends Fragment implements WelcomeContracts.Regi } @Override - public void onResponse(PatientResult patientResult, String token) { + public void onResponse(PatientData patientResult, String token) { Log.d(TAG, "onResponse: " + patientResult); Log.d(TAG, "onResponse: Token " + token); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java index 8b671da..d8ca36a 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java @@ -27,7 +27,6 @@ import com.google.i18n.phonenumbers.PhoneNumberUtil; import com.google.i18n.phonenumbers.Phonenumber; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; -import com.ssb.simplitend.apputils.EditTextErrorRemover; import com.ssb.simplitend.databinding.RegisterFragmentBinding; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeContracts; import com.ssb.simplitend.welcome.welcomepatient.mvvm.WelcomeViewModel; diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java index 3f47c39..9a632d4 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java @@ -1,5 +1,7 @@ package com.ssb.simplitend.welcome.welcomepatient.fragments.register; +import static com.ssb.simplitend.welcome.welcomecg.fragments.CgConnectFragment.CAREGIVER_EMAIL; + import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; @@ -16,10 +18,16 @@ import androidx.navigation.Navigation; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; import com.ssb.simplitend.apputils.RetrofitHelper; +import com.ssb.simplitend.apputils.UserDataCache; +import com.ssb.simplitend.caregiverdashboard.CaregiverDashActivity; import com.ssb.simplitend.databinding.SplashFragmentBinding; import com.ssb.simplitend.patient_dashboard.DashBoardActivity; import com.ssb.simplitend.patientprofile.PatientProfileAPIService; import com.ssb.simplitend.patientprofile.ProfileContracts; +import com.ssb.simplitend.welcome.welcomecg.WelcomeApiService; +import com.ssb.simplitend.welcome.welcomecg.WelcomeContracts; +import com.ssb.simplitend.welcome.welcomecg.fragments.CgAuthActivity; +import com.ssb.simplitend.welcome.welcomecg.mvvm.CareGiverData; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; @@ -27,7 +35,9 @@ import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; -public class SplashFragment extends Fragment implements ProfileContracts.ProfileProgressCallback{ +public class SplashFragment extends Fragment + implements ProfileContracts.ProfileProgressCallback, + WelcomeContracts.CgGetUserDataCallback { // view binding protected SplashFragmentBinding binding; @@ -54,14 +64,16 @@ public class SplashFragment extends Fragment implements ProfileContracts.Profile binding.retry.setVisibility(View.GONE); binding.loadAnim.setVisibility(View.VISIBLE); - String token = AppUtil.getUserToken(requireContext()); - if (token != null && !token.isEmpty()){ + String patient_token = AppUtil.getUserToken(requireContext()); + String cg_token = AppUtil.getCgToken(requireContext()); + + if (patient_token != null && !patient_token.isEmpty()){ // user is already logged in as PATIENT // thus, checking if the logged in PATIENT has already added CAREGIVER PatientProfileAPIService apiService = RetrofitHelper.getRetrofit().create(PatientProfileAPIService.class); - apiService.getUsrProfileProgress("Bearer " + token) + apiService.getUsrProfileProgress("Bearer " + patient_token) .enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { @@ -83,13 +95,39 @@ public class SplashFragment extends Fragment implements ProfileContracts.Profile } }); + }else if (cg_token != null){ + + WelcomeApiService welcomeApiService = RetrofitHelper.getRetrofit().create(WelcomeApiService.class); + + welcomeApiService.getCgUserData("Bearer " + cg_token) + .enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.body() != null) { + if (response.body().status != 200 || response.body().result == null) { + onCgDataFetchFailed(new Exception(), response.body().message); + return; + } + + onCgDataFetched(response.body().result); + } else { + onCgDataFetchFailed(new Exception(), "Please try again later."); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + onCgDataFetchFailed(new Exception(), "Please try again later."); + } + }); + }else{ // no user has logged in gotoWelcomeFragment(); } } - private void gotoProfileProgress(){ + private void gotoPatientProfileProgress(){ NavOptions navOptions = new NavOptions.Builder() .setPopUpTo(R.id.splashFragment, true) .build(); @@ -107,18 +145,88 @@ public class SplashFragment extends Fragment implements ProfileContracts.Profile .navigate(R.id.action_splashFragment_to_welcomeFragment, null, navOptions); } + private void gotoPatientDashBoard() { + Intent intent = new Intent(requireActivity(), DashBoardActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + requireActivity().finish(); + } + + private void gotoCgAuthScreen(){ + Intent intent = new Intent(requireActivity(), CgAuthActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + requireActivity().finish(); + } + + private void gotoCgDashBoard(){ + Intent intent = new Intent(requireActivity(), CaregiverDashActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + requireActivity().finish(); + } + + // get cg user data callback + @Override + public void onCgDataFetched(CareGiverData careGiverData) { + // caching data + UserDataCache.careGiverData = careGiverData; + + binding.retry.setVisibility(View.GONE); + binding.loadAnim.setVisibility(View.GONE); + + if (careGiverData.isPatientAndCareGiverConnected == 1){ + // patient is linked with the caregiver + int cg_security = AppUtil.getWantSecurityFlag(requireContext()); + + if (cg_security == AppUtil.NOT_ASKED_CG_SECURITY){ + // user want their app to be secure + gotoCgAuthScreen(); + }else{ + // user does not want the security + gotoCgDashBoard(); + } + + }else{ + // patient is not linked with the caregiver + // thus, sending it to the cg connect screen + NavOptions navOptions = new NavOptions.Builder() + .setPopUpTo(R.id.splashFragment, true) + .build(); + + Bundle bundle = new Bundle(); + bundle.putString(CAREGIVER_EMAIL, careGiverData.email); + + Navigation.findNavController(binding.getRoot()) + .navigate(R.id.action_splashFragment_to_cgConnectFragment, bundle, navOptions); + } + + } + + @Override + public void onCgDataFetchFailed(Throwable t, String message) { + Toast.makeText(requireContext(), "Couldn't connect.", Toast.LENGTH_SHORT).show(); + + binding.retry.setVisibility(View.VISIBLE); + binding.loadAnim.setVisibility(View.GONE); + } + + // get patient user data callback @Override public void onProfileProgressFetched(PatientData patientData) { + // caching data + UserDataCache.patientData = patientData; + binding.retry.setVisibility(View.GONE); binding.loadAnim.setVisibility(View.GONE); if (patientData.isCareGiverConnectedWithPatient == 1){ // go to dashboard - gotoDashBoard(); + gotoPatientDashBoard(); }else if (patientData.isCareGiverLink == 1){ // user has already added caregiver as a contact // thus, sending it to dashboard - gotoProfileProgress(); + gotoPatientProfileProgress(); }else{ // user has not added caregiver contact. // thus, sending it to contact list to add caregiver contact. @@ -131,13 +239,6 @@ public class SplashFragment extends Fragment implements ProfileContracts.Profile } } - private void gotoDashBoard() { - Intent intent = new Intent(requireActivity(), DashBoardActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(intent); - requireActivity().finish(); - } - @Override public void onProfileProgressFetchFailed(Throwable t, String message) { diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/ThankYouFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/ThankYouFragment.java index a368988..4ae257a 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/ThankYouFragment.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/register/ThankYouFragment.java @@ -11,9 +11,13 @@ import androidx.fragment.app.Fragment; import androidx.navigation.Navigation; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.engine.GlideException; import com.bumptech.glide.load.resource.gif.GifDrawable; +import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.ImageViewTarget; +import com.bumptech.glide.request.target.Target; import com.ssb.simplitend.R; import com.ssb.simplitend.databinding.ThankYouFragmentBinding; @@ -43,6 +47,18 @@ public class ThankYouFragment extends Fragment { Glide.with(requireContext()) .asGif() .load(R.raw.done_anim) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + return false; + } + + @Override + public boolean onResourceReady(GifDrawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + resource.setLoopCount(1); + return false; + } + }) .into(binding.animIv); } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeApiService.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeApiService.java index 642c4c5..5f3fe24 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeApiService.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeApiService.java @@ -5,7 +5,6 @@ import com.ssb.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.models. import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.OTPSentResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; -import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientResult; import java.util.List; import java.util.Map; @@ -27,14 +26,14 @@ public interface WelcomeApiService { @Multipart @POST("api/auth/patient-register") - Call> registerPatient(@PartMap Map body); + Call> registerPatient(@PartMap Map body); @Multipart @POST("api/auth/patient-login") - Call> loginPatient(@PartMap Map credentials); + Call> loginPatient(@PartMap Map credentials); @POST("api/auth/verify-patient-exists") - Call> verifyEmail(@Body Map body); + Call> verifyEmail(@Body Map body); @Multipart @POST diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeContracts.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeContracts.java index cdb1c2d..ee04fde 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeContracts.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeContracts.java @@ -4,7 +4,6 @@ import com.ssb.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.Contact import com.ssb.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.models.ContactListResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.OTPSentResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; -import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientResult; import java.util.List; @@ -12,7 +11,7 @@ public interface WelcomeContracts { interface RegisterPatientContract{ - void onResponse(PatientResult patientResult, String token); + void onResponse(PatientData patientResult, String token); void onFailure(Throwable t, String message, int error_code); } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeRepository.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeRepository.java index 917472f..585509e 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeRepository.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/WelcomeRepository.java @@ -9,7 +9,6 @@ import androidx.annotation.NonNull; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.OTPSentResponse; import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientData; -import com.ssb.simplitend.welcome.welcomepatient.mvvm.models.PatientResult; import java.util.List; import java.util.Map; @@ -42,9 +41,9 @@ public class WelcomeRepository { public void loginPatient(@NonNull Map credentials, @NonNull WelcomeContracts.RegisterPatientContract loginCallback){ - welcomeApiService.loginPatient(credentials).enqueue(new Callback>() { + welcomeApiService.loginPatient(credentials).enqueue(new Callback>() { @Override - public void onResponse(Call> call, Response> response) { + public void onResponse(Call> call, Response> response) { if (response.body() != null){ if (response.body().status != 200 || response.body().result == null){ loginCallback.onFailure(new Exception(), response.body().message, response.body().status); @@ -58,7 +57,7 @@ public class WelcomeRepository { } @Override - public void onFailure(Call> call, Throwable t) { + public void onFailure(Call> call, Throwable t) { Log.e(TAG, "onFailure: login patient", t); loginCallback.onFailure(t, t.getMessage(), 1); } @@ -71,9 +70,9 @@ public class WelcomeRepository { - welcomeApiService.registerPatient(body).enqueue(new Callback>() { + welcomeApiService.registerPatient(body).enqueue(new Callback>() { @Override - public void onResponse(Call> call, Response> response) { + public void onResponse(Call> call, Response> response) { if (response.isSuccessful() && response.body() != null && response.body().result != null) { registerPatient.onResponse(response.body().result, response.body().token); @@ -87,7 +86,7 @@ public class WelcomeRepository { } @Override - public void onFailure(Call> call, Throwable t) { + public void onFailure(Call> call, Throwable t) { Log.e(TAG, "onFailure: ", t); registerPatient.onFailure(t, t.getMessage(), 1); } @@ -97,9 +96,9 @@ public class WelcomeRepository { public void verifyEmail(Map email_address, WelcomeContracts.VerifyEmailCallBack emailCallBack){ - welcomeApiService.verifyEmail(email_address).enqueue(new Callback>() { + welcomeApiService.verifyEmail(email_address).enqueue(new Callback>() { @Override - public void onResponse(Call> call, Response> response) { + public void onResponse(Call> call, Response> response) { Log.d(TAG, "onResponse: "); if (response.isSuccessful() && response.body() != null){ // error_cede @@ -112,7 +111,7 @@ public class WelcomeRepository { } @Override - public void onFailure(Call> call, Throwable t) { + public void onFailure(Call> call, Throwable t) { Log.e(TAG, "onFailure: verify email ", t); emailCallBack.onVerificationFailed(); } diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java index 9e66b5a..19b9928 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java @@ -19,6 +19,7 @@ public class PatientData { public String updated_at; public String created_at; public int id; + public int patientId; // for payload purpose public String pin_code, c_pin_code; diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientResult.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientResult.java deleted file mode 100644 index 13f8782..0000000 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/mvvm/models/PatientResult.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ssb.simplitend.welcome.welcomepatient.mvvm.models; - -import com.google.gson.annotations.SerializedName; - -public class PatientResult { - @SerializedName("PatientData") - public PatientData patientData; - public int patientId; - - public PatientResult(){} - - @Override - public String toString() { - return "PatientResult{" + - "patientData=" + patientData + - ", patientId=" + patientId + - '}'; - } -} diff --git a/app/src/main/res/drawable/ic_fingerprint.png b/app/src/main/res/drawable/ic_fingerprint.png new file mode 100644 index 0000000..d24a85b Binary files /dev/null and b/app/src/main/res/drawable/ic_fingerprint.png differ diff --git a/app/src/main/res/layout/cg_auth_fragment.xml b/app/src/main/res/layout/cg_auth_fragment.xml index 23ab5ff..a13822d 100644 --- a/app/src/main/res/layout/cg_auth_fragment.xml +++ b/app/src/main/res/layout/cg_auth_fragment.xml @@ -1,120 +1,238 @@ - + xmlns:app="http://schemas.android.com/apk/res-auto" + android:background="@color/white"> - - - + android:layout_height="match_parent" + android:orientation="vertical"> + android:textSize="@dimen/_16ssp" /> - - - + + + + + + + + + + + + + + + + + - android:text="@string/unlock_with_fingerprint" + + + + android:textSize="@dimen/_18ssp" + + android:layout_marginVertical="@dimen/_15sdp" + + /> + + + + + + + + - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/cg_forgot_password.xml b/app/src/main/res/layout/cg_forgot_password.xml index 0a822cb..08b8c7a 100644 --- a/app/src/main/res/layout/cg_forgot_password.xml +++ b/app/src/main/res/layout/cg_forgot_password.xml @@ -45,7 +45,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginHorizontal="15dp" - tools:text="A temporary pin will be sent to the registered email address (s***@ Si***.com) and phone number (+1732***88)" + android:text="@string/a_temporary_pin_will_be_sent_to_the_registered_email_address" android:textSize="@dimen/_18ssp" android:fontFamily="@font/nunito_regular" android:layout_marginVertical="5dp" diff --git a/app/src/main/res/layout/registeration_done_fragment.xml b/app/src/main/res/layout/registeration_done_fragment.xml index eb1be28..f4248f3 100644 --- a/app/src/main/res/layout/registeration_done_fragment.xml +++ b/app/src/main/res/layout/registeration_done_fragment.xml @@ -24,7 +24,7 @@ android:gravity="center" android:orientation="vertical"> - + Real-time alerts and notifications Setup geo-fence zone Retry + A temporary pin will be sent to the registered email address. + Security + To enhance the security of your account, please add biometric authentication using either Face ID or Fingerprint. + Setup security \ No newline at end of file