From 7cf5b72a0de205e8681983f5f8f665e0d6aca482 Mon Sep 17 00:00:00 2001 From: angrezichatterbox Date: Wed, 11 Dec 2024 00:07:43 +0530 Subject: [PATCH] feat:Added SnackBar for Retry and User Info --- .../commons/navtab/MoreBottomSheetFragment.kt | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt index 60532c091..a52f0dbd9 100644 --- a/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/navtab/MoreBottomSheetFragment.kt @@ -14,6 +14,7 @@ import android.net.wifi.WifiManager import android.os.Build import android.os.Bundle import android.telephony.TelephonyManager +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -21,6 +22,7 @@ import android.widget.Toast import androidx.annotation.RequiresApi import androidx.appcompat.app.AlertDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import com.google.android.material.snackbar.Snackbar import fr.free.nrw.commons.AboutActivity import fr.free.nrw.commons.BuildConfig import fr.free.nrw.commons.CommonsApplication @@ -43,6 +45,7 @@ import fr.free.nrw.commons.settings.SettingsActivity import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers +import java.lang.ref.WeakReference import javax.inject.Inject import javax.inject.Named @@ -179,7 +182,24 @@ class MoreBottomSheetFragment : BottomSheetDialogFragment() { val feedbackContentCreator = FeedbackContentCreator(requireContext(), feedback) if (!isInternetConnectionAvailable(requireContext())) { - Toast.makeText(requireContext(), R.string.error_feedback, Toast.LENGTH_LONG).show() + val rootView = activity?.findViewById(android.R.id.content) + ?: activity?.window?.decorView?.rootView + + rootView?.let { + Snackbar.make(it, R.string.error_feedback, Snackbar.LENGTH_LONG) + .setAction("Retry") { + if (isAdded && context != null) { + uploadFeedback(feedback) + } else { + Toast.makeText( + it.context, + R.string.error_feedback, + Toast.LENGTH_SHORT + ).show() + } + } + .show() + } return } @@ -195,14 +215,17 @@ class MoreBottomSheetFragment : BottomSheetDialogFragment() { Single.defer { single } .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe { success -> + .subscribe({ success -> val messageResId = if (success) { R.string.thanks_feedback } else { R.string.error_feedback } Toast.makeText(requireContext(), getString(messageResId), Toast.LENGTH_SHORT).show() - } + }, { error -> + error.printStackTrace() + Toast.makeText(requireContext(), R.string.error_feedback, Toast.LENGTH_SHORT).show() + }) } /**