diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2eb517f..05b941e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,7 +5,8 @@
-
+
+
@@ -143,6 +144,9 @@
+
+
whiteList;
+ LinearLayout no_fua;
+
List installed_app_list;
@Override
@@ -44,6 +49,7 @@ public class FUAActivity extends AppCompatActivity {
rvApps = (RecyclerView) findViewById(R.id.rvApps);
rvWhiteApps = (RecyclerView) findViewById(R.id.rv_white_apps);
mySharedPref = new MySharedPref(FUAActivity.this);
+ no_fua = findViewById(R.id.no_fua);
if (!isAccessibilityAppBlockingEnabled()) {
openAccessibilityDialog();
@@ -55,6 +61,14 @@ public class FUAActivity extends AppCompatActivity {
whiteList = getWhiteListApps();
Collections.sort(whiteList, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
+ if (whiteList.size() > 0) {
+ no_fua.setVisibility(View.GONE);
+ rvWhiteApps.setVisibility(View.VISIBLE);
+ } else {
+ no_fua.setVisibility(View.VISIBLE);
+ rvWhiteApps.setVisibility(View.GONE);
+ }
+
adapter = new MyAppsAdapter(FUAActivity.this, getInstalledApps(), false, appList -> {
if (!isContainsWhiteList(appList)) {
whiteList.add(appList);
@@ -63,6 +77,14 @@ public class FUAActivity extends AppCompatActivity {
whiteList.remove(getPosition(appList));
}
+ if (whiteList.size() > 0) {
+ no_fua.setVisibility(View.GONE);
+ rvWhiteApps.setVisibility(View.VISIBLE);
+ } else {
+ no_fua.setVisibility(View.VISIBLE);
+ rvWhiteApps.setVisibility(View.GONE);
+ }
+
whiteListAdapter.notifyDataSetChanged();
});
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 67fa321..f27177b 100644
--- a/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java
+++ b/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java
@@ -12,6 +12,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.RawRes;
@@ -20,6 +21,7 @@ import com.bumptech.glide.Glide;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.ssb.simplitend.R;
import com.ssb.simplitend.appblocking.MySharedPref;
+import com.ssb.simplitend.databinding.BottomSheetAlertBinding;
import com.ssb.simplitend.databinding.DecisionBottomsheetBinding;
import com.ssb.simplitend.databinding.DoneBottomsheetBinding;
@@ -38,6 +40,8 @@ public abstract class AppUtil {
public static final String IMAGE_BASE_URL = "https://simplitend.betadelivery.com/storage/upload/";
private static final String TAG = "AppUtil";
+ public static final String NOTIFICATION_ACTION = "com.simplitend.NOTIFICATION_ACTION";
+
// fields
public static final String PATIENT_DETAILS = "user_details";
public static final String CAREGIVER_DETAILS = "caregiver_details";
@@ -285,16 +289,97 @@ public abstract class AppUtil {
setWantSecurityFlag(context, NOT_ASKED_CG_SECURITY);
}
- public static void dialPhone(Activity activity, String phone_number) {
+ public static void dialPhone(Context activity, String phone_number) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel",
phone_number, null));
if (activity != null) activity.startActivity(intent);
}
- public static void messageNumber(Activity activity, String phone_number){
+ public static void messageNumber(Context activity, String phone_number){
Uri uri = Uri.parse("smsto:" + phone_number);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
// intent.putExtra("sms_body", "The SMS text");
if (activity != null) activity.startActivity(intent);
}
+
+ public static void showBottomAlert(Context context, String content_type, Intent intent) throws Exception {
+ BottomSheetDialog bsd = new BottomSheetDialog(context, R.style.BottomSheetDialog);
+ BottomSheetAlertBinding binding = BottomSheetAlertBinding.inflate(LayoutInflater.from(context));
+ bsd.setContentView(binding.getRoot());
+
+ String title = intent.getStringExtra(NotificationService.NOTIFICATION_TITLE_KEY);
+ String body = intent.getStringExtra(NotificationService.NOTIFICATION_BODY_KEY);
+
+ switch (content_type){
+ case Constants.PATIENT_OUT_OF_GEOFENCE:
+
+ setupBottomSheet(binding,
+ R.drawable.img_medication_time,
+ title, "Current location of patient",
+ "Unknown", "Call patient",
+ v -> {
+ CaregiverDataCache.getCaregiverData(context,(careGiverData -> {
+ if (careGiverData == null || careGiverData.patientDetails == null){
+ Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number);
+ }), true);
+ });
+
+ bsd.show();
+ break;
+ case Constants.ACTIVITY_TIME:
+ setupBottomSheet(binding,
+ R.drawable.img_activity_time,
+ title, body,
+ null, "Text patient",
+ v -> {
+ CaregiverDataCache.getCaregiverData(context,(careGiverData -> {
+ if (careGiverData == null || careGiverData.patientDetails == null){
+ Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number);
+ }), true);
+ });
+
+ bsd.show();
+ break;
+ case Constants.MEDICINE_TIME:
+ setupBottomSheet(binding,
+ R.drawable.img_medication_time,
+ title, body,
+ null, "Text patient",
+ v -> {
+ CaregiverDataCache.getCaregiverData(context,(careGiverData -> {
+ if (careGiverData == null || careGiverData.patientDetails == null){
+ Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number);
+ }), true);
+ });
+
+ bsd.show();
+ break;
+ }
+
+ }
+
+ private static void setupBottomSheet(BottomSheetAlertBinding binding,
+ int img_res,
+ String title, String description_title,
+ String description, String btn_text,
+ View.OnClickListener btn_clickListener) {
+ binding.image.setImageResource(img_res);
+ binding.title.setText(title);
+ binding.descriptionTitle.setText(description_title);
+ binding.description.setText(description);
+ binding.btn.setText(btn_text);
+ binding.btn.setOnClickListener(btn_clickListener);
+ }
}
diff --git a/app/src/main/java/com/ssb/simplitend/apputils/Constants.java b/app/src/main/java/com/ssb/simplitend/apputils/Constants.java
new file mode 100644
index 0000000..b79de69
--- /dev/null
+++ b/app/src/main/java/com/ssb/simplitend/apputils/Constants.java
@@ -0,0 +1,10 @@
+package com.ssb.simplitend.apputils;
+
+public abstract class Constants {
+ public static final String NEW_SUBSCRIPTION = "new_subscription";
+ public static final String ACTIVITY_TIME = "activity_time";
+ public static final String MEDICINE_TIME = "medicine_time";
+ public static final String GEOFENCING_RADIUS_UPDATED = "geofencing_radius_updated";
+ public static final String HOME_LOCATION_UPDATED = "home_location_updated";
+ public static final String PATIENT_OUT_OF_GEOFENCE = "patient_outof_geofence";
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/ssb/simplitend/apputils/NotificationService.java b/app/src/main/java/com/ssb/simplitend/apputils/NotificationService.java
new file mode 100644
index 0000000..4acf48e
--- /dev/null
+++ b/app/src/main/java/com/ssb/simplitend/apputils/NotificationService.java
@@ -0,0 +1,38 @@
+package com.ssb.simplitend.apputils;
+
+import android.content.Intent;
+
+import androidx.annotation.NonNull;
+
+import com.onesignal.notifications.INotificationReceivedEvent;
+import com.onesignal.notifications.INotificationServiceExtension;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class NotificationService implements INotificationServiceExtension {
+
+ public static final String CONTENT_TYPE_KEY = "content_type_key";
+ public static final String NOTIFICATION_BODY_KEY = "notification_body_key";
+ public static final String NOTIFICATION_TITLE_KEY = "notification_title_key";
+
+ @Override
+ public void onNotificationReceived(@NonNull INotificationReceivedEvent iNotificationReceivedEvent) {
+ JSONObject extras = iNotificationReceivedEvent.getNotification().getAdditionalData();
+ String content_type = null;
+ if (extras != null){
+ try {
+ content_type = extras.getString("content_type");
+ } catch (JSONException e) {
+ // do nothing
+ }
+ }
+
+ Intent intent = new Intent(AppUtil.NOTIFICATION_ACTION);
+ intent.putExtra(CONTENT_TYPE_KEY, content_type);
+ intent.putExtra(NOTIFICATION_BODY_KEY, iNotificationReceivedEvent.getNotification().getBody());
+ intent.putExtra(NOTIFICATION_TITLE_KEY, iNotificationReceivedEvent.getNotification().getTitle());
+
+ iNotificationReceivedEvent.getContext().sendBroadcast(intent);
+ }
+}
diff --git a/app/src/main/java/com/ssb/simplitend/apputils/SimpliTendApp.java b/app/src/main/java/com/ssb/simplitend/apputils/SimpliTendApp.java
index 71c69fd..f59f6a8 100644
--- a/app/src/main/java/com/ssb/simplitend/apputils/SimpliTendApp.java
+++ b/app/src/main/java/com/ssb/simplitend/apputils/SimpliTendApp.java
@@ -17,11 +17,5 @@ public class SimpliTendApp extends Application {
// OneSignal Initialization
OneSignal.initWithContext(this, getString(R.string.ONE_SIGNAL_APP_ID));
-
- // handling notification when app is in foreground.
-// OneSignal.getNotifications().addForegroundLifecycleListener(iNotificationWillDisplayEvent -> {
-// Toast.makeText(this, "Notifies : " + iNotificationWillDisplayEvent.getNotification().getBody(), Toast.LENGTH_SHORT).show();
-// });
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java
index 696cde9..d0d0fda 100644
--- a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java
+++ b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java
@@ -1,10 +1,17 @@
package com.ssb.simplitend.caregiverdashboard.activities;
+import static com.ssb.simplitend.apputils.NotificationService.CONTENT_TYPE_KEY;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
+import android.widget.Toast;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.fragment.app.Fragment;
@@ -13,9 +20,12 @@ import androidx.lifecycle.ViewModelProvider;
import com.bumptech.glide.Glide;
import com.onesignal.Continue;
import com.onesignal.OneSignal;
+import com.onesignal.notifications.INotificationLifecycleListener;
+import com.onesignal.notifications.INotificationWillDisplayEvent;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
import com.ssb.simplitend.apputils.CaregiverDataCache;
+import com.ssb.simplitend.apputils.Constants;
import com.ssb.simplitend.articles.ArticlesActivity;
import com.ssb.simplitend.caregiverdashboard.fragments.CgDashBoardFragment;
import com.ssb.simplitend.caregiverdashboard.fragments.MyPatientFragment;
@@ -31,6 +41,9 @@ import com.ssb.simplitend.welcome.welcomecg.mvvm.CareGiverData;
import com.yarolegovich.slidingrootnav.SlidingRootNavBuilder;
import com.yarolegovich.slidingrootnav.callback.DragStateListener;
+import org.json.JSONException;
+import org.json.JSONObject;
+
public class CaregiverDashActivity extends AppCompatActivity implements
DragStateListener,
HomeBottomNav.OnBottomNavItemSelectListener {
@@ -38,11 +51,11 @@ public class CaregiverDashActivity extends AppCompatActivity implements
// view binding
protected CaregiverDashboardActivityBinding binding;
private CaregiverDashboardMenuBinding menuBinding;
-
protected CaregiverMainViewModel viewModel;
-
private CareGiverData careGiverData;
+ private BroadcastReceiver notification_receiver;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -59,6 +72,19 @@ public class CaregiverDashActivity extends AppCompatActivity implements
watchSubscription();
}, true);
+ // NOTIFICATION RECEIVER
+ notification_receiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String content_type = intent.getStringExtra(CONTENT_TYPE_KEY);
+ try {
+ AppUtil.showBottomAlert(CaregiverDashActivity.this, content_type, intent);
+ }catch (Exception e){
+ // do nothing
+ }
+ }
+ };
+ registerReceiver(notification_receiver, new IntentFilter(AppUtil.NOTIFICATION_ACTION));
}
@Override
@@ -74,18 +100,24 @@ public class CaregiverDashActivity extends AppCompatActivity implements
@Override
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("chat");
- if (fragment != null){
- if (fragment instanceof ChatFragment){
+ if (fragment != null) {
+ if (fragment instanceof ChatFragment) {
binding.bottomNav.selectMenuItem(MenuItem.DASHBOARD);
onBottomNavItemSelected(MenuItem.DASHBOARD);
- }else{
+ } else {
super.onBackPressed();
}
- }else{
+ } else {
super.onBackPressed();
}
}
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ unregisterReceiver(notification_receiver);
+ }
+
private void initViews() {
// viewmodel
@@ -105,21 +137,21 @@ public class CaregiverDashActivity extends AppCompatActivity implements
.inject();
binding.bottomNav.setItemSelectListener(this);
-
+
}
private void clickEvents() {
// menu click events
menuBinding.close.setOnClickListener(v -> {
- if (viewModel.slidingRootNav.isMenuOpened()){
+ if (viewModel.slidingRootNav.isMenuOpened()) {
viewModel.slidingRootNav.closeMenu(true);
}
});
// content click events
binding.tint.setOnClickListener(v -> {
- if (viewModel.slidingRootNav.isMenuOpened()){
+ if (viewModel.slidingRootNav.isMenuOpened()) {
viewModel.slidingRootNav.closeMenu(true);
binding.tint.setVisibility(View.GONE);
}
@@ -152,9 +184,9 @@ public class CaregiverDashActivity extends AppCompatActivity implements
}
- private void watchSubscription(){
- if (careGiverData != null){
- if (careGiverData.isCaregiverTakeSubscription != 1){
+ private void watchSubscription() {
+ if (careGiverData != null) {
+ if (careGiverData.isCaregiverTakeSubscription != 1) {
// user has not subscribed yet
Intent intent = new Intent(this, CgSubscriptionActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -167,14 +199,13 @@ public class CaregiverDashActivity extends AppCompatActivity implements
// initializing dashboard fragment
replaceFragment(new CgDashBoardFragment(), "dashboard");
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// requestPermission will show the native Android notification permission prompt.
OneSignal.getNotifications().requestPermission(true, Continue.with(r -> {
if (r.isSuccess()) {
if (r.getData() != null) {
// `requestPermission` completed successfully and the user has accepted permission
- }
- else {
+ } else {
// `requestPermission` completed successfully but the user has rejected permission
}
}
@@ -183,12 +214,12 @@ public class CaregiverDashActivity extends AppCompatActivity implements
}
private void setLayoutDetails() {
- if (careGiverData == null || careGiverData.patientDetails == null){
+ if (careGiverData == null || careGiverData.patientDetails == null) {
return;
}
menuBinding.name.setText(careGiverData.first_name);
- if (careGiverData.profile_photo != null){
+ if (careGiverData.profile_photo != null) {
Glide.with(this)
.load(AppUtil.IMAGE_BASE_URL + careGiverData.profile_photo)
.placeholder(android.R.color.darker_gray)
@@ -202,9 +233,9 @@ public class CaregiverDashActivity extends AppCompatActivity implements
if (fragment instanceof CgDashBoardFragment) {
String first_name = "";
- if (careGiverData != null && careGiverData.first_name != null){
+ if (careGiverData != null && careGiverData.first_name != null) {
String[] name = careGiverData.first_name.split(" ");
- if (name.length > 0){
+ if (name.length > 0) {
first_name = name[0];
}
}
@@ -215,7 +246,7 @@ public class CaregiverDashActivity extends AppCompatActivity implements
}
- private void replaceFragment(Fragment fragment, String tag){
+ private void replaceFragment(Fragment fragment, String tag) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fcv_cg_home, fragment, tag)
.commitAllowingStateLoss();
@@ -229,10 +260,10 @@ public class CaregiverDashActivity extends AppCompatActivity implements
@Override
public void onDragEnd(boolean isMenuOpened) {
- if (isMenuOpened){
+ if (isMenuOpened) {
binding.getRoot().setRadius(30);
binding.tint.setVisibility(View.VISIBLE);
- }else{
+ } else {
binding.getRoot().setRadius(0);
binding.tint.setVisibility(View.GONE);
}
@@ -240,7 +271,7 @@ public class CaregiverDashActivity extends AppCompatActivity implements
@Override
public void onBottomNavItemSelected(MenuItem selectedItem) {
- if (selectedItem == MenuItem.DASHBOARD){
+ if (selectedItem == MenuItem.DASHBOARD) {
replaceFragment(new CgDashBoardFragment(), "dashboard");
// setting up toolbar accordingly
@@ -251,16 +282,16 @@ public class CaregiverDashActivity extends AppCompatActivity implements
binding.toolbar.setNavigationIconTint(getResources().getColor(R.color.black));
String first_name = "";
- if (careGiverData != null && careGiverData.first_name != null){
+ if (careGiverData != null && careGiverData.first_name != null) {
String[] name = careGiverData.first_name.split(" ");
- if (name.length > 0){
+ if (name.length > 0) {
first_name = name[0];
}
}
binding.toolbar.setTitle("Welcome " + first_name);
- }else if (selectedItem == MenuItem.MY_PATIENT){
+ } else if (selectedItem == MenuItem.MY_PATIENT) {
replaceFragment(new MyPatientFragment(), "my_patient");
// setting up toolbar accordingly
@@ -270,7 +301,7 @@ public class CaregiverDashActivity extends AppCompatActivity implements
binding.toolbar.setTitle(null);
binding.toolbar.setNavigationIcon(AppCompatResources.getDrawable(this, R.drawable.ic_menu));
binding.toolbar.setNavigationIconTint(getResources().getColor(R.color.white));
- }else if (selectedItem == MenuItem.CHATS){
+ } else if (selectedItem == MenuItem.CHATS) {
replaceFragment(new ChatFragment(), "chat");
binding.toolbar.setVisibility(View.GONE);
diff --git a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java
index 537b638..305130f 100644
--- a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java
@@ -1,11 +1,15 @@
package com.ssb.simplitend.caregiverdashboard.fragments;
+import static com.ssb.simplitend.apputils.NotificationService.CONTENT_TYPE_KEY;
import static com.ssb.simplitend.articles.ArticleShowerActivity.ARTICLE_TITLE;
import static com.ssb.simplitend.articles.ArticleShowerActivity.ARTICLE_URL_KEY;
import static com.ssb.simplitend.cg_geofencing.CgGeoFencingActivity.GEOFENCE_DETAILS_KEY;
import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
+import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
@@ -69,6 +73,8 @@ public class CgDashBoardFragment extends Fragment implements
private PatientData patientData;
private ProgressDialog progressDialog;
private GoogleMap mGoogleMap;
+
+ private BroadcastReceiver notification_receiver;
public CgDashBoardFragment(){
// required empty
@@ -84,11 +90,27 @@ public class CgDashBoardFragment extends Fragment implements
progressDialog = new ProgressDialog(requireContext());
+ notification_receiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String content_type = intent.getStringExtra(CONTENT_TYPE_KEY);
+
+ loadReminders();
+ loadActivities();
+// if (Constants.ACTIVITY_TIME.equals(content_type)){
+// loadArticles();
+// }else if (Constants.MEDICINE_TIME.equals(content_type)){
+// loadReminders();
+// }
+ }
+ };
+
CaregiverDataCache.getCaregiverData(requireActivity(), (careGiverData1 -> {
this.careGiverData = careGiverData1;
loadReminders();
loadActivities();
+ requireContext().registerReceiver(notification_receiver, new IntentFilter(AppUtil.NOTIFICATION_ACTION));
}), true);
initViews();
@@ -112,6 +134,12 @@ public class CgDashBoardFragment extends Fragment implements
}), true);
}
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ requireContext().unregisterReceiver(notification_receiver);
+ }
+
private void loadActivities() {
if (careGiverData == null) return;
@@ -181,6 +209,24 @@ public class CgDashBoardFragment extends Fragment implements
Intent intent = new Intent(requireActivity(), ArticlesActivity.class);
startActivity(intent);
});
+
+ binding.refreshBtn.setOnClickListener(v -> {
+ binding.refreshBtn.setVisibility(View.GONE);
+ binding.refreshProgress.setVisibility(View.VISIBLE);
+
+ viewModel.ongoingActivityText = getString(R.string.loading);
+ viewModel.upcomingActivityText = getString(R.string.loading);
+ viewModel.upcomingReminderText = getString(R.string.loading);
+ viewModel.dailyReminderText = getString(R.string.loading);
+
+ binding.upcomingActivity.setText(viewModel.upcomingActivityText);
+ binding.onGoingActivity.setText(viewModel.ongoingActivityText);
+ binding.nearestReminder.setText(viewModel.upcomingReminderText);
+ binding.dailyReminder.setText(viewModel.dailyReminderText);
+
+ loadReminders();
+ loadActivities();
+ });
}
public void setArticleDetails(ArticleResult articleResult){
@@ -341,6 +387,9 @@ public class CgDashBoardFragment extends Fragment implements
@Override
public void onFetchRemindersListFailed(Throwable t, String message) {
+ binding.refreshProgress.setVisibility(View.GONE);
+ binding.refreshBtn.setVisibility(View.VISIBLE);
+
binding.nearestReminder.setText(R.string.couldnt_load_data);
binding.dailyReminder.setText(R.string.couldnt_load_data);
@@ -352,6 +401,9 @@ public class CgDashBoardFragment extends Fragment implements
public void nearestReminder(NearestReminder nearestReminder) {
Log.d("aditya", "nearestReminder: " + nearestReminder);
+ binding.refreshProgress.setVisibility(View.GONE);
+ binding.refreshBtn.setVisibility(View.VISIBLE);
+
try {
// daily routine setting
String daily_r_txt;
@@ -442,6 +494,9 @@ public class CgDashBoardFragment extends Fragment implements
@Override
public void onRoutinesFetchedFailed(Throwable t, String message) {
+ binding.refreshProgress.setVisibility(View.GONE);
+ binding.refreshBtn.setVisibility(View.VISIBLE);
+
binding.upcomingActivity.setText(R.string.couldnt_load_data);
binding.onGoingActivity.setText(R.string.couldnt_load_data);
@@ -451,6 +506,9 @@ public class CgDashBoardFragment extends Fragment implements
@Override
public void nearestActivity(NearestActivity nearestActivity) {
+ binding.refreshProgress.setVisibility(View.GONE);
+ binding.refreshBtn.setVisibility(View.VISIBLE);
+
if (nearestActivity.ongoing_activity_name != null){
binding.onGoingActivity.setText(nearestActivity.ongoing_activity_name);
}else{
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/AddContactFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/AddContactFragment.java
index 7daa9c0..b600903 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/AddContactFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/AddContactFragment.java
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.PatientDataCache;
import com.ssb.simplitend.databinding.AddContactFragmentBinding;
import com.ssb.simplitend.databinding.DoneBottomsheetBinding;
import com.ssb.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.AddContactAdapter;
@@ -127,6 +128,8 @@ public class AddContactFragment extends Fragment implements WelcomeContracts.Con
contactList.add(response.contact_data);
}
+ PatientDataCache.setContactList(new ArrayList<>(contactList));
+
for (int i = contactList.size(); i<10; i++){
contactList.add(new ContactData(-1));
}
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 729b03d..1ac2385 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
@@ -7,10 +7,8 @@ import static com.ssb.simplitend.welcome.welcomepatient.fragments.register.ReAct
import static com.ssb.simplitend.welcome.welcomepatient.fragments.register.ReActivateFragment.TOKEN_KEY;
import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -24,9 +22,9 @@ import androidx.navigation.Navigation;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.CaregiverDataCache;
import com.ssb.simplitend.apputils.PatientDataCache;
import com.ssb.simplitend.apputils.RetrofitHelper;
-import com.ssb.simplitend.apputils.CaregiverDataCache;
import com.ssb.simplitend.caregiverdashboard.activities.CaregiverDashActivity;
import com.ssb.simplitend.caregiverdashboard.activities.deactivateacc.AccountPresenter;
import com.ssb.simplitend.databinding.SplashFragmentBinding;
diff --git a/app/src/main/res/drawable/ic_refresh.png b/app/src/main/res/drawable/ic_refresh.png
new file mode 100644
index 0000000..b9af648
Binary files /dev/null and b/app/src/main/res/drawable/ic_refresh.png differ
diff --git a/app/src/main/res/drawable/img_activity_time.xml b/app/src/main/res/drawable/img_activity_time.xml
new file mode 100644
index 0000000..e1ff372
--- /dev/null
+++ b/app/src/main/res/drawable/img_activity_time.xml
@@ -0,0 +1,691 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/img_medication_time.xml b/app/src/main/res/drawable/img_medication_time.xml
new file mode 100644
index 0000000..8341cc5
--- /dev/null
+++ b/app/src/main/res/drawable/img_medication_time.xml
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/img_out_of_geo.xml b/app/src/main/res/drawable/img_out_of_geo.xml
new file mode 100644
index 0000000..ce9b2d8
--- /dev/null
+++ b/app/src/main/res/drawable/img_out_of_geo.xml
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_fua.xml b/app/src/main/res/layout/activity_fua.xml
index 8e3afbc..4cd074c 100644
--- a/app/src/main/res/layout/activity_fua.xml
+++ b/app/src/main/res/layout/activity_fua.xml
@@ -38,7 +38,7 @@
android:layout_height="match_parent"
android:layout_below="@id/title"
android:layout_above="@id/done_btn"
- android:layout_marginTop="15dp"
+ android:layout_marginTop="5dp"
android:layout_marginHorizontal="15dp"
>
@@ -50,13 +50,51 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+
+
@@ -91,6 +129,8 @@
android:layout_weight="5"
android:layout_marginVertical="5dp"
android:nestedScrollingEnabled="true"
+ android:scrollbars="vertical"
+ android:fadeScrollbars="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -104,11 +144,11 @@
android:id="@+id/done_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginVertical="25dp"
+ android:layout_marginBottom="15dp"
android:layout_marginHorizontal="15dp"
android:backgroundTint="@color/color_primary"
- android:layout_marginTop="50dp"
- android:text="Done"
+ android:layout_marginTop="5dp"
+ android:text="@string/done"
android:textColor="@color/white"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout/bottom_sheet_alert.xml b/app/src/main/res/layout/bottom_sheet_alert.xml
new file mode 100644
index 0000000..feed026
--- /dev/null
+++ b/app/src/main/res/layout/bottom_sheet_alert.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/caregiver_dash_fragment.xml b/app/src/main/res/layout/caregiver_dash_fragment.xml
index 7839484..e32d9f7 100644
--- a/app/src/main/res/layout/caregiver_dash_fragment.xml
+++ b/app/src/main/res/layout/caregiver_dash_fragment.xml
@@ -80,19 +80,50 @@
android:layout_marginVertical="10dp"
android:orientation="vertical">
-
- android:text="@string/none"
- android:fontFamily="@font/nunito_semibold"
- android:textColor="@color/black"
- android:textSize="@dimen/_16ssp"
+
+ android:text="@string/none"
+ android:fontFamily="@font/nunito_semibold"
+ android:textColor="@color/black"
+ android:textSize="@dimen/_16ssp"
+
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:layout_centerVertical="true"
+ />
+
+
+
+
+
+
+
Call and message your loved ones
Select number to cal or message
Call
+ No frequently used apps added\nPlease select an app from below list to unlock.
+ refresh
+ illustration
\ No newline at end of file