aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@users.noreply.github.com>2020-02-07 22:12:23 -0800
committerGitHub <noreply@github.com>2020-02-07 22:12:23 -0800
commitc7ec80bfcc3317e02868ec444ccc980d07bf344e (patch)
treed8518a9a97f6f42b976c600b2cb0b28b5fe362d3
parenta7ffaf53c5c73dc59b69e13bc3d0f809641f8bb4 (diff)
parent8aebc95681510909f4213dbb44c4caa0e26a6caa (diff)
downloaddsub-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.java20
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);
}
}