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; 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; import androidx.annotation.RawRes; import com.bumptech.glide.Glide; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.ssb.simplitend.R; import com.ssb.simplitend.databinding.DecisionBottomsheetBinding; import com.ssb.simplitend.databinding.DoneBottomsheetBinding; public abstract class AppUtil { private static final String TAG = "AppUtil"; // fields public static final String USER_DETAILS = "user_details"; public static final String CAREGIVER_DETAILS = "user_details"; public static final String USER_TOKEN = "user_token"; public static final String CAREGIVER_TOKEN = "user_token"; public static final String PATIENT_UID = "patient_uid"; // util functions // closes keyboard public static void closeKeyboard(Activity activity){ if (activity != null){ View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } } // show decision dialog public static void showSOSDecision(@NonNull Context context, @NonNull String decisionText, @NonNull String positiveText, @NonNull String negativeText, View.OnClickListener positiveClickListener, View.OnClickListener negativeClickListener) { DecisionBottomsheetBinding binding = DecisionBottomsheetBinding.inflate(LayoutInflater.from(context)); BottomSheetDialog bsd = new BottomSheetDialog(context, R.style.BottomSheetDialog); bsd.setContentView(binding.getRoot()); bsd.setCancelable(true); binding.text.setText(decisionText); binding.positiveBtn.setText(positiveText); binding.negativeBtn.setText(negativeText); binding.negativeBtn.setOnClickListener(v -> { bsd.dismiss(); negativeClickListener.onClick(v); }); binding.positiveBtn.setOnClickListener(v -> { bsd.dismiss(); positiveClickListener.onClick(v); }); bsd.show(); } public static void showAnimateDBS(@NonNull Context context, @NonNull String title, @RawRes int rawRes, long doneInterval, @NonNull View.OnClickListener doneListener){ DoneBottomsheetBinding binding = DoneBottomsheetBinding.inflate(LayoutInflater.from(context)); BottomSheetDialog bsd = new BottomSheetDialog(context, R.style.BottomSheetDialog); bsd.setContentView(binding.getRoot()); bsd.setCancelable(false); binding.text.setText(title); Glide.with(context) .asGif() .load(rawRes) .into(binding.doneAnim); bsd.show(); new Handler().postDelayed(() -> { bsd.dismiss(); doneListener.onClick(null); }, doneInterval); } // Show alert dialog public static synchronized void showAlert(@NonNull Context context, @NonNull String title, @NonNull String message, @NonNull String positiveText, @NonNull DialogInterface.OnClickListener positiveClickListener, String negativeText, DialogInterface.OnClickListener negativeClickListener) { AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context); alertBuilder.setTitle(title); alertBuilder.setMessage(message); alertBuilder.setPositiveButton(positiveText, positiveClickListener /* Call back*/); if (negativeText != null && negativeClickListener != null) { // Negative button alertBuilder.setNegativeButton(negativeText, negativeClickListener); } alertBuilder.create().show(); // Showing alert dialog } public static void saveUserCache(String token, int patient_uid, Context context){ SharedPreferences sp = context.getSharedPreferences(USER_DETAILS, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(USER_TOKEN, token); editor.putInt(PATIENT_UID, patient_uid); editor.apply(); Log.d(TAG, "saveToken: user token saved successful"); } public static String getUserToken(Context context){ SharedPreferences sp = context.getSharedPreferences(USER_DETAILS, Context.MODE_PRIVATE); return sp.getString(USER_TOKEN, ""); } public static int getPatientUid(Context context){ SharedPreferences sp = context.getSharedPreferences(USER_DETAILS, Context.MODE_PRIVATE); return sp.getInt(PATIENT_UID, -1); } public static void saveCgData(String token, Context context){ SharedPreferences sp = context.getSharedPreferences(CAREGIVER_DETAILS, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(CAREGIVER_TOKEN, token); editor.apply(); Log.d(TAG, "saveToken: caregiver token saved successful"); } }