Added button to always allow streaming
This commit is contained in:
parent
e6ad131d37
commit
4678297ec3
|
@ -98,6 +98,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
*/
|
*/
|
||||||
public static final String EXTRA_SHOULD_STREAM = "extra.de.danoeh.antennapod.core.service.shouldStream";
|
public static final String EXTRA_SHOULD_STREAM = "extra.de.danoeh.antennapod.core.service.shouldStream";
|
||||||
public static final String EXTRA_ALLOW_STREAM_THIS_TIME = "extra.de.danoeh.antennapod.core.service.allowStream";
|
public static final String EXTRA_ALLOW_STREAM_THIS_TIME = "extra.de.danoeh.antennapod.core.service.allowStream";
|
||||||
|
public static final String EXTRA_ALLOW_STREAM_ALWAYS = "extra.de.danoeh.antennapod.core.service.allowStreamAlways";
|
||||||
/**
|
/**
|
||||||
* True if playback should be started immediately after media has been
|
* True if playback should be started immediately after media has been
|
||||||
* prepared.
|
* prepared.
|
||||||
|
@ -453,6 +454,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
startForeground(NOTIFICATION_ID, notificationBuilder.build());
|
startForeground(NOTIFICATION_ID, notificationBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
|
||||||
|
notificationManager.cancel(NOTIFICATION_ID_STREAMING);
|
||||||
|
|
||||||
final int keycode = intent.getIntExtra(MediaButtonReceiver.EXTRA_KEYCODE, -1);
|
final int keycode = intent.getIntExtra(MediaButtonReceiver.EXTRA_KEYCODE, -1);
|
||||||
final boolean castDisconnect = intent.getBooleanExtra(EXTRA_CAST_DISCONNECT, false);
|
final boolean castDisconnect = intent.getBooleanExtra(EXTRA_CAST_DISCONNECT, false);
|
||||||
Playable playable = intent.getParcelableExtra(EXTRA_PLAYABLE);
|
Playable playable = intent.getParcelableExtra(EXTRA_PLAYABLE);
|
||||||
|
@ -477,6 +481,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
stateManager.validStartCommandWasReceived();
|
stateManager.validStartCommandWasReceived();
|
||||||
boolean stream = intent.getBooleanExtra(EXTRA_SHOULD_STREAM, true);
|
boolean stream = intent.getBooleanExtra(EXTRA_SHOULD_STREAM, true);
|
||||||
boolean allowStreamThisTime = intent.getBooleanExtra(EXTRA_ALLOW_STREAM_THIS_TIME, false);
|
boolean allowStreamThisTime = intent.getBooleanExtra(EXTRA_ALLOW_STREAM_THIS_TIME, false);
|
||||||
|
boolean allowStreamAlways = intent.getBooleanExtra(EXTRA_ALLOW_STREAM_ALWAYS, false);
|
||||||
boolean startWhenPrepared = intent.getBooleanExtra(EXTRA_START_WHEN_PREPARED, false);
|
boolean startWhenPrepared = intent.getBooleanExtra(EXTRA_START_WHEN_PREPARED, false);
|
||||||
boolean prepareImmediately = intent.getBooleanExtra(EXTRA_PREPARE_IMMEDIATELY, false);
|
boolean prepareImmediately = intent.getBooleanExtra(EXTRA_PREPARE_IMMEDIATELY, false);
|
||||||
sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0);
|
sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0);
|
||||||
|
@ -485,6 +490,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
if (playable instanceof FeedMedia) {
|
if (playable instanceof FeedMedia) {
|
||||||
playable = DBReader.getFeedMedia(((FeedMedia) playable).getId());
|
playable = DBReader.getFeedMedia(((FeedMedia) playable).getId());
|
||||||
}
|
}
|
||||||
|
if (allowStreamAlways) {
|
||||||
|
UserPreferences.setAllowMobileStreaming(true);
|
||||||
|
}
|
||||||
if (stream && !NetworkUtils.isStreamingAllowed() && !allowStreamThisTime) {
|
if (stream && !NetworkUtils.isStreamingAllowed() && !allowStreamThisTime) {
|
||||||
displayStreamingNotAllowedNotification(intent);
|
displayStreamingNotAllowedNotification(intent);
|
||||||
writePlaybackPreferencesNoMediaPlaying();
|
writePlaybackPreferencesNoMediaPlaying();
|
||||||
|
@ -502,13 +510,22 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayStreamingNotAllowedNotification(Intent originalIntent) {
|
private void displayStreamingNotAllowedNotification(Intent originalIntent) {
|
||||||
Intent intent = new Intent(originalIntent);
|
Intent intentAllowThisTime = new Intent(originalIntent);
|
||||||
intent.putExtra(EXTRA_ALLOW_STREAM_THIS_TIME, true);
|
intentAllowThisTime.putExtra(EXTRA_ALLOW_STREAM_THIS_TIME, true);
|
||||||
PendingIntent pendingIntent;
|
PendingIntent pendingIntentAllowThisTime;
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
|
||||||
pendingIntent = PendingIntent.getForegroundService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
pendingIntentAllowThisTime = PendingIntent.getForegroundService(this, 0, intentAllowThisTime, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
} else {
|
} else {
|
||||||
pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
pendingIntentAllowThisTime = PendingIntent.getService(this, 0, intentAllowThisTime, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
Intent intentAlwaysAllow = new Intent(intentAllowThisTime);
|
||||||
|
intentAlwaysAllow.putExtra(EXTRA_ALLOW_STREAM_ALWAYS, true);
|
||||||
|
PendingIntent pendingIntentAlwaysAllow;
|
||||||
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
|
||||||
|
pendingIntentAlwaysAllow = PendingIntent.getForegroundService(this, 0, intentAlwaysAllow, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
} else {
|
||||||
|
pendingIntentAlwaysAllow = PendingIntent.getService(this, 0, intentAlwaysAllow, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NotificationUtils.CHANNEL_ID_USER_ACTION)
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NotificationUtils.CHANNEL_ID_USER_ACTION)
|
||||||
|
@ -518,7 +535,13 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
.setStyle(new NotificationCompat.BigTextStyle()
|
.setStyle(new NotificationCompat.BigTextStyle()
|
||||||
.bigText(getString(R.string.confirm_mobile_streaming_notification_message)))
|
.bigText(getString(R.string.confirm_mobile_streaming_notification_message)))
|
||||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||||
.setContentIntent(pendingIntent)
|
.setContentIntent(pendingIntentAllowThisTime)
|
||||||
|
.addAction(R.drawable.stat_notify_sync_error,
|
||||||
|
getString(R.string.stream_label),
|
||||||
|
pendingIntentAllowThisTime)
|
||||||
|
.addAction(R.drawable.stat_notify_sync_error,
|
||||||
|
getString(R.string.confirm_mobile_streaming_button_always),
|
||||||
|
pendingIntentAlwaysAllow)
|
||||||
.setAutoCancel(true);
|
.setAutoCancel(true);
|
||||||
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
|
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
|
||||||
notificationManager.notify(NOTIFICATION_ID_STREAMING, builder.build());
|
notificationManager.notify(NOTIFICATION_ID_STREAMING, builder.build());
|
||||||
|
|
|
@ -267,6 +267,7 @@
|
||||||
<string name="confirm_mobile_download_dialog_message">Downloading over mobile data connection is disabled in the settings.\n\nDo you want to allow downloading temporarily?\n\n<small>Your choice will be remembered for 10 minutes.</small></string>
|
<string name="confirm_mobile_download_dialog_message">Downloading over mobile data connection is disabled in the settings.\n\nDo you want to allow downloading temporarily?\n\n<small>Your choice will be remembered for 10 minutes.</small></string>
|
||||||
<string name="confirm_mobile_streaming_notification_title">Confirm Mobile streaming</string>
|
<string name="confirm_mobile_streaming_notification_title">Confirm Mobile streaming</string>
|
||||||
<string name="confirm_mobile_streaming_notification_message">Streaming over mobile data connection is disabled in the settings. Tap to stream anyway.</string>
|
<string name="confirm_mobile_streaming_notification_message">Streaming over mobile data connection is disabled in the settings. Tap to stream anyway.</string>
|
||||||
|
<string name="confirm_mobile_streaming_button_always">Always allow</string>
|
||||||
<string name="confirm_mobile_download_dialog_only_add_to_queue">Enqueue</string>
|
<string name="confirm_mobile_download_dialog_only_add_to_queue">Enqueue</string>
|
||||||
<string name="confirm_mobile_download_dialog_enable_temporarily">Allow temporarily</string>
|
<string name="confirm_mobile_download_dialog_enable_temporarily">Allow temporarily</string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue