From e081c856cd10c97ce6ca61cb2333e0016443c064 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Wed, 14 Jun 2023 19:08:03 +0530 Subject: [PATCH 1/3] Fixes of ProgressDialog is deprecated --- .../kiwixmobile/webserver/ZimHostFragment.kt | 22 +++++++----- app/src/main/res/layout/item_progressbar.xml | 34 +++++++++++++++++++ .../core/utils/dialog/AlertDialogShower.kt | 8 +++-- .../core/utils/dialog/KiwixDialog.kt | 11 +++++- 4 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 app/src/main/res/layout/item_progressbar.xml diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt index 02e2a29da..cea59531f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt @@ -20,7 +20,8 @@ package org.kiwix.kiwixmobile.webserver import android.Manifest import android.Manifest.permission.POST_NOTIFICATIONS -import android.app.ProgressDialog +import android.annotation.SuppressLint +import android.app.Dialog import android.content.ComponentName import android.content.Context import android.content.Intent @@ -54,6 +55,7 @@ import org.kiwix.kiwixmobile.core.utils.ServerUtils import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog +import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog.StartServer import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.SelectionMode import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BookOnDiskDelegate import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskAdapter @@ -85,7 +87,7 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View { private var hotspotService: HotspotService? = null private var ip: String? = null private lateinit var serviceConnection: ServiceConnection - private var progressDialog: ProgressDialog? = null + private var dialog: Dialog? = null private var activityZimHostBinding: ActivityZimHostBinding? = null private val selectedBooksPath: ArrayList get() { @@ -271,12 +273,14 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View { } } + @SuppressLint("InflateParams") private fun startKiwixHotspot() { - progressDialog = ProgressDialog.show( - requireActivity(), - getString(R.string.progress_dialog_starting_server), "", - true - ) + if (dialog == null) { + val dialogView: View = + layoutInflater.inflate(R.layout.item_progressbar, null) + dialog = alertDialogShower.create(StartServer { dialogView }) + } + dialog?.show() requireActivity().startService(createHotspotIntent(ACTION_CHECK_IP_ADDRESS)) } @@ -450,7 +454,7 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View { } override fun onIpAddressValid() { - progressDialog?.dismiss() + dialog?.dismiss() requireActivity().startService( createHotspotIntent(ACTION_START_SERVER).putStringArrayListExtra( SELECTED_ZIM_PATHS_KEY, selectedBooksPath @@ -459,7 +463,7 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View { } override fun onIpAddressInvalid() { - progressDialog?.dismiss() + dialog?.dismiss() toast(R.string.server_failed_message, Toast.LENGTH_SHORT) } diff --git a/app/src/main/res/layout/item_progressbar.xml b/app/src/main/res/layout/item_progressbar.xml new file mode 100644 index 000000000..2d8754ce1 --- /dev/null +++ b/app/src/main/res/layout/item_progressbar.xml @@ -0,0 +1,34 @@ + + + + + + + diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt index 09adf1a33..a696b33a9 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt @@ -54,9 +54,11 @@ class AlertDialogShower @Inject constructor(private val activity: Activity) : dialog.icon?.let(this::setIcon) dialog.message?.let { setMessage(activity.getString(it, *bodyArguments(dialog))) } - setPositiveButton(dialog.positiveMessage) { _, _ -> - clickListeners.getOrNull(0) - ?.invoke() + dialog.positiveMessage?.let { + setPositiveButton(it) { _, _ -> + clickListeners.getOrNull(0) + ?.invoke() + } } dialog.negativeMessage?.let { setNegativeButton(it) { _, _ -> diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt index 7a82c35f5..e677bb570 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt @@ -22,10 +22,11 @@ import android.app.Activity import android.view.View import org.kiwix.kiwixmobile.core.R +@Suppress("LongParameterList") sealed class KiwixDialog( val title: Int?, val message: Int?, - val positiveMessage: Int, + val positiveMessage: Int?, val negativeMessage: Int?, val cancelable: Boolean = true, val icon: Int? = null, @@ -227,6 +228,14 @@ sealed class KiwixDialog( getView = customGetView ) + data class StartServer(val customGetView: (() -> View)?) : KiwixDialog( + R.string.progress_dialog_starting_server, + null, + null, + null, + getView = customGetView + ) + object NotesDiscardConfirmation : KiwixDialog( null, R.string.confirmation_alert_dialog_message, From 543d336d4c588c13f8defea56e668ad54a7c2f9b Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Tue, 20 Jun 2023 11:01:56 +0530 Subject: [PATCH 2/3] Changes after review --- .../kiwixmobile/core/utils/dialog/AlertDialogShower.kt | 8 +++----- .../kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt | 4 ++-- core/src/main/res/values/strings.xml | 1 + 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt index a696b33a9..09adf1a33 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/AlertDialogShower.kt @@ -54,11 +54,9 @@ class AlertDialogShower @Inject constructor(private val activity: Activity) : dialog.icon?.let(this::setIcon) dialog.message?.let { setMessage(activity.getString(it, *bodyArguments(dialog))) } - dialog.positiveMessage?.let { - setPositiveButton(it) { _, _ -> - clickListeners.getOrNull(0) - ?.invoke() - } + setPositiveButton(dialog.positiveMessage) { _, _ -> + clickListeners.getOrNull(0) + ?.invoke() } dialog.negativeMessage?.let { setNegativeButton(it) { _, _ -> diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt index e677bb570..b9cb22a67 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/dialog/KiwixDialog.kt @@ -26,7 +26,7 @@ import org.kiwix.kiwixmobile.core.R sealed class KiwixDialog( val title: Int?, val message: Int?, - val positiveMessage: Int?, + val positiveMessage: Int, val negativeMessage: Int?, val cancelable: Boolean = true, val icon: Int? = null, @@ -231,7 +231,7 @@ sealed class KiwixDialog( data class StartServer(val customGetView: (() -> View)?) : KiwixDialog( R.string.progress_dialog_starting_server, null, - null, + R.string.empty_string, null, getView = customGetView ) diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 45ca4c023..2016ae4b7 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -338,4 +338,5 @@ Navigation History Cleared Go to Settings To perform this action, please grant notification access + From 5256af49cd6a2133c2e3f61b31aee870b47d4569 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Tue, 20 Jun 2023 13:07:24 +0530 Subject: [PATCH 3/3] The item_progressbar.xml file has been renamed to item_custom_spinner.xml for better readability of the file --- .../java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt | 2 +- .../layout/{item_progressbar.xml => item_custom_spinner.xml} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename app/src/main/res/layout/{item_progressbar.xml => item_custom_spinner.xml} (100%) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt index cea59531f..5c776c8d9 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostFragment.kt @@ -277,7 +277,7 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View { private fun startKiwixHotspot() { if (dialog == null) { val dialogView: View = - layoutInflater.inflate(R.layout.item_progressbar, null) + layoutInflater.inflate(R.layout.item_custom_spinner, null) dialog = alertDialogShower.create(StartServer { dialogView }) } dialog?.show() diff --git a/app/src/main/res/layout/item_progressbar.xml b/app/src/main/res/layout/item_custom_spinner.xml similarity index 100% rename from app/src/main/res/layout/item_progressbar.xml rename to app/src/main/res/layout/item_custom_spinner.xml