From 43d36537536d8b142be0c67d48ccdcf7555eb869 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 28 Mar 2019 22:22:44 +0100 Subject: [PATCH] create utility method for sending Toasts from Services --- .../java/org/fdroid/fdroid/UpdateService.java | 22 +------------------ .../main/java/org/fdroid/fdroid/Utils.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index 63f5da89b..e4627e4e7 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -19,7 +19,6 @@ package org.fdroid.fdroid; import android.app.AlarmManager; -import android.app.IntentService; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.job.JobInfo; @@ -33,8 +32,6 @@ import android.content.IntentFilter; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; -import android.os.Handler; -import android.os.Looper; import android.os.Process; import android.os.SystemClock; import android.support.annotation.NonNull; @@ -87,7 +84,6 @@ public class UpdateService extends JobIntentService { private static final int NOTIFY_ID_UPDATING = 0; private static UpdateService updateService; - private static Handler toastHandler; private NotificationManager notificationManager; private NotificationCompat.Builder notificationBuilder; @@ -391,22 +387,6 @@ public class UpdateService extends JobIntentService { } } - /** - * In order to send a {@link Toast} from a {@link IntentService}, we have to do these tricks. - */ - private void sendNoInternetToast() { - if (toastHandler == null) { - toastHandler = new Handler(Looper.getMainLooper()); - } - toastHandler.post(new Runnable() { - @Override - public void run() { - Toast.makeText(getApplicationContext(), - R.string.warning_no_internet, Toast.LENGTH_SHORT).show(); - } - }); - } - private static boolean isLocalRepoAddress(String address) { return address != null && (address.startsWith(BluetoothDownloader.SCHEME) @@ -453,7 +433,7 @@ public class UpdateService extends JobIntentService { if (!foundLocalRepo) { Utils.debugLog(TAG, "No internet, cannot update"); if (manualUpdate) { - sendNoInternetToast(); + Utils.showToastFromService(this, getString(R.string.warning_no_internet), Toast.LENGTH_SHORT); } return; } diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index 16e3aa508..392699f72 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -27,6 +27,8 @@ import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; +import android.os.Handler; +import android.os.Looper; import android.os.StatFs; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -42,6 +44,7 @@ import android.text.style.TypefaceSpan; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; +import android.widget.Toast; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; @@ -101,6 +104,8 @@ public final class Utils { private static Pattern safePackageNamePattern; + private static Handler toastHandler; + public static final String FALLBACK_ICONS_DIR = "/icons/"; /* @@ -840,4 +845,21 @@ public final class Utils { Utils.debugLog(logTag, "[" + duration + "ms] " + message); } } + + /** + * In order to send a {@link Toast} from a {@link android.app.Service}, we + * have to do these tricks. + */ + public static void showToastFromService(final Context context, final String msg, final int length) { + if (toastHandler == null) { + toastHandler = new Handler(Looper.getMainLooper()); + } + toastHandler.post(new Runnable() { + + @Override + public void run() { + Toast.makeText(context.getApplicationContext(), msg, length).show(); + } + }); + } }