From ef99fd5cf6c9cf354a2d494921fcc2136c5b284f Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Mon, 10 Aug 2015 17:50:53 +0200 Subject: [PATCH] avoid stuck toast messages by running them in UI thread --- .../android/vanilla/PlaybackActivity.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java index df5d1510..f5e8c6fa 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java @@ -183,7 +183,7 @@ public abstract class PlaybackActivity extends Activity PlaybackService service = PlaybackService.get(this); int state = service.playPause(); if ((state & PlaybackService.FLAG_ERROR) != 0) - Toast.makeText(this, service.getErrorMessage(), Toast.LENGTH_LONG).show(); + showToast(service.getErrorMessage(), Toast.LENGTH_LONG); setState(state); } @@ -451,7 +451,7 @@ public abstract class PlaybackActivity extends Activity } String message = getResources().getQuantityString(R.plurals.added_to_playlist, count, count, playlistTask.name); - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); + showToast(message, Toast.LENGTH_SHORT); } /** @@ -485,9 +485,20 @@ public abstract class PlaybackActivity extends Activity message = res.getString(R.string.deleted_item, intent.getStringExtra("title")); } - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); + showToast(message, Toast.LENGTH_SHORT); } + /** + * Creates and displays a new toast message + */ + private void showToast(final String message, final int duration) { + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getApplicationContext(), message, duration).show(); + } + }); + } /**