diff options
author | Scott Jackson <daneren2005@users.noreply.github.com> | 2020-02-07 22:12:23 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-07 22:12:23 -0800 |
commit | c7ec80bfcc3317e02868ec444ccc980d07bf344e (patch) | |
tree | d8518a9a97f6f42b976c600b2cb0b28b5fe362d3 | |
parent | a7ffaf53c5c73dc59b69e13bc3d0f809641f8bb4 (diff) | |
parent | 8aebc95681510909f4213dbb44c4caa0e26a6caa (diff) | |
download | dsub-c7ec80bfcc3317e02868ec444ccc980d07bf344e.tar.gz dsub-c7ec80bfcc3317e02868ec444ccc980d07bf344e.tar.bz2 dsub-c7ec80bfcc3317e02868ec444ccc980d07bf344e.zip |
Merge pull request #957 from KBerstene/bugfix/oreoWidgetIntents
Bugfix for widget PendingIntents on Android Oreo and higher
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/provider/DSubWidgetProvider.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/provider/DSubWidgetProvider.java b/app/src/main/java/github/daneren2005/dsub/provider/DSubWidgetProvider.java index 5c90c250..4a1c22a5 100644 --- a/app/src/main/java/github/daneren2005/dsub/provider/DSubWidgetProvider.java +++ b/app/src/main/java/github/daneren2005/dsub/provider/DSubWidgetProvider.java @@ -34,6 +34,7 @@ import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; +import android.os.Build; import android.os.Environment; import android.util.Log; import android.view.View; @@ -282,24 +283,33 @@ public class DSubWidgetProvider extends AppWidgetProvider { PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.appwidget_coverart, pendingIntent); views.setOnClickPendingIntent(R.id.appwidget_top, pendingIntent); - + // Emulate media button clicks. intent = new Intent("DSub.PLAY_PAUSE"); intent.setComponent(new ComponentName(context, DownloadService.class)); intent.setAction(DownloadService.CMD_TOGGLEPAUSE); - pendingIntent = PendingIntent.getService(context, 0, intent, 0); + if (Build.VERSION.SDK_INT >= 26) + pendingIntent = PendingIntent.getForegroundService(context, 0, intent, 0); + else + pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.control_play, pendingIntent); intent = new Intent("DSub.NEXT"); // Use a unique action name to ensure a different PendingIntent to be created. intent.setComponent(new ComponentName(context, DownloadService.class)); intent.setAction(DownloadService.CMD_NEXT); - pendingIntent = PendingIntent.getService(context, 0, intent, 0); + if (Build.VERSION.SDK_INT >= 26) + pendingIntent = PendingIntent.getForegroundService(context, 0, intent, 0); + else + pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.control_next, pendingIntent); - + intent = new Intent("DSub.PREVIOUS"); // Use a unique action name to ensure a different PendingIntent to be created. intent.setComponent(new ComponentName(context, DownloadService.class)); intent.setAction(DownloadService.CMD_PREVIOUS); - pendingIntent = PendingIntent.getService(context, 0, intent, 0); + if (Build.VERSION.SDK_INT >= 26) + pendingIntent = PendingIntent.getForegroundService(context, 0, intent, 0); + else + pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.control_previous, pendingIntent); } } |