From 14cdc90441a9849248dfbbc6c23b7ad894569622 Mon Sep 17 00:00:00 2001 From: 14Sandee Date: Mon, 19 Feb 2024 19:56:58 +0530 Subject: [PATCH] . --- app/src/main/AndroidManifest.xml | 4 + .../apputils/NotificationService.java | 10 ++ .../fragments/MyPatientFragment.java | 13 +- .../CgSubscriptionActivity.java | 45 +++++-- .../SubscriptionWebViewActivity.java | 112 ++++++++++++++++++ .../layout/activity_subscription_webview.xml | 21 ++++ .../res/layout/cg_subscription_layout.xml | 8 +- 7 files changed, 197 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/com/app/simplitend/cg_subscription/SubscriptionWebViewActivity.java create mode 100644 app/src/main/res/layout/activity_subscription_webview.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a006d3b..6ff7fb5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,6 +38,10 @@ android:theme="@style/Theme.SimpliTend" android:usesCleartextTraffic="true" tools:targetApi="31"> + { - Intent intent = new Intent(requireActivity(), CgSubscriptionActivity.class); - startActivity(intent); +// Intent intent = new Intent(requireActivity(), CgSubscriptionActivity.class); +// startActivity(intent); + CaregiverDataCache.getCaregiverData(requireContext(), careGiverData1 -> { + if (careGiverData1 == null) return; + + Intent intent = new Intent(requireActivity(), SubscriptionWebViewActivity.class); + intent.putExtra(EXTRA_CAREGIVER_XID, careGiverData1.caregiver_xid); + startActivity(intent); + }, true); }); } diff --git a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java index ee4db90..c83c803 100644 --- a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java +++ b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java @@ -1,5 +1,7 @@ package com.app.simplitend.cg_subscription; +import static com.app.simplitend.cg_subscription.SubscriptionWebViewActivity.EXTRA_CAREGIVER_XID; + import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; @@ -7,14 +9,12 @@ import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.text.Html; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.method.LinkMovementMethod; -import android.text.style.ClickableSpan; import android.util.Log; import android.view.View; import android.widget.Toast; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -63,6 +63,8 @@ public class CgSubscriptionActivity extends AppCompatActivity private String current_subscription_plan_id; + private ActivityResultLauncher webViewLauncher; + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -95,6 +97,19 @@ public class CgSubscriptionActivity extends AppCompatActivity // selecting default yearly pack binding.yearCheck.setSelected(true); + + webViewLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), + result -> { + CaregiverDataCache.setCareGiverData(null); + CaregiverDataCache.getCaregiverData(this, careGiverData1 -> { + if (careGiverData1 != null && careGiverData1.isCaregiverTakeSubscription == 1){ + Intent intent = new Intent(this, CgProfileProgressActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + finish(); + } + }, true); + }); } @Override @@ -148,8 +163,7 @@ public class CgSubscriptionActivity extends AppCompatActivity Toast.makeText(this, "Please try again later.", Toast.LENGTH_SHORT).show(); } } else { - payForSubscription(); // uses payment sheet -// showCardDetailsWidget(); // uses custom elements + openWebViewForSubscription(careGiverData1.caregiver_xid); } } else { Toast.makeText(this, "Couldn't load data", Toast.LENGTH_SHORT).show(); @@ -184,6 +198,12 @@ public class CgSubscriptionActivity extends AppCompatActivity } + private void openWebViewForSubscription(int caregiver_xid) { + Intent intent = new Intent(this, SubscriptionWebViewActivity.class); + intent.putExtra(EXTRA_CAREGIVER_XID, caregiver_xid); + webViewLauncher.launch(intent); + } + private void cancelSubscription() { if (current_subscription_plan_id == null){ Toast.makeText(this, "Please try again later.", Toast.LENGTH_SHORT).show(); @@ -200,6 +220,9 @@ public class CgSubscriptionActivity extends AppCompatActivity this); } + /* + This method is no more used as subscription is handled on website + */ private void payForSubscription() { if (careGiverData == null || subscriptionPlans == null) { Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show(); @@ -496,11 +519,13 @@ public class CgSubscriptionActivity extends AppCompatActivity }); binding.monthCard.setVisibility(View.VISIBLE); + binding.yearCheck.setSelected(true); + binding.monthCard.setSelected(true); binding.monthCard.setOnClickListener(v -> { - if (!binding.monthCheck.isActivated()) { - binding.yearCheck.setSelected(false); - binding.monthCheck.setSelected(true); - } +// if (!binding.monthCheck.isActivated()) { +// binding.yearCheck.setSelected(false); +// binding.monthCheck.setSelected(true); +// } }); try { diff --git a/app/src/main/java/com/app/simplitend/cg_subscription/SubscriptionWebViewActivity.java b/app/src/main/java/com/app/simplitend/cg_subscription/SubscriptionWebViewActivity.java new file mode 100644 index 0000000..0ae5ab2 --- /dev/null +++ b/app/src/main/java/com/app/simplitend/cg_subscription/SubscriptionWebViewActivity.java @@ -0,0 +1,112 @@ +package com.app.simplitend.cg_subscription; + +import static com.app.simplitend.apputils.AppUtil.NOTIFICATION_ACTION; +import static com.app.simplitend.apputils.Constants.MEDICINE_TIME; +import static com.app.simplitend.apputils.Constants.NEW_SUBSCRIPTION; +import static com.app.simplitend.apputils.NotificationService.CONTENT_TYPE_KEY; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.net.http.SslError; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.webkit.SslErrorHandler; +import android.webkit.WebResourceError; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Toast; + +import com.app.simplitend.BuildConfig; +import com.app.simplitend.R; +import com.app.simplitend.apputils.AppUtil; +import com.app.simplitend.apputils.CaregiverDataCache; +import com.app.simplitend.caregiverdashboard.activities.CgProfileProgressActivity; +import com.app.simplitend.databinding.ActivitySubscriptionWebviewBinding; + +import java.util.HashMap; +import java.util.Map; + +public class SubscriptionWebViewActivity extends AppCompatActivity { + + private static final String TAG = "aditya_sub_web_view"; + + public static final String EXTRA_CAREGIVER_XID = "extra_caregiver_xid"; + + protected ActivitySubscriptionWebviewBinding binding; + + private BroadcastReceiver paymentCompleteReceiver; + + private int caregiver_xid; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivitySubscriptionWebviewBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + caregiver_xid = getIntent().getIntExtra(EXTRA_CAREGIVER_XID, -1); + + paymentCompleteReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (intent != null){ + String content_type = intent.getStringExtra(CONTENT_TYPE_KEY); + if (NEW_SUBSCRIPTION.equals(content_type)){ + CaregiverDataCache.setCareGiverData(null); + CaregiverDataCache.getCaregiverData(SubscriptionWebViewActivity.this, careGiverData1 -> { + if (careGiverData1 != null && careGiverData1.isCaregiverTakeSubscription == 1){ + setResult(RESULT_OK, null, null); + SubscriptionWebViewActivity.this.finish(); + } + }, true); + } + } + } + }; + + registerReceiver(paymentCompleteReceiver, new IntentFilter(NOTIFICATION_ACTION)); + + loadUrl(); + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + unregisterReceiver(paymentCompleteReceiver); + } + + private void loadUrl() { + if (caregiver_xid == -1){ + Toast.makeText(this, "Something went wrong, please try again later", Toast.LENGTH_SHORT).show(); + return; + } + + binding.progressBar.setVisibility(View.VISIBLE); + + binding.webView.getSettings().setJavaScriptEnabled(true); + binding.webView.getSettings().setBuiltInZoomControls(true); + binding.webView.getSettings().setDisplayZoomControls(false); + + binding.webView.setWebViewClient(new WebViewClient(){ + @Override + public void onPageCommitVisible(WebView view, String url) { + super.onPageCommitVisible(view, url); + binding.progressBar.setVisibility(View.GONE); + } + }); + + Map headers = new HashMap<>(); + headers.put("Authorization", "Bearer " + AppUtil.getCgToken(this)); + + binding.webView.loadUrl(BuildConfig.SIMPLITEND_BASE_URL + "my-profile-ios?caregiver_xid="+caregiver_xid , headers); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_subscription_webview.xml b/app/src/main/res/layout/activity_subscription_webview.xml new file mode 100644 index 0000000..adfb7ab --- /dev/null +++ b/app/src/main/res/layout/activity_subscription_webview.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/cg_subscription_layout.xml b/app/src/main/res/layout/cg_subscription_layout.xml index 0c47b0c..71f90f2 100644 --- a/app/src/main/res/layout/cg_subscription_layout.xml +++ b/app/src/main/res/layout/cg_subscription_layout.xml @@ -123,10 +123,12 @@ @@ -140,8 +142,6 @@ android:textColor="@color/black" android:textSize="@dimen/_14ssp" - android:layout_marginStart="15dp" - /> @@ -293,10 +293,12 @@ @@ -310,8 +312,6 @@ android:textColor="@color/black" android:textSize="@dimen/_14ssp" - android:layout_marginStart="15dp" - />