From 3d0048a7716ba7a4ac425d1e12378720c3630af1 Mon Sep 17 00:00:00 2001 From: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Date: Mon, 24 Feb 2020 00:51:15 +0100 Subject: [PATCH] Added progress dialog for setting wallpaper (#3427) * Added progress dialog for setting wallpaper * Updated dialog strings --- .../fr/free/nrw/commons/utils/ImageUtils.java | 16 ++++++++++++++++ app/src/main/res/values/strings.xml | 3 +++ 2 files changed, 19 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/ImageUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/ImageUtils.java index 1c4af22874..6caa0c2262 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/ImageUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/ImageUtils.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.utils; +import android.app.ProgressDialog; import android.app.WallpaperManager; import android.content.Context; import android.graphics.Bitmap; @@ -68,6 +69,8 @@ public class ImageUtils { public static final int FILE_NAME_EXISTS = -4; static final int NO_CATEGORY_SELECTED = -5; + private static ProgressDialog progressDialog; + @IntDef( flag = true, value = { @@ -188,6 +191,7 @@ private static boolean checkIfImageIsDark(Bitmap bitmap) { * @param imageUrl Url of the image */ public static void setWallpaperFromImageUrl(Context context, Uri imageUrl) { + showSettingWallpaperProgressBar(context); Timber.d("Trying to set wallpaper from url %s", imageUrl.toString()); ImageRequest imageRequest = ImageRequestBuilder .newBuilderWithSource(imageUrl) @@ -224,11 +228,23 @@ private static void setWallpaper(Context context, Bitmap bitmap) { try { wallpaperManager.setBitmap(bitmap); ViewUtil.showLongToast(context, context.getString(R.string.wallpaper_set_successfully)); + if (progressDialog != null && progressDialog.isShowing()) { + progressDialog.dismiss(); + } } catch (IOException e) { Timber.e(e, "Error setting wallpaper"); + ViewUtil.showLongToast(context, context.getString(R.string.wallpaper_set_unsuccessfully)); + if (progressDialog != null) { + progressDialog.cancel(); + } } } + private static void showSettingWallpaperProgressBar(Context context) { + progressDialog = ProgressDialog.show(context, context.getString(R.string.setting_wallpaper_dialog_title), + context.getString(R.string.setting_wallpaper_dialog_message), true); + } + /** * Result variable is a result of an or operation of all possible problems. Ie. if result * is 0001 means IMAGE_DARK diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 32ab81e5a0..3b33c6f073 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,4 +593,7 @@ Upload your first media by tapping on the add button. Is this a photo of Place %1$s? Removed from bookmarks Added to bookmarks + Something went wrong. Could not set the wallpaper + Set as Wallpaper + Setting Wallpaper. Please wait…