From 1f415e8f2d9e4bf0beea36e1492b91876a8ceee2 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Sat, 4 Apr 2020 22:08:26 +0200 Subject: [PATCH 01/19] Converted DialogUtil to Kotlin --- .../fr/free/nrw/commons/utils/DialogUtil.java | 177 ------------------ .../fr/free/nrw/commons/utils/DialogUtil.kt | 175 +++++++++++++++++ 2 files changed, 175 insertions(+), 177 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.java create mode 100644 app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.java b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.java deleted file mode 100644 index 25fae6e8ee..0000000000 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.java +++ /dev/null @@ -1,177 +0,0 @@ -package fr.free.nrw.commons.utils; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.content.DialogInterface; -import android.view.View; - -import org.apache.commons.lang3.StringUtils; - -import fr.free.nrw.commons.R; -import timber.log.Timber; - -public class DialogUtil { - - /** - * Shows a dialog safely. - * @param activity the activity - * @param dialog the dialog to be shown - */ - private static void showSafely(Activity activity, Dialog dialog) { - if (activity == null || dialog == null) { - Timber.d("Show called with null activity / dialog. Ignoring."); - return; - } - - boolean isActivityDestroyed = activity.isDestroyed(); - if (activity.isFinishing() || isActivityDestroyed) { - Timber.e("Activity is not running. Could not show dialog. "); - return; - } - try { - dialog.show(); - } catch (IllegalStateException e) { - Timber.e(e, "Could not show dialog."); - } - } - - public static void showAlertDialog(Activity activity, - String title, - String message, - final Runnable onPositiveBtnClick, - final Runnable onNegativeBtnClick) { - showAlertDialog(activity, - title, - message, - activity.getString(R.string.yes), - activity.getString(R.string.no), - onPositiveBtnClick, - onNegativeBtnClick); - } - - public static void showAlertDialog(Activity activity, - String title, - String message, - String positiveButtonText, - String negativeButtonText, - final Runnable onPositiveBtnClick, - final Runnable onNegativeBtnClick) { - AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setTitle(title); - builder.setMessage(message); - - if (!StringUtils.isBlank(positiveButtonText)) { - builder.setPositiveButton(positiveButtonText, (dialogInterface, i) -> { - dialogInterface.dismiss(); - if (onPositiveBtnClick != null) { - onPositiveBtnClick.run(); - } - }); - } - - if (!StringUtils.isBlank(negativeButtonText)) { - builder.setNegativeButton(negativeButtonText, (DialogInterface dialogInterface, int i) -> { - dialogInterface.dismiss(); - if (onNegativeBtnClick != null) { - onNegativeBtnClick.run(); - } - }); - } - - AlertDialog dialog = builder.create(); - showSafely(activity, dialog); - } - - /* - Shows alert dialog with custom view - */ - public static void showAlertDialog(Activity activity, - String title, - String message, - final Runnable onPositiveBtnClick, - final Runnable onNegativeBtnClick, - View customView, - boolean cancelable) { - showAlertDialog(activity, - title, - message, - activity.getString(R.string.yes), - activity.getString(R.string.no), - onPositiveBtnClick, - onNegativeBtnClick, - customView, - cancelable); - } - - /* - Shows alert dialog with custom view - */ - private static void showAlertDialog(Activity activity, - String title, - String message, - String positiveButtonText, - String negativeButtonText, - final Runnable onPositiveBtnClick, - final Runnable onNegativeBtnClick, - View customView, - boolean cancelable) { - // If the custom view already has a parent, there is already a dialog showing with the view - // This happens for on resume - return to avoid creating a second dialog - the first one - // will still show - if (customView != null && customView.getParent() != null) { - return; - } - - AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setTitle(title); - builder.setMessage(message); - builder.setView(customView); - builder.setCancelable(cancelable); - - builder.setPositiveButton(positiveButtonText, (dialogInterface, i) -> { - dialogInterface.dismiss(); - if (onPositiveBtnClick != null) { - onPositiveBtnClick.run(); - } - }); - - builder.setNegativeButton(negativeButtonText, (DialogInterface dialogInterface, int i) -> { - dialogInterface.dismiss(); - if (onNegativeBtnClick != null) { - onNegativeBtnClick.run(); - } - }); - - AlertDialog dialog = builder.create(); - showSafely(activity, dialog); - } - - - /** - * show a dialog with just a positive button - * @param activity - * @param title - * @param message - * @param positiveButtonText - * @param positiveButtonClick - * @param cancellable - */ - public static void showAlertDialog(Activity activity, String title, String message, String positiveButtonText, final Runnable positiveButtonClick, boolean cancellable) { - AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setTitle(title); - builder.setMessage(message); - builder.setCancelable(cancellable); - - builder.setPositiveButton(positiveButtonText, (dialogInterface, i) -> { - dialogInterface.dismiss(); - if (positiveButtonClick != null) { - positiveButtonClick.run(); - } - }); - - AlertDialog dialog = builder.create(); - showSafely(activity, dialog); - } - -} diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt new file mode 100644 index 0000000000..185f8e54db --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -0,0 +1,175 @@ +package fr.free.nrw.commons.utils + +import android.app.Activity +import android.app.AlertDialog +import android.app.Dialog +import android.content.DialogInterface +import android.view.View +import fr.free.nrw.commons.R +import org.apache.commons.lang3.StringUtils +import timber.log.Timber + +object DialogUtil { + /** + * Shows a dialog safely. + * @param activity the activity + * @param dialog the dialog to be shown + */ + private fun showSafely(activity: Activity, dialog: Dialog) { + val isActivityDestroyed = activity.isDestroyed + if (activity.isFinishing || isActivityDestroyed) { + Timber.e("Activity is not running. Could not show dialog. ") + return + } + try { + dialog.show() + } catch (e: IllegalStateException) { + Timber.e(e, "Could not show dialog.") + } + } + + @JvmStatic fun showAlertDialog( + activity: Activity, + title: String, + message: String, + onPositiveBtnClick: Runnable, + onNegativeBtnClick: Runnable + ) { + showAlertDialog( + activity, + title, + message, + activity.getString(R.string.yes), + activity.getString(R.string.no), + onPositiveBtnClick, + onNegativeBtnClick + ) + } + + @JvmStatic + fun showAlertDialog( + activity: Activity, + title: String, + message: String, + positiveButtonText: String, + negativeButtonText: String, + onPositiveBtnClick: Runnable, + onNegativeBtnClick: Runnable + ) { + val builder = AlertDialog.Builder(activity) + builder.setTitle(title) + builder.setMessage(message) + if (!StringUtils.isBlank(positiveButtonText)) { + builder.setPositiveButton( + positiveButtonText + ) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + onPositiveBtnClick.run() + } + } + if (!StringUtils.isBlank(negativeButtonText)) { + builder.setNegativeButton( + negativeButtonText + ) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + onNegativeBtnClick.run() + } + } + val dialog = builder.create() + showSafely(activity, dialog) + } + + /* + Shows alert dialog with custom view + */ + @JvmStatic + fun showAlertDialog( + activity: Activity, title: String, message: String, onPositiveBtnClick: Runnable, + onNegativeBtnClick: Runnable, + customView: View, + cancelable: Boolean + ) { + showAlertDialog( + activity, + title, + message, + activity.getString(R.string.yes), + activity.getString(R.string.no), + onPositiveBtnClick, + onNegativeBtnClick, + customView, + cancelable + ) + } + + /* + Shows alert dialog with custom view + */ + private fun showAlertDialog( + activity: Activity, + title: String, + message: String, + positiveButtonText: String, + negativeButtonText: String, + onPositiveBtnClick: Runnable, + onNegativeBtnClick: Runnable, + customView: View, + cancelable: Boolean + ) { + // If the custom view already has a parent, there is already a dialog showing with the view + // This happens for on resume - return to avoid creating a second dialog - the first one + // will still show + + val builder = AlertDialog.Builder(activity) + builder.setTitle(title) + builder.setMessage(message) + builder.setView(customView) + builder.setCancelable(cancelable) + builder.setPositiveButton( + positiveButtonText + ) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + onPositiveBtnClick.run() + } + builder.setNegativeButton( + negativeButtonText + ) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + onNegativeBtnClick.run() + } + val dialog = builder.create() + showSafely(activity, dialog) + } + + /** + * show a dialog with just a positive button + * @param activity + * @param title + * @param message + * @param positiveButtonText + * @param positiveButtonClick + * @param cancellable + */ + @JvmStatic + fun showAlertDialog( + activity: Activity, + title: String, + message: String, + positiveButtonText: String, + positiveButtonClick: Runnable, + cancellable: Boolean + ) { + val builder = AlertDialog.Builder(activity) + builder.setTitle(title) + builder.setMessage(message) + builder.setCancelable(cancellable) + builder.setPositiveButton( + positiveButtonText + ) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + positiveButtonClick.run() + } + val dialog = builder.create() + showSafely(activity, dialog) + } +} \ No newline at end of file From bab74e8333d98312726f26713adc9c7dc9e2e097 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 6 Apr 2020 12:29:47 +0200 Subject: [PATCH 02/19] Kotlin syntax and standard changes --- .../fr/free/nrw/commons/utils/DialogUtil.kt | 96 ++++++++++--------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 185f8e54db..8b9f3db642 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -6,7 +6,6 @@ import android.app.Dialog import android.content.DialogInterface import android.view.View import fr.free.nrw.commons.R -import org.apache.commons.lang3.StringUtils import timber.log.Timber object DialogUtil { @@ -15,9 +14,14 @@ object DialogUtil { * @param activity the activity * @param dialog the dialog to be shown */ - private fun showSafely(activity: Activity, dialog: Dialog) { - val isActivityDestroyed = activity.isDestroyed - if (activity.isFinishing || isActivityDestroyed) { + private fun showSafely(activity: Activity?, dialog: Dialog?) { + + if (activity == null || dialog == null) { + Timber.d("Show called with null activity / dialog. Ignoring."); + return; + } + + if (activity.isFinishing || activity.isDestroyed) { Timber.e("Activity is not running. Could not show dialog. ") return } @@ -28,7 +32,8 @@ object DialogUtil { } } - @JvmStatic fun showAlertDialog( + @JvmStatic + fun showAlertDialog( activity: Activity, title: String, message: String, @@ -53,26 +58,23 @@ object DialogUtil { message: String, positiveButtonText: String, negativeButtonText: String, - onPositiveBtnClick: Runnable, - onNegativeBtnClick: Runnable + onPositiveBtnClick: Runnable?, + onNegativeBtnClick: Runnable? ) { - val builder = AlertDialog.Builder(activity) - builder.setTitle(title) - builder.setMessage(message) - if (!StringUtils.isBlank(positiveButtonText)) { - builder.setPositiveButton( - positiveButtonText - ) { dialogInterface: DialogInterface, _: Int -> + val builder = AlertDialog.Builder(activity).apply { + setTitle(title) + setMessage(message) + } + if (positiveButtonText.isBlank()) { + builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> dialogInterface.dismiss() - onPositiveBtnClick.run() + onPositiveBtnClick?.run() } } - if (!StringUtils.isBlank(negativeButtonText)) { - builder.setNegativeButton( - negativeButtonText - ) { dialogInterface: DialogInterface, _: Int -> + if (negativeButtonText.isBlank()) { + builder.setNegativeButton(negativeButtonText) { dialogInterface: DialogInterface, _: Int -> dialogInterface.dismiss() - onNegativeBtnClick.run() + onNegativeBtnClick?.run() } } val dialog = builder.create() @@ -84,7 +86,10 @@ object DialogUtil { */ @JvmStatic fun showAlertDialog( - activity: Activity, title: String, message: String, onPositiveBtnClick: Runnable, + activity: Activity, + title: String, + message: String, + onPositiveBtnClick: Runnable, onNegativeBtnClick: Runnable, customView: View, cancelable: Boolean @@ -111,31 +116,31 @@ object DialogUtil { message: String, positiveButtonText: String, negativeButtonText: String, - onPositiveBtnClick: Runnable, - onNegativeBtnClick: Runnable, - customView: View, + onPositiveBtnClick: Runnable?, + onNegativeBtnClick: Runnable?, + customView: View?, cancelable: Boolean ) { // If the custom view already has a parent, there is already a dialog showing with the view // This happens for on resume - return to avoid creating a second dialog - the first one // will still show + if (customView?.parent != null) { + return; + } - val builder = AlertDialog.Builder(activity) - builder.setTitle(title) - builder.setMessage(message) - builder.setView(customView) - builder.setCancelable(cancelable) - builder.setPositiveButton( - positiveButtonText - ) { dialogInterface: DialogInterface, _: Int -> + val builder = AlertDialog.Builder(activity).apply { + setTitle(title) + setMessage(message) + setView(customView) + setCancelable(cancelable) + } + builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> dialogInterface.dismiss() - onPositiveBtnClick.run() + onPositiveBtnClick?.run() } - builder.setNegativeButton( - negativeButtonText - ) { dialogInterface: DialogInterface, _: Int -> + builder.setNegativeButton(negativeButtonText) { dialogInterface: DialogInterface, _: Int -> dialogInterface.dismiss() - onNegativeBtnClick.run() + onNegativeBtnClick?.run() } val dialog = builder.create() showSafely(activity, dialog) @@ -156,18 +161,17 @@ object DialogUtil { title: String, message: String, positiveButtonText: String, - positiveButtonClick: Runnable, + positiveButtonClick: Runnable?, cancellable: Boolean ) { - val builder = AlertDialog.Builder(activity) - builder.setTitle(title) - builder.setMessage(message) - builder.setCancelable(cancellable) - builder.setPositiveButton( - positiveButtonText - ) { dialogInterface: DialogInterface, _: Int -> + val builder = AlertDialog.Builder(activity).apply { + setTitle(title) + setMessage(message) + setCancelable(cancellable) + } + builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> dialogInterface.dismiss() - positiveButtonClick.run() + positiveButtonClick?.run() } val dialog = builder.create() showSafely(activity, dialog) From f54224e9cbe44c03ecb424f8fb0762e53a5bc83c Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 6 Apr 2020 12:30:51 +0200 Subject: [PATCH 03/19] Removed ; --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 8b9f3db642..f4a402bb74 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -17,8 +17,8 @@ object DialogUtil { private fun showSafely(activity: Activity?, dialog: Dialog?) { if (activity == null || dialog == null) { - Timber.d("Show called with null activity / dialog. Ignoring."); - return; + Timber.d("Show called with null activity / dialog. Ignoring.") + return } if (activity.isFinishing || activity.isDestroyed) { @@ -125,7 +125,7 @@ object DialogUtil { // This happens for on resume - return to avoid creating a second dialog - the first one // will still show if (customView?.parent != null) { - return; + return } val builder = AlertDialog.Builder(activity).apply { From 84bf5e2786e39401bb6c07731bbdfe6797b7133c Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 6 Apr 2020 12:32:30 +0200 Subject: [PATCH 04/19] Added missing null --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index f4a402bb74..1ee692f9e2 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -37,8 +37,8 @@ object DialogUtil { activity: Activity, title: String, message: String, - onPositiveBtnClick: Runnable, - onNegativeBtnClick: Runnable + onPositiveBtnClick: Runnable?, + onNegativeBtnClick: Runnable? ) { showAlertDialog( activity, From 706f983ee8fd6761e872d958b59ae66176d1a9a7 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 6 Apr 2020 12:36:49 +0200 Subject: [PATCH 05/19] Added missing null --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 1ee692f9e2..2b0199062b 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -89,8 +89,8 @@ object DialogUtil { activity: Activity, title: String, message: String, - onPositiveBtnClick: Runnable, - onNegativeBtnClick: Runnable, + onPositiveBtnClick: Runnable?, + onNegativeBtnClick: Runnable?, customView: View, cancelable: Boolean ) { From 90e40d83c48d95087813be4fafc4eb1cdaa6586f Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 6 Apr 2020 14:50:56 +0200 Subject: [PATCH 06/19] Removed unnecessary code --- .../fr/free/nrw/commons/utils/DialogUtil.kt | 58 ++++++++----------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 2b0199062b..20eff6504e 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -61,24 +61,21 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable? ) { - val builder = AlertDialog.Builder(activity).apply { + showSafely(activity, AlertDialog.Builder(activity).apply { setTitle(title) setMessage(message) - } - if (positiveButtonText.isBlank()) { - builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> - dialogInterface.dismiss() - onPositiveBtnClick?.run() + + if (positiveButtonText.isBlank()) { + setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + onPositiveBtnClick?.run() + } } - } - if (negativeButtonText.isBlank()) { - builder.setNegativeButton(negativeButtonText) { dialogInterface: DialogInterface, _: Int -> - dialogInterface.dismiss() - onNegativeBtnClick?.run() + if (negativeButtonText.isBlank()) { + setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> + onNegativeBtnClick?.run() + } } - } - val dialog = builder.create() - showSafely(activity, dialog) + }.create()) } /* @@ -128,22 +125,18 @@ object DialogUtil { return } - val builder = AlertDialog.Builder(activity).apply { + showSafely(activity, AlertDialog.Builder(activity).apply { setTitle(title) setMessage(message) setView(customView) setCancelable(cancelable) - } - builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> - dialogInterface.dismiss() - onPositiveBtnClick?.run() - } - builder.setNegativeButton(negativeButtonText) { dialogInterface: DialogInterface, _: Int -> - dialogInterface.dismiss() - onNegativeBtnClick?.run() - } - val dialog = builder.create() - showSafely(activity, dialog) + setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + onPositiveBtnClick?.run() + } + setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> + onNegativeBtnClick?.run() + } + }.create()) } /** @@ -164,16 +157,13 @@ object DialogUtil { positiveButtonClick: Runnable?, cancellable: Boolean ) { - val builder = AlertDialog.Builder(activity).apply { + showSafely(activity, AlertDialog.Builder(activity).apply { setTitle(title) setMessage(message) setCancelable(cancellable) - } - builder.setPositiveButton(positiveButtonText) { dialogInterface: DialogInterface, _: Int -> - dialogInterface.dismiss() - positiveButtonClick?.run() - } - val dialog = builder.create() - showSafely(activity, dialog) + setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + positiveButtonClick?.run() + } + }.create()) } } \ No newline at end of file From 887cca56b511509e63e61bbd1cdce3889f533f32 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 11:35:03 +0200 Subject: [PATCH 07/19] Reduced functions --- .../fr/free/nrw/commons/utils/DialogUtil.kt | 112 +++++++++--------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 20eff6504e..e3da551ba2 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -61,26 +61,17 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable? ) { - showSafely(activity, AlertDialog.Builder(activity).apply { - setTitle(title) - setMessage(message) - - if (positiveButtonText.isBlank()) { - setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> - onPositiveBtnClick?.run() - } - } - if (negativeButtonText.isBlank()) { - setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> - onNegativeBtnClick?.run() - } - } - }.create()) + showAlertDialog( + activity, + title, + message, + positiveButtonText, + negativeButtonText, + onPositiveBtnClick, + onNegativeBtnClick + ) } - /* - Shows alert dialog with custom view - */ @JvmStatic fun showAlertDialog( activity: Activity, @@ -104,65 +95,76 @@ object DialogUtil { ) } - /* - Shows alert dialog with custom view - */ - private fun showAlertDialog( + @JvmStatic + fun showAlertDialog( activity: Activity, title: String, message: String, - positiveButtonText: String, - negativeButtonText: String, + positiveButtonText: String?, onPositiveBtnClick: Runnable?, - onNegativeBtnClick: Runnable?, - customView: View?, - cancelable: Boolean + cancellable: Boolean ) { - // If the custom view already has a parent, there is already a dialog showing with the view - // This happens for on resume - return to avoid creating a second dialog - the first one - // will still show - if (customView?.parent != null) { - return - } - - showSafely(activity, AlertDialog.Builder(activity).apply { - setTitle(title) - setMessage(message) - setView(customView) - setCancelable(cancelable) - setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> - onPositiveBtnClick?.run() - } - setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> - onNegativeBtnClick?.run() - } - }.create()) + showAlertDialog( + activity, + title, + message, + positiveButtonText, + onPositiveBtnClick, + cancellable + ) } /** - * show a dialog with just a positive button + * show a dialog * @param activity * @param title * @param message * @param positiveButtonText - * @param positiveButtonClick - * @param cancellable + * @param negativeButtonText + * @param onPositiveBtnClick + * @param onNegativeBtnClick + * @param customView + * @param cancelable */ @JvmStatic fun showAlertDialog( activity: Activity, title: String, message: String, - positiveButtonText: String, - positiveButtonClick: Runnable?, - cancellable: Boolean + positiveButtonText: String? = let { "" }, + negativeButtonText: String? = let { "" }, + onPositiveBtnClick: Runnable?, + onNegativeBtnClick: Runnable?, + customView: View? = null, + cancelable: Boolean? = let { false } ) { + + /* If the custom view already has a parent, there is already a dialog showing with the view + * This happens for on resume - return to avoid creating a second dialog - the first one + * will still show + */ + if (customView?.parent != null) { + return + } + showSafely(activity, AlertDialog.Builder(activity).apply { setTitle(title) setMessage(message) - setCancelable(cancellable) - setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> - positiveButtonClick?.run() + setView(customView) + cancelable?.let { setCancelable(it) } + positiveButtonText?.let { + if (positiveButtonText.isBlank()) { + setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + onPositiveBtnClick?.run() + } + } + } + negativeButtonText?.let { + if (negativeButtonText.isBlank()) { + setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> + onNegativeBtnClick?.run() + } + } } }.create()) } From cb89725c5cc400186a27ee3c8ff9c88f4417363b Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 11:41:54 +0200 Subject: [PATCH 08/19] added let to customView --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index e3da551ba2..4a592dfafd 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -135,7 +135,7 @@ object DialogUtil { negativeButtonText: String? = let { "" }, onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, - customView: View? = null, + customView: View? = let { null }, cancelable: Boolean? = let { false } ) { From f5ddf767fc74ab5f6f9ce26ef00388142aadcec9 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 11:43:40 +0200 Subject: [PATCH 09/19] reverted "let" changes --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 4a592dfafd..f64fbecda3 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -135,8 +135,8 @@ object DialogUtil { negativeButtonText: String? = let { "" }, onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, - customView: View? = let { null }, - cancelable: Boolean? = let { false } + customView: View?, + cancelable: Boolean = false ) { /* If the custom view already has a parent, there is already a dialog showing with the view @@ -151,7 +151,7 @@ object DialogUtil { setTitle(title) setMessage(message) setView(customView) - cancelable?.let { setCancelable(it) } + setCancelable(cancelable) positiveButtonText?.let { if (positiveButtonText.isBlank()) { setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> From 97f6f8a6e6b109da325d605cb4c40f5193b7f161 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 11:48:39 +0200 Subject: [PATCH 10/19] reverted "let" changes --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index f64fbecda3..11f30b5172 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -131,11 +131,11 @@ object DialogUtil { activity: Activity, title: String, message: String, - positiveButtonText: String? = let { "" }, - negativeButtonText: String? = let { "" }, + positiveButtonText: String? = null, + negativeButtonText: String? = null, onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, - customView: View?, + customView: View? = null, cancelable: Boolean = false ) { From f5dbafb5e057d267f018b57d70171b36a7cc9fb3 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 12:32:35 +0200 Subject: [PATCH 11/19] removed if-statements --- .../java/fr/free/nrw/commons/utils/DialogUtil.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 11f30b5172..ced08d9046 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -153,17 +153,13 @@ object DialogUtil { setView(customView) setCancelable(cancelable) positiveButtonText?.let { - if (positiveButtonText.isBlank()) { - setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> - onPositiveBtnClick?.run() - } + setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + onPositiveBtnClick?.run() } } negativeButtonText?.let { - if (negativeButtonText.isBlank()) { - setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> - onNegativeBtnClick?.run() - } + setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> + onNegativeBtnClick?.run() } } }.create()) From 759dd60658406f6bb1e294c9f7fa42d1c81233e3 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 14:55:03 +0200 Subject: [PATCH 12/19] replaced with "it" --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index ced08d9046..c4e6370a7d 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -153,12 +153,12 @@ object DialogUtil { setView(customView) setCancelable(cancelable) positiveButtonText?.let { - setPositiveButton(positiveButtonText) { _: DialogInterface, _: Int -> + setPositiveButton(it) { _: DialogInterface, _: Int -> onPositiveBtnClick?.run() } } negativeButtonText?.let { - setNegativeButton(negativeButtonText) { _: DialogInterface, _: Int -> + setNegativeButton(it) { _: DialogInterface, _: Int -> onNegativeBtnClick?.run() } } From 0aa5d2e7fe95d3e62a84b950747be3880e8f046f Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Thu, 9 Apr 2020 15:50:42 +0200 Subject: [PATCH 13/19] fixed overflow error --- .../main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index c4e6370a7d..79f6308e58 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -47,7 +47,9 @@ object DialogUtil { activity.getString(R.string.yes), activity.getString(R.string.no), onPositiveBtnClick, - onNegativeBtnClick + onNegativeBtnClick, + null, + false ) } @@ -68,7 +70,9 @@ object DialogUtil { positiveButtonText, negativeButtonText, onPositiveBtnClick, - onNegativeBtnClick + onNegativeBtnClick, + null, + false ) } @@ -109,7 +113,10 @@ object DialogUtil { title, message, positiveButtonText, + null, onPositiveBtnClick, + null, + null, cancellable ) } From 2f66abb1658eca678d7ac69edefe89dfd5efc4df Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 13 Apr 2020 13:25:00 +0200 Subject: [PATCH 14/19] Function rename --- .../fr/free/nrw/commons/utils/DialogUtil.kt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 79f6308e58..23abb83200 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -40,16 +40,14 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable? ) { - showAlertDialog( + createAndShowDialogSafely( activity, title, message, activity.getString(R.string.yes), activity.getString(R.string.no), onPositiveBtnClick, - onNegativeBtnClick, - null, - false + onNegativeBtnClick ) } @@ -63,16 +61,14 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable? ) { - showAlertDialog( + createAndShowDialogSafely( activity, title, message, positiveButtonText, negativeButtonText, onPositiveBtnClick, - onNegativeBtnClick, - null, - false + onNegativeBtnClick ) } @@ -86,7 +82,7 @@ object DialogUtil { customView: View, cancelable: Boolean ) { - showAlertDialog( + createAndShowDialogSafely( activity, title, message, @@ -108,7 +104,7 @@ object DialogUtil { onPositiveBtnClick: Runnable?, cancellable: Boolean ) { - showAlertDialog( + createAndShowDialogSafely( activity, title, message, @@ -133,8 +129,7 @@ object DialogUtil { * @param customView * @param cancelable */ - @JvmStatic - fun showAlertDialog( + private fun createAndShowDialogSafely( activity: Activity, title: String, message: String, From ac6b771ab46a87d51a2a3c44f7e5f42f1d8cdd37 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 13 Apr 2020 13:46:54 +0200 Subject: [PATCH 15/19] Used named arguments --- .../fr/free/nrw/commons/utils/DialogUtil.kt | 73 +++++++++---------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 23abb83200..f6183848a6 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -41,13 +41,13 @@ object DialogUtil { onNegativeBtnClick: Runnable? ) { createAndShowDialogSafely( - activity, - title, - message, - activity.getString(R.string.yes), - activity.getString(R.string.no), - onPositiveBtnClick, - onNegativeBtnClick + activity = activity, + title = title, + message = message, + positiveButtonText = activity.getString(R.string.yes), + negativeButtonText = activity.getString(R.string.no), + onPositiveBtnClick = onPositiveBtnClick, + onNegativeBtnClick = onNegativeBtnClick ) } @@ -62,13 +62,13 @@ object DialogUtil { onNegativeBtnClick: Runnable? ) { createAndShowDialogSafely( - activity, - title, - message, - positiveButtonText, - negativeButtonText, - onPositiveBtnClick, - onNegativeBtnClick + activity = activity, + title = title, + message = message, + positiveButtonText = positiveButtonText, + negativeButtonText = negativeButtonText, + onPositiveBtnClick = onPositiveBtnClick, + onNegativeBtnClick = onNegativeBtnClick ) } @@ -80,18 +80,18 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, customView: View, - cancelable: Boolean + cancellable: Boolean ) { createAndShowDialogSafely( - activity, - title, - message, - activity.getString(R.string.yes), - activity.getString(R.string.no), - onPositiveBtnClick, - onNegativeBtnClick, - customView, - cancelable + activity = activity, + title = title, + message = message, + positiveButtonText = activity.getString(R.string.yes), + negativeButtonText = activity.getString(R.string.no), + onPositiveBtnClick = onPositiveBtnClick, + onNegativeBtnClick = onNegativeBtnClick, + customView = customView, + cancellable = cancellable ) } @@ -105,15 +105,12 @@ object DialogUtil { cancellable: Boolean ) { createAndShowDialogSafely( - activity, - title, - message, - positiveButtonText, - null, - onPositiveBtnClick, - null, - null, - cancellable + activity = activity, + title = title, + message = message, + positiveButtonText = positiveButtonText, + onPositiveBtnClick = onPositiveBtnClick, + cancellable = cancellable ) } @@ -127,7 +124,7 @@ object DialogUtil { * @param onPositiveBtnClick * @param onNegativeBtnClick * @param customView - * @param cancelable + * @param cancellable */ private fun createAndShowDialogSafely( activity: Activity, @@ -135,10 +132,10 @@ object DialogUtil { message: String, positiveButtonText: String? = null, negativeButtonText: String? = null, - onPositiveBtnClick: Runnable?, - onNegativeBtnClick: Runnable?, + onPositiveBtnClick: Runnable? = null, + onNegativeBtnClick: Runnable? = null, customView: View? = null, - cancelable: Boolean = false + cancellable: Boolean = false ) { /* If the custom view already has a parent, there is already a dialog showing with the view @@ -153,7 +150,7 @@ object DialogUtil { setTitle(title) setMessage(message) setView(customView) - setCancelable(cancelable) + setCancelable(cancellable) positiveButtonText?.let { setPositiveButton(it) { _: DialogInterface, _: Int -> onPositiveBtnClick?.run() From c6d27adfe0d257813c4ec3f6f82bded9ac986fde Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 13 Apr 2020 14:23:11 +0200 Subject: [PATCH 16/19] Fix Typo --- .../java/fr/free/nrw/commons/utils/DialogUtil.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index f6183848a6..2f4f2e73ca 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -80,7 +80,7 @@ object DialogUtil { onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, customView: View, - cancellable: Boolean + cancelable: Boolean ) { createAndShowDialogSafely( activity = activity, @@ -91,7 +91,7 @@ object DialogUtil { onPositiveBtnClick = onPositiveBtnClick, onNegativeBtnClick = onNegativeBtnClick, customView = customView, - cancellable = cancellable + cancelable = cancelable ) } @@ -102,7 +102,7 @@ object DialogUtil { message: String, positiveButtonText: String?, onPositiveBtnClick: Runnable?, - cancellable: Boolean + cancelable: Boolean ) { createAndShowDialogSafely( activity = activity, @@ -110,7 +110,7 @@ object DialogUtil { message = message, positiveButtonText = positiveButtonText, onPositiveBtnClick = onPositiveBtnClick, - cancellable = cancellable + cancelable = cancelable ) } @@ -124,7 +124,7 @@ object DialogUtil { * @param onPositiveBtnClick * @param onNegativeBtnClick * @param customView - * @param cancellable + * @param cancelable */ private fun createAndShowDialogSafely( activity: Activity, @@ -135,7 +135,7 @@ object DialogUtil { onPositiveBtnClick: Runnable? = null, onNegativeBtnClick: Runnable? = null, customView: View? = null, - cancellable: Boolean = false + cancelable: Boolean = false ) { /* If the custom view already has a parent, there is already a dialog showing with the view @@ -150,7 +150,7 @@ object DialogUtil { setTitle(title) setMessage(message) setView(customView) - setCancelable(cancellable) + setCancelable(cancelable) positiveButtonText?.let { setPositiveButton(it) { _: DialogInterface, _: Int -> onPositiveBtnClick?.run() From 593e99e768e8ee6bdbde1185f7dd35172c41334a Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Mon, 13 Apr 2020 15:24:14 +0200 Subject: [PATCH 17/19] single lined --- .../main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 2f4f2e73ca..2e78873043 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -3,7 +3,6 @@ package fr.free.nrw.commons.utils import android.app.Activity import android.app.AlertDialog import android.app.Dialog -import android.content.DialogInterface import android.view.View import fr.free.nrw.commons.R import timber.log.Timber @@ -152,14 +151,10 @@ object DialogUtil { setView(customView) setCancelable(cancelable) positiveButtonText?.let { - setPositiveButton(it) { _: DialogInterface, _: Int -> - onPositiveBtnClick?.run() - } + setPositiveButton(it) { _, _ -> onPositiveBtnClick?.run() } } negativeButtonText?.let { - setNegativeButton(it) { _: DialogInterface, _: Int -> - onNegativeBtnClick?.run() - } + setNegativeButton(it) { _, _ -> onNegativeBtnClick?.run() } } }.create()) } From eee902ea4defdde0a15f19975e0f9929eda973b3 Mon Sep 17 00:00:00 2001 From: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Date: Tue, 14 Apr 2020 12:54:23 +0200 Subject: [PATCH 18/19] Update DialogUtil.kt --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 2e78873043..1807862ab7 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -55,8 +55,8 @@ object DialogUtil { activity: Activity, title: String, message: String, - positiveButtonText: String, - negativeButtonText: String, + positiveButtonText: String?, + negativeButtonText: String?, onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable? ) { @@ -78,7 +78,7 @@ object DialogUtil { message: String, onPositiveBtnClick: Runnable?, onNegativeBtnClick: Runnable?, - customView: View, + customView: View?, cancelable: Boolean ) { createAndShowDialogSafely( @@ -158,4 +158,4 @@ object DialogUtil { } }.create()) } -} \ No newline at end of file +} From c5483e878b87f46899fc596d9aa1ec59fe0a0863 Mon Sep 17 00:00:00 2001 From: Madhur Gupta Date: Tue, 14 Apr 2020 21:32:00 +0200 Subject: [PATCH 19/19] changed default value --- app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt index 1807862ab7..40e9ad1ed7 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/DialogUtil.kt @@ -134,7 +134,7 @@ object DialogUtil { onPositiveBtnClick: Runnable? = null, onNegativeBtnClick: Runnable? = null, customView: View? = null, - cancelable: Boolean = false + cancelable: Boolean = true ) { /* If the custom view already has a parent, there is already a dialog showing with the view