This commit is contained in:
14Sandee
2024-02-19 19:56:58 +05:30
parent 5b32a20b80
commit 14cdc90441
7 changed files with 197 additions and 16 deletions

View File

@@ -38,6 +38,10 @@
android:theme="@style/Theme.SimpliTend"
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
android:name=".cg_subscription.SubscriptionWebViewActivity"
android:exported="false"
android:screenOrientation="portrait"/>
<activity
android:name=".chats.ChatsActivity"
android:exported="false"

View File

@@ -6,6 +6,7 @@ import static com.app.simplitend.apputils.Constants.ACTIVITY_TIME;
import static com.app.simplitend.apputils.Constants.BATTERY_LOW;
import static com.app.simplitend.apputils.Constants.MEDICATION_REFILL;
import static com.app.simplitend.apputils.Constants.MEDICINE_TIME;
import static com.app.simplitend.apputils.Constants.NEW_SUBSCRIPTION;
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG;
import android.app.NotificationManager;
@@ -96,6 +97,15 @@ public class NotificationService implements INotificationServiceExtension {
AppUtil.incrementNoOfNotification(iNotificationReceivedEvent.getContext());
}
if (NEW_SUBSCRIPTION.equals(content_type)){
// sending local broadcast
Intent broadcastIntent = new Intent(NOTIFICATION_ACTION);
broadcastIntent.putExtra(CONTENT_TYPE_KEY, content_type);
iNotificationReceivedEvent.getContext().sendBroadcast(broadcastIntent);
return;
}
Intent intent = new Intent(iNotificationReceivedEvent.getContext(), BottomNotificationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(NOTIFICATION_ACTION);

View File

@@ -6,6 +6,7 @@ import static com.app.simplitend.caregiverdashboard.activities.PatientProfileSho
import static com.app.simplitend.caregiverdashboard.activities.PatientProfileShowerActivity.MED_REMINDER_F;
import static com.app.simplitend.caregiverdashboard.activities.PatientProfileShowerActivity.WHICH_FRAGMENT;
import static com.app.simplitend.cg_geofencing.CgGeoFencingActivity.GEOFENCE_DETAILS_KEY;
import static com.app.simplitend.cg_subscription.SubscriptionWebViewActivity.EXTRA_CAREGIVER_XID;
import android.app.ProgressDialog;
import android.content.Intent;
@@ -32,6 +33,7 @@ import com.app.simplitend.caregiverdashboard.mvvm.CgHomeContracts;
import com.app.simplitend.caregiverdashboard.mvvm.models.GeoFenceDetails;
import com.app.simplitend.cg_geofencing.CgGeoFencingActivity;
import com.app.simplitend.cg_subscription.CgSubscriptionActivity;
import com.app.simplitend.cg_subscription.SubscriptionWebViewActivity;
import com.app.simplitend.databinding.MyPatientFragmentBinding;
import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData;
import com.bumptech.glide.Glide;
@@ -167,8 +169,15 @@ public class MyPatientFragment extends Fragment implements CgHomeContracts.GetGe
});
binding.subPlans.setOnClickListener(v -> {
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);
});
}

View File

@@ -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<Intent> 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 {

View File

@@ -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<String, String> 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);
}
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".cg_subscription.SubscriptionWebViewActivity">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<ProgressBar
android:id="@+id/progress_bar"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>

View File

@@ -123,10 +123,12 @@
<ImageView
android:id="@+id/year_check"
android:visibility="gone"
android:layout_width="@dimen/_25sdp"
android:layout_height="@dimen/_25sdp"
android:src="@drawable/sub_check_drawable"
android:layout_marginStart="15dp"
/>
@@ -140,8 +142,6 @@
android:textColor="@color/black"
android:textSize="@dimen/_14ssp"
android:layout_marginStart="15dp"
/>
</LinearLayout>
@@ -293,10 +293,12 @@
<ImageView
android:id="@+id/month_check"
android:visibility="gone"
android:layout_width="@dimen/_25sdp"
android:layout_height="@dimen/_25sdp"
android:src="@drawable/sub_check_drawable"
android:layout_marginEnd="15dp"
/>
@@ -310,8 +312,6 @@
android:textColor="@color/black"
android:textSize="@dimen/_14ssp"
android:layout_marginStart="15dp"
/>
</LinearLayout>