diff options
68 files changed, 85 insertions, 13 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java index 9ccf833c9..04f2297c1 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -103,6 +103,9 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { return; } super.setupGUI(); + if(butCastDisconnect != null) { + butCastDisconnect.setVisibility(View.GONE); + } if(butPlaybackSpeed != null) { butPlaybackSpeed.setOnClickListener(v -> { if (controller == null) { diff --git a/app/src/main/java/de/danoeh/antennapod/activity/CastplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/CastplayerActivity.java index d6fe6de4a..faeb579c9 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/CastplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/CastplayerActivity.java @@ -49,5 +49,9 @@ public class CastplayerActivity extends MediaplayerInfoActivity { if (butPlaybackSpeed != null) { butPlaybackSpeed.setVisibility(View.GONE); } + if (butCastDisconnect != null) { + butCastDisconnect.setOnClickListener(v -> castManager.disconnect()); + butCastDisconnect.setVisibility(View.VISIBLE); + } } } diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java index 7e7bf1992..858b5dcd3 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java @@ -23,6 +23,7 @@ import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.Button; +import android.widget.ImageButton; import android.widget.ListView; import com.viewpagerindicator.CirclePageIndicator; @@ -85,6 +86,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem }; protected Button butPlaybackSpeed; + protected ImageButton butCastDisconnect; private DrawerLayout drawerLayout; private NavListAdapter navAdapter; private ListView navList; @@ -250,6 +252,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem }); butPlaybackSpeed = (Button) findViewById(R.id.butPlaybackSpeed); + butCastDisconnect = (ImageButton) findViewById(R.id.butCastDisconnect); pager = (ViewPager) findViewById(R.id.pager); pagerAdapter = new MediaplayerInfoPagerAdapter(getSupportFragmentManager(), media); diff --git a/app/src/main/res/layout/mediaplayerinfo_activity.xml b/app/src/main/res/layout/mediaplayerinfo_activity.xml index fb4f995a2..0f68b503e 100644 --- a/app/src/main/res/layout/mediaplayerinfo_activity.xml +++ b/app/src/main/res/layout/mediaplayerinfo_activity.xml @@ -152,6 +152,21 @@ android:src="?attr/av_fast_forward" android:textSize="@dimen/text_size_medium" android:textAllCaps="false" + tools:visibility="gone" + tools:background="@android:color/holo_green_dark" /> + + <ImageButton + android:id="@+id/butCastDisconnect" + android:layout_width="@dimen/audioplayer_playercontrols_length" + android:layout_height="@dimen/audioplayer_playercontrols_length" + android:layout_toLeftOf="@id/butRev" + android:background="?attr/selectableItemBackground" + android:contentDescription="@string/cast_disconnect_label" + android:src="?attr/ic_cast_disconnect" + android:scaleType="fitCenter" + android:visibility="gone" + tools:visibility="visible" + tools:src="@drawable/ic_cast_disconnect_white_36dp" tools:background="@android:color/holo_green_dark" /> <ImageButton diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 2a3e225ba..a44f97956 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -47,8 +47,8 @@ import java.util.List; import de.danoeh.antennapod.core.ClientConfig; import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.cast.CastConsumer; -import de.danoeh.antennapod.core.cast.DefaultCastConsumer; import de.danoeh.antennapod.core.cast.CastManager; +import de.danoeh.antennapod.core.cast.DefaultCastConsumer; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; @@ -85,6 +85,10 @@ public class PlaybackService extends Service { */ public static final String EXTRA_PLAYABLE = "PlaybackService.PlayableExtra"; /** + * True if cast session should disconnect. + */ + public static final String EXTRA_CAST_DISCONNECT = "extra.de.danoeh.antennapod.core.service.castDisconnect"; + /** * True if media should be streamed. */ public static final String EXTRA_SHOULD_STREAM = "extra.de.danoeh.antennapod.core.service.shouldStream"; @@ -361,8 +365,9 @@ public class PlaybackService extends Service { Log.d(TAG, "OnStartCommand called"); final int keycode = intent.getIntExtra(MediaButtonReceiver.EXTRA_KEYCODE, -1); + final boolean castDisconnect = intent.getBooleanExtra(EXTRA_CAST_DISCONNECT, false); final Playable playable = intent.getParcelableExtra(EXTRA_PLAYABLE); - if (keycode == -1 && playable == null) { + if (keycode == -1 && playable == null && !castDisconnect) { Log.e(TAG, "PlaybackService was started with no arguments"); stopSelf(); return Service.START_REDELIVER_INTENT; @@ -377,6 +382,8 @@ public class PlaybackService extends Service { Log.d(TAG, "Received media button event"); handleKeycode(keycode, intent.getIntExtra(MediaButtonReceiver.EXTRA_SOURCE, InputDevice.SOURCE_CLASS_NONE)); + } else if (castDisconnect) { + castManager.disconnect(); } else { started = true; boolean stream = intent.getBooleanExtra(EXTRA_SHOULD_STREAM, @@ -556,12 +563,13 @@ public class PlaybackService extends Service { taskManager.cancelPositionSaver(); saveCurrentPosition(false, 0); taskManager.cancelWidgetUpdater(); - if (UserPreferences.isPersistNotify() && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + if ((UserPreferences.isPersistNotify() || isCasting) && + android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { // do not remove notification on pause based on user pref and whether android version supports expanded notifications // Change [Play] button to [Pause] setupNotification(newInfo); - } else if (!UserPreferences.isPersistNotify()) { - // remove notifcation on pause + } else if (!UserPreferences.isPersistNotify() && !isCasting) { + // remove notification on pause stopForeground(true); } writePlayerStatusPlaybackPreferences(); @@ -1052,6 +1060,17 @@ public class PlaybackService extends Service { int numActions = 0; // we start and 0 and then increment by 1 for each call to addAction + if (isCasting) { + Intent stopCastingIntent = new Intent(PlaybackService.this, PlaybackService.class); + stopCastingIntent.putExtra(EXTRA_CAST_DISCONNECT, true); + PendingIntent stopCastingPendingIntent = PendingIntent.getService(PlaybackService.this, + numActions, stopCastingIntent, PendingIntent.FLAG_UPDATE_CURRENT); + notificationBuilder.addAction(R.drawable.ic_media_cast_disconnect, + getString(R.string.cast_disconnect_label), + stopCastingPendingIntent); + numActions++; + } + // always let them rewind PendingIntent rewindButtonPendingIntent = getPendingIntentForMediaAction( KeyEvent.KEYCODE_MEDIA_REWIND, numActions); @@ -1116,7 +1135,8 @@ public class PlaybackService extends Service { if (playerStatus == PlayerStatus.PLAYING || playerStatus == PlayerStatus.PREPARING || - playerStatus == PlayerStatus.SEEKING) { + playerStatus == PlayerStatus.SEEKING || + isCasting) { startForeground(NOTIFICATION_ID, notification); } else { stopForeground(false); @@ -1531,6 +1551,16 @@ public class PlaybackService extends Service { // hardware volume buttons control the local device volume mediaRouter.setMediaSessionCompat(null); unregisterWifiBroadcastReceiver(); + PlayerStatus status = info.playerStatus; + if ((status == PlayerStatus.PLAYING || + status == PlayerStatus.SEEKING || + status == PlayerStatus.PREPARING || + UserPreferences.isPersistNotify()) && + android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + setupNotification(info); + } else if (!UserPreferences.isPersistNotify()){ + stopForeground(true); + } } }; @@ -1632,14 +1662,17 @@ public class PlaybackService extends Service { saveCurrentPosition(false, 0); } } + if (info == null) { + info = new PlaybackServiceMediaPlayer.PSMPInfo(PlayerStatus.STOPPED, null); + } sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, EXTRA_CODE_CAST); switchMediaPlayer(new RemotePSMP(PlaybackService.this, mediaPlayerCallback), - (info != null) ? info : - new PlaybackServiceMediaPlayer.PSMPInfo(PlayerStatus.STOPPED, null), + info, wasLaunched); // hardware volume buttons control the remote device volume mediaRouter.setMediaSessionCompat(mediaSession); registerWifiBroadcastReceiver(); + setupNotification(info); } private void switchMediaPlayer(@NonNull PlaybackServiceMediaPlayer newPlayer, diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java index 96dbe9033..d45bc3094 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java @@ -20,13 +20,12 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import de.danoeh.antennapod.core.cast.CastConsumer; -import de.danoeh.antennapod.core.cast.DefaultCastConsumer; import de.danoeh.antennapod.core.cast.CastManager; +import de.danoeh.antennapod.core.cast.CastUtils; +import de.danoeh.antennapod.core.cast.DefaultCastConsumer; import de.danoeh.antennapod.core.cast.RemoteMedia; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; -import de.danoeh.antennapod.core.preferences.UserPreferences; -import de.danoeh.antennapod.core.cast.CastUtils; import de.danoeh.antennapod.core.util.RewindAfterPauseUtils; import de.danoeh.antennapod.core.util.playback.Playable; @@ -150,6 +149,8 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { setBuffering(false); setPlayerStatus(PlayerStatus.INDETERMINATE, null); return; + } else { + Log.d(TAG, "Received remote status/media update. New state=" + status.getPlayerState()); } Playable currentMedia = localVersion(status.getMediaInfo()); if (currentMedia != null) { @@ -196,6 +197,10 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { case MediaStatus.PLAYER_STATE_UNKNOWN: //is this right? setPlayerStatus(PlayerStatus.INDETERMINATE, currentMedia); + break; + default: + Log.e(TAG, "Remote media state undetermined!"); + setPlayerStatus(PlayerStatus.INDETERMINATE, currentMedia); } } @@ -265,7 +270,8 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { @Override public void resume() { try { - setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume()); + // TODO see comment on prepare() + // setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume()); if (playerStatus == PlayerStatus.PREPARED && media.getPosition() > 0) { int newPosition = RewindAfterPauseUtils.calculatePositionWithRewind( media.getPosition(), @@ -306,7 +312,9 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { position, media.getLastPlayedTime()); } - setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume()); + // TODO We're not supporting user set stream volume yet, as we need to make a UI + // that doesn't allow changing playback speed or have different values for left/right + //setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume()); castMgr.loadMedia(remoteMedia, startWhenPrepared.get(), position); } catch (TransientNetworkDisconnectionException | NoConnectionException e) { Log.e(TAG, "Error loading media", e); diff --git a/core/src/main/res/drawable-hdpi/ic_audiotrack_light.png b/core/src/main/res/drawable-hdpi/ic_audiotrack_light.png Binary files differnew file mode 100644 index 000000000..04e23e1f6 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_audiotrack_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png Binary files differnew file mode 100644 index 000000000..c0a55d555 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_disconnect_grey600_36dp.png b/core/src/main/res/drawable-hdpi/ic_cast_disconnect_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..5dc0ad34e --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_disconnect_grey600_36dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_disconnect_white_36dp.png b/core/src/main/res/drawable-hdpi/ic_cast_disconnect_white_36dp.png Binary files differnew file mode 100644 index 000000000..f17ce866f --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_disconnect_white_36dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_light.png b/core/src/main/res/drawable-hdpi/ic_cast_light.png Binary files differnew file mode 100644 index 000000000..b0c581a0e --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_off_light.png b/core/src/main/res/drawable-hdpi/ic_cast_off_light.png Binary files differnew file mode 100644 index 000000000..5f3c0179c --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_off_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png Binary files differnew file mode 100644 index 000000000..e872693a4 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png Binary files differnew file mode 100644 index 000000000..d8be1ebc6 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png Binary files differnew file mode 100644 index 000000000..27cda9e9d --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_light.png Binary files differnew file mode 100644 index 000000000..4ee525875 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_cast_on_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_close_light.png b/core/src/main/res/drawable-hdpi/ic_close_light.png Binary files differnew file mode 100644 index 000000000..93187e450 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_close_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_media_cast_disconnect.png b/core/src/main/res/drawable-hdpi/ic_media_cast_disconnect.png Binary files differnew file mode 100644 index 000000000..700c116e5 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_media_cast_disconnect.png diff --git a/core/src/main/res/drawable-hdpi/ic_pause_light.png b/core/src/main/res/drawable-hdpi/ic_pause_light.png Binary files differnew file mode 100644 index 000000000..0c505d1c8 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_pause_light.png diff --git a/core/src/main/res/drawable-hdpi/ic_play_light.png b/core/src/main/res/drawable-hdpi/ic_play_light.png Binary files differnew file mode 100644 index 000000000..7957dff5b --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_play_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_audiotrack_light.png b/core/src/main/res/drawable-mdpi/ic_audiotrack_light.png Binary files differnew file mode 100644 index 000000000..8ce237e38 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_audiotrack_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png Binary files differnew file mode 100644 index 000000000..7940a0332 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_disconnect_grey600_36dp.png b/core/src/main/res/drawable-mdpi/ic_cast_disconnect_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..aa57c3950 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_disconnect_grey600_36dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_disconnect_white_36dp.png b/core/src/main/res/drawable-mdpi/ic_cast_disconnect_white_36dp.png Binary files differnew file mode 100644 index 000000000..500d6a39a --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_disconnect_white_36dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_light.png b/core/src/main/res/drawable-mdpi/ic_cast_light.png Binary files differnew file mode 100644 index 000000000..1f5bec20b --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_off_light.png b/core/src/main/res/drawable-mdpi/ic_cast_off_light.png Binary files differnew file mode 100644 index 000000000..963db27d4 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_off_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png Binary files differnew file mode 100644 index 000000000..a90d9e305 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png Binary files differnew file mode 100644 index 000000000..bb2cf30bf --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png Binary files differnew file mode 100644 index 000000000..3ed59e55b --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_light.png Binary files differnew file mode 100644 index 000000000..713427b97 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_cast_on_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_close_light.png b/core/src/main/res/drawable-mdpi/ic_close_light.png Binary files differnew file mode 100644 index 000000000..2c52c9b0f --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_close_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_media_cast_disconnect.png b/core/src/main/res/drawable-mdpi/ic_media_cast_disconnect.png Binary files differnew file mode 100644 index 000000000..767f420df --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_media_cast_disconnect.png diff --git a/core/src/main/res/drawable-mdpi/ic_pause_light.png b/core/src/main/res/drawable-mdpi/ic_pause_light.png Binary files differnew file mode 100644 index 000000000..6218a774f --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_pause_light.png diff --git a/core/src/main/res/drawable-mdpi/ic_play_light.png b/core/src/main/res/drawable-mdpi/ic_play_light.png Binary files differnew file mode 100644 index 000000000..1e0ccaf80 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_play_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_audiotrack_light.png b/core/src/main/res/drawable-xhdpi/ic_audiotrack_light.png Binary files differnew file mode 100644 index 000000000..247df6f39 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_audiotrack_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png Binary files differnew file mode 100644 index 000000000..fbb3e062c --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_grey600_36dp.png b/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..af475c3f0 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_grey600_36dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_white_36dp.png b/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_white_36dp.png Binary files differnew file mode 100644 index 000000000..ed84d3f47 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_disconnect_white_36dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_light.png Binary files differnew file mode 100644 index 000000000..f2713e20e --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png Binary files differnew file mode 100644 index 000000000..f4f8aaea8 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png Binary files differnew file mode 100644 index 000000000..247fc95ba --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png Binary files differnew file mode 100644 index 000000000..ecf4b4723 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png Binary files differnew file mode 100644 index 000000000..60e3afa5d --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png Binary files differnew file mode 100644 index 000000000..40ce9d4f2 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_close_light.png b/core/src/main/res/drawable-xhdpi/ic_close_light.png Binary files differnew file mode 100644 index 000000000..49faa429a --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_close_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_media_cast_disconnect.png b/core/src/main/res/drawable-xhdpi/ic_media_cast_disconnect.png Binary files differnew file mode 100644 index 000000000..740867129 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_media_cast_disconnect.png diff --git a/core/src/main/res/drawable-xhdpi/ic_pause_light.png b/core/src/main/res/drawable-xhdpi/ic_pause_light.png Binary files differnew file mode 100644 index 000000000..40cd79f14 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_pause_light.png diff --git a/core/src/main/res/drawable-xhdpi/ic_play_light.png b/core/src/main/res/drawable-xhdpi/ic_play_light.png Binary files differnew file mode 100644 index 000000000..33f6a5919 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_play_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_audiotrack_light.png b/core/src/main/res/drawable-xxhdpi/ic_audiotrack_light.png Binary files differnew file mode 100644 index 000000000..8c83b169d --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_audiotrack_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png Binary files differnew file mode 100644 index 000000000..e94df3889 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_grey600_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..6541900dc --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_grey600_36dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_white_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_white_36dp.png Binary files differnew file mode 100644 index 000000000..2c1184711 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_disconnect_white_36dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_light.png Binary files differnew file mode 100644 index 000000000..c5722a6eb --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png Binary files differnew file mode 100644 index 000000000..92ac67b34 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png Binary files differnew file mode 100644 index 000000000..2742fcb4a --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png Binary files differnew file mode 100644 index 000000000..405178e64 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png Binary files differnew file mode 100644 index 000000000..dfe52428d --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png Binary files differnew file mode 100644 index 000000000..7e69a0864 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxhdpi/ic_close_light.png Binary files differnew file mode 100644 index 000000000..be519bfcb --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_close_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_media_cast_disconnect.png b/core/src/main/res/drawable-xxhdpi/ic_media_cast_disconnect.png Binary files differnew file mode 100644 index 000000000..2d2ec9035 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_media_cast_disconnect.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxhdpi/ic_pause_light.png Binary files differnew file mode 100644 index 000000000..a36d4d11e --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_pause_light.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxhdpi/ic_play_light.png Binary files differnew file mode 100644 index 000000000..b1424874a --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_play_light.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxxhdpi/ic_close_light.png Binary files differnew file mode 100644 index 000000000..679c2a4d5 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_close_light.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png Binary files differnew file mode 100644 index 000000000..7de2ef4ed --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxxhdpi/ic_play_light.png Binary files differnew file mode 100644 index 000000000..4428c8477 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_play_light.png diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index c3ee4d3e2..04ad7ea64 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -50,6 +50,7 @@ <attr name="ic_sort" format="reference"/> <attr name="ic_sd_storage" format="reference"/> <attr name="ic_create_new_folder" format="reference"/> + <attr name="ic_cast_disconnect" format="reference"/> <!-- Used in itemdescription --> <attr name="non_transparent_background" format="reference"/> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 1f387e5f7..17d9c5c85 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -618,6 +618,7 @@ <!-- Casting --> <string name="cast_media_route_menu_title">Play on…</string> + <string name="cast_disconnect_label">Disconnect the cast session</string> <string name="cast_failed_to_play">Failed to start the playback of media</string> <string name="cast_failed_to_stop">Failed to stop the playback of media</string> <string name="cast_failed_to_pause">Failed to pause the playback of media</string> diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index f7775a0bf..6a4dc4781 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -57,6 +57,7 @@ <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item> <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item> <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item> + <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item> </style> <style name="Theme.AntennaPod.Dark" parent="Theme.AppCompat"> @@ -115,6 +116,7 @@ <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item> <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item> <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item> + <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item> </style> <style name="Theme.AntennaPod.Light.NoTitle" parent="Theme.AppCompat.Light.NoActionBar"> @@ -174,6 +176,7 @@ <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item> <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item> <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item> + <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item> </style> <style name="Theme.AntennaPod.Dark.NoTitle" parent="Theme.AppCompat.NoActionBar"> @@ -233,6 +236,7 @@ <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item> <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item> <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item> + <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item> </style> <style name="Theme.AntennaPod.VideoPlayer" parent="@style/Theme.AntennaPod.Dark"> |