diff options
Diffstat (limited to 'core/src')
64 files changed, 243 insertions, 90 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index d6ac8496b..6c0aff15e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -95,9 +94,12 @@ public class UserPreferences { public static final String PREF_QUEUE_LOCKED = "prefQueueLocked"; public static final String IMAGE_CACHE_DEFAULT_VALUE = "100"; public static final int IMAGE_CACHE_SIZE_MINIMUM = 20; + public static final String PREF_LEFT_VOLUME = "prefLeftVolume"; + public static final String PREF_RIGHT_VOLUME = "prefRightVolume"; // Experimental public static final String PREF_SONIC = "prefSonic"; + public static final String PREF_STEREO_TO_MONO = "PrefStereoToMono"; public static final String PREF_NORMALIZER = "prefNormalizer"; public static final int EPISODE_CLEANUP_QUEUE = -1; public static final int EPISODE_CLEANUP_NULL = -2; @@ -249,17 +251,37 @@ public class UserPreferences { } public static String getPlaybackSpeed() { - return prefs.getString(PREF_PLAYBACK_SPEED, "1.0"); + return prefs.getString(PREF_PLAYBACK_SPEED, "1.00"); } public static String[] getPlaybackSpeedArray() { return readPlaybackSpeedArray(prefs.getString(PREF_PLAYBACK_SPEED_ARRAY, null)); } + public static float getLeftVolume() { + int volume = prefs.getInt(PREF_LEFT_VOLUME, 100); + if(volume == 100) { + return 1.0f; + } else { + return (float) (1 - (Math.log(100 - volume) / Math.log(100))); + } + } + + public static float getRightVolume() { + int volume = prefs.getInt(PREF_RIGHT_VOLUME, 100); + if(volume == 100) { + return 1.0f; + } else { + return (float) (1 - (Math.log(100 - volume) / Math.log(100))); + } + } + public static boolean shouldPauseForFocusLoss() { return prefs.getBoolean(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, false); } + + public static long getUpdateInterval() { String updateInterval = prefs.getString(PREF_UPDATE_INTERVAL, "0"); if(false == updateInterval.contains(":")) { @@ -385,6 +407,15 @@ public class UserPreferences { .apply(); } + public static void setVolume(int leftVolume, int rightVolume) { + assert(0 <= leftVolume && leftVolume <= 100); + assert(0 <= rightVolume && rightVolume <= 100); + prefs.edit() + .putInt(PREF_LEFT_VOLUME, leftVolume) + .putInt(PREF_RIGHT_VOLUME, rightVolume) + .apply(); + } + public static void setAutodownloadSelectedNetworks(String[] value) { prefs.edit() .putString(PREF_AUTODL_SELECTED_NETWORKS, TextUtils.join(",", value)) @@ -472,7 +503,7 @@ public class UserPreferences { // If this preference hasn't been set yet, return the default options if (valueFromPrefs == null) { String[] allSpeeds = context.getResources().getStringArray(R.array.playback_speed_values); - List<String> speedList = new LinkedList<String>(); + List<String> speedList = new ArrayList<>(); for (String speedStr : allSpeeds) { float speed = Float.parseFloat(speedStr); if (speed < 2.0001 && speed * 10 % 1 == 0) { @@ -505,6 +536,16 @@ public class UserPreferences { .apply(); } + public static boolean stereoToMono() { + return prefs.getBoolean(PREF_STEREO_TO_MONO, false); + } + + public static void stereoToMono(boolean enable) { + prefs.edit() + .putBoolean(PREF_STEREO_TO_MONO, enable) + .apply(); + } + public static EpisodeCleanupAlgorithm getEpisodeCleanupAlgorithm() { int cleanupValue = Integer.valueOf(prefs.getString(PREF_EPISODE_CLEANUP, "-1")); 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 129055f92..2be075a92 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 @@ -398,19 +398,25 @@ public class PlaybackService extends Service { @Override public void onSleepTimerAlmostExpired() { - mediaPlayer.setVolume(0.1f); + float leftVolume = 0.1f * UserPreferences.getLeftVolume(); + float rightVolume = 0.1f * UserPreferences.getRightVolume(); + mediaPlayer.setVolume(leftVolume, rightVolume); } @Override public void onSleepTimerExpired() { mediaPlayer.pause(true, true); - mediaPlayer.setVolume(1.0f); + float leftVolume = UserPreferences.getLeftVolume(); + float rightVolume = UserPreferences.getRightVolume(); + mediaPlayer.setVolume(leftVolume, rightVolume); sendNotificationBroadcast(NOTIFICATION_TYPE_SLEEPTIMER_UPDATE, 0); } @Override public void onSleepTimerReset() { - mediaPlayer.setVolume(1.0f); + float leftVolume = UserPreferences.getLeftVolume(); + float rightVolume = UserPreferences.getRightVolume(); + mediaPlayer.setVolume(leftVolume, rightVolume); } @Override @@ -1165,18 +1171,30 @@ public class PlaybackService extends Service { public Playable getPlayable() { return mediaPlayer.getPlayable(); } + public boolean canSetSpeed() { + return mediaPlayer.canSetSpeed(); + } + public void setSpeed(float speed) { mediaPlayer.setSpeed(speed); } - public boolean canSetSpeed() { - return mediaPlayer.canSetSpeed(); + public void setVolume(float leftVolume, float rightVolume) { + mediaPlayer.setVolume(leftVolume, rightVolume); } public float getCurrentPlaybackSpeed() { return mediaPlayer.getPlaybackSpeed(); } + public boolean canDownmix() { + return mediaPlayer.canDownmix(); + } + + public void setDownmix(boolean enable) { + mediaPlayer.setDownmix(enable); + } + public boolean isStartWhenPrepared() { return mediaPlayer.isStartWhenPrepared(); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java index e26ee32cb..aa73b17a7 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java @@ -24,6 +24,7 @@ import android.view.SurfaceHolder; import android.view.WindowManager; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.target.Target; import java.io.IOException; import java.util.concurrent.CountDownLatch; @@ -293,6 +294,7 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, p.getDuration()); builder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, p.getEpisodeTitle()); builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, p.getFeedTitle()); + if (p.getImageUri() != null && UserPreferences.setLockscreenBackground()) { builder.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, p.getImageUri().toString()); try { @@ -322,13 +324,10 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre * This method is executed on an internal executor service. */ public void resume() { - executor.submit(new Runnable() { - @Override - public void run() { - playerLock.lock(); - resumeSync(); - playerLock.unlock(); - } + executor.submit(() -> { + playerLock.lock(); + resumeSync(); + playerLock.unlock(); }); } @@ -339,7 +338,15 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre AudioManager.AUDIOFOCUS_GAIN); if (focusGained == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { acquireWifiLockIfNecessary(); - setSpeed(Float.parseFloat(UserPreferences.getPlaybackSpeed())); + float speed = 1.0f; + try { + speed = Float.parseFloat(UserPreferences.getPlaybackSpeed()); + } catch(NumberFormatException e) { + Log.e(TAG, Log.getStackTraceString(e)); + UserPreferences.setPlaybackSpeed(String.valueOf(speed)); + } + setSpeed(speed); + setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume()); if (playerStatus == PlayerStatus.PREPARED && media.getPosition() > 0) { int newPosition = RewindAfterPauseUtils.calculatePositionWithRewind( @@ -690,24 +697,39 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre * Sets the playback speed. * This method is executed on an internal executor service. */ - public void setVolume(final float volume) { - executor.submit(new Runnable() { - @Override - public void run() { - setVolumeSync(volume); - } - }); + public void setVolume(final float volumeLeft, float volumeRight) { + executor.submit(() -> setVolumeSync(volumeLeft, volumeRight)); } /** * Sets the playback speed. * This method is executed on the caller's thread. */ - private void setVolumeSync(float volume) { + private void setVolumeSync(float volumeLeft, float volumeRight) { + playerLock.lock(); + if (media != null && media.getMediaType() == MediaType.AUDIO) { + mediaPlayer.setVolume(volumeLeft, volumeRight); + Log.d(TAG, "Media player volume was set to " + volumeLeft + " " + volumeRight); + } + playerLock.unlock(); + } + + /** + * Returns true if the mediaplayer can mix stereo down to mono + */ + public boolean canDownmix() { + boolean retVal = false; + if (mediaPlayer != null && media != null && media.getMediaType() == MediaType.AUDIO) { + retVal = mediaPlayer.canDownmix(); + } + return retVal; + } + + public void setDownmix(boolean enable) { playerLock.lock(); if (media != null && media.getMediaType() == MediaType.AUDIO) { - mediaPlayer.setVolume(volume, volume); - Log.d(TAG, "Media player volume was set to " + volume); + mediaPlayer.setDownmix(enable); + Log.d(TAG, "Media player downmix was set to " + enable); } playerLock.unlock(); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java index a690e7646..b23a142af 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java @@ -4,7 +4,6 @@ import android.util.Log; import org.xml.sax.Attributes; -import de.danoeh.antennapod.core.BuildConfig; import de.danoeh.antennapod.core.feed.FeedImage; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; @@ -88,16 +87,15 @@ public class NSAtom extends Namespace { size = Long.parseLong(strSize); } } catch (NumberFormatException e) { - if (BuildConfig.DEBUG) Log.d(TAG, "Length attribute could not be parsed."); + Log.d(TAG, "Length attribute could not be parsed."); } String type = attributes.getValue(LINK_TYPE); if (SyndTypeUtils.enclosureTypeValid(type) - || (type = SyndTypeUtils - .getValidMimeTypeFromUrl(href)) != null) { - state.getCurrentItem().setMedia( - new FeedMedia(state.getCurrentItem(), href, - size, type) - ); + || (type = SyndTypeUtils.getValidMimeTypeFromUrl(href)) != null) { + FeedItem currItem = state.getCurrentItem(); + if(!currItem.hasMedia()) { + currItem.setMedia(new FeedMedia(currItem, href, size, type)); + } } } else if (rel.equals(LINK_REL_PAYMENT)) { state.getCurrentItem().setPaymentLink(href); @@ -111,9 +109,11 @@ public class NSAtom extends Namespace { * LINK_TYPE_HTML or LINK_TYPE_XHTML */ if ((type == null && state.getFeed().getLink() == null) - || (type != null && (type.equals(LINK_TYPE_HTML) || type.equals(LINK_TYPE_XHTML)))) { + || (type != null && (type.equals(LINK_TYPE_HTML) + || type.equals(LINK_TYPE_XHTML)))) { state.getFeed().setLink(href); - } else if (type != null && (type.equals(LINK_TYPE_ATOM) || type.equals(LINK_TYPE_RSS))) { + } else if (type != null && (type.equals(LINK_TYPE_ATOM) + || type.equals(LINK_TYPE_RSS))) { // treat as podlove alternate feed String title = attributes.getValue(LINK_TITLE); if (title == null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java index b6beb5bf1..f0850e6df 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java @@ -37,4 +37,9 @@ public class AudioPlayer extends MediaPlayer implements IPlayer { protected boolean useSonic() { return UserPreferences.useSonic(); } + + @Override + protected boolean downmix() { + return UserPreferences.stereoToMono(); + } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java index 147c7848d..d67153a4e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java @@ -10,6 +10,8 @@ public interface IPlayer { boolean canSetSpeed(); + boolean canDownmix(); + float getCurrentPitchStepsAdjustment(); int getCurrentPosition(); @@ -57,6 +59,8 @@ public interface IPlayer { void setPlaybackSpeed(float f); + void setDownmix(boolean enable); + void setVolume(float left, float right); void start(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java index a519fb555..1952c068f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java @@ -27,7 +27,6 @@ import android.widget.TextView; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -48,6 +47,7 @@ import de.danoeh.antennapod.core.util.playback.Playable.PlayableUtils; * control playback instead of communicating with the PlaybackService directly. */ public abstract class PlaybackController { + private static final String TAG = "PlaybackController"; public static final int INVALID_TIME = -1; @@ -78,23 +78,18 @@ public abstract class PlaybackController { this.activity = activity; this.reinitOnPause = reinitOnPause; schedExecutor = new ScheduledThreadPoolExecutor(SCHED_EX_POOLSIZE, - new ThreadFactory() { - - @Override - public Thread newThread(Runnable r) { - Thread t = new Thread(r); - t.setPriority(Thread.MIN_PRIORITY); - return t; - } - }, new RejectedExecutionHandler() { - - @Override - public void rejectedExecution(Runnable r, - ThreadPoolExecutor executor) { - Log.w(TAG, + r -> { + Thread t = new Thread(r); + t.setPriority(Thread.MIN_PRIORITY); + return t; + }, new RejectedExecutionHandler() { + @Override + public void rejectedExecution(Runnable r, + ThreadPoolExecutor executor) { + Log.w(TAG, "Rejected execution of runnable in schedExecutor"); + } } - } ); } @@ -104,10 +99,10 @@ public abstract class PlaybackController { */ public void init() { activity.registerReceiver(statusUpdate, new IntentFilter( - PlaybackService.ACTION_PLAYER_STATUS_CHANGED)); + PlaybackService.ACTION_PLAYER_STATUS_CHANGED)); activity.registerReceiver(notificationReceiver, new IntentFilter( - PlaybackService.ACTION_PLAYER_NOTIFICATION)); + PlaybackService.ACTION_PLAYER_NOTIFICATION)); activity.registerReceiver(shutdownReceiver, new IntentFilter( PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE)); @@ -239,7 +234,7 @@ public abstract class PlaybackController { return null; } - public abstract void setupGUI(); + private void setupPositionObserver() { if ((positionObserverFuture != null && positionObserverFuture @@ -263,8 +258,6 @@ public abstract class PlaybackController { } } - public abstract void onPositionObserverUpdate(); - private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { playbackService = ((PlaybackService.LocalBinder) service) @@ -367,26 +360,31 @@ public abstract class PlaybackController { } }; - public abstract void onPlaybackSpeedChange(); + public void setupGUI() {}; + + public void onPositionObserverUpdate() {}; + - public abstract void onShutdownNotification(); + public void onPlaybackSpeedChange() {}; + + public void onShutdownNotification() {}; /** * Called when the currently displayed information should be refreshed. */ - public abstract void onReloadNotification(int code); + public void onReloadNotification(int code) {}; - public abstract void onBufferStart(); + public void onBufferStart() {}; - public abstract void onBufferEnd(); + public void onBufferEnd() {}; - public abstract void onBufferUpdate(float progress); + public void onBufferUpdate(float progress) {}; - public abstract void onSleepTimerUpdate(); + public void onSleepTimerUpdate() {}; - public abstract void handleError(int code); + public void handleError(int code) {}; - public abstract void onPlaybackEnd(); + public void onPlaybackEnd() {}; public void repeatHandleStatus() { if (status != null && playbackService != null) { @@ -484,15 +482,19 @@ public abstract class PlaybackController { } } - public abstract ImageButton getPlayButton(); + public ImageButton getPlayButton() { + return null; + }; - public abstract void postStatusMsg(int msg); + public void postStatusMsg(int msg) {}; - public abstract void clearStatusMsg(); + public void clearStatusMsg() {}; - public abstract boolean loadMediaInfo(); + public boolean loadMediaInfo() { + return false; + }; - public abstract void onAwaitingVideoSurface(); + public void onAwaitingVideoSurface() {}; /** * Called when connection to playback service has been established or @@ -526,7 +528,7 @@ public abstract class PlaybackController { } } - public abstract void onServiceQueried(); + public void onServiceQueried() {}; /** * Should be used by classes which implement the OnSeekBarChanged interface. @@ -691,6 +693,12 @@ public abstract class PlaybackController { } } + public void setVolume(float leftVolume, float rightVolume) { + if (playbackService != null) { + playbackService.setVolume(leftVolume, rightVolume); + } + } + public float getCurrentPlaybackSpeedMultiplier() { if (canSetPlaybackSpeed()) { return playbackService.getCurrentPlaybackSpeed(); @@ -699,6 +707,16 @@ public abstract class PlaybackController { } } + public boolean canDownmix() { + return playbackService != null && playbackService.canDownmix(); + } + + public void setDownmix(boolean enable) { + if(playbackService != null) { + playbackService.setDownmix(enable); + } + } + public boolean isPlayingVideo() { if (playbackService != null) { return PlaybackService.getCurrentMediaType() == MediaType.VIDEO; diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java index 00f2e6f57..2eee1ac87 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java @@ -88,7 +88,7 @@ public class Timeline { } // replace ASCII line breaks with HTML ones if shownotes don't contain HTML line breaks already - if(!LINE_BREAK_REGEX.matcher(shownotes).find()) { + if(!LINE_BREAK_REGEX.matcher(shownotes).find() && !shownotes.contains("<p>")) { shownotes = shownotes.replace("\n", "<br />"); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java index dc5270d8f..368379509 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java @@ -17,6 +17,11 @@ public class VideoPlayer extends MediaPlayer implements IPlayer { } @Override + public boolean canDownmix() { + return false; + } + + @Override public float getCurrentPitchStepsAdjustment() { return 1; } @@ -60,6 +65,12 @@ public class VideoPlayer extends MediaPlayer implements IPlayer { throw new UnsupportedOperationException("Setting playback speed unsupported in video player"); } + @Override + public void setDownmix(boolean b) { + Log.e(TAG, "Setting downmix unsupported in video player"); + throw new UnsupportedOperationException("Setting downmix unsupported in video player"); + } + @Override public void setVideoScalingMode(int mode) { super.setVideoScalingMode(mode); diff --git a/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..edbc95b05 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png Binary files differnew file mode 100644 index 000000000..cbfb262d8 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..809066499 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..4496a320d --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png Binary files differnew file mode 100644 index 000000000..79684ab65 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png Binary files differnew file mode 100644 index 000000000..f0df6032c --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..006410bc3 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png Binary files differnew file mode 100644 index 000000000..27831192f --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..93f70a024 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png diff --git a/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png Binary files differnew file mode 100644 index 000000000..e8619b780 --- /dev/null +++ b/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..be0fcc765 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png Binary files differnew file mode 100644 index 000000000..893cf2c64 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..ea511bf2a --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..7f631ad86 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png Binary files differnew file mode 100644 index 000000000..795e318e3 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png Binary files differnew file mode 100644 index 000000000..4304a6bca --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..dd9d11ba0 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png Binary files differnew file mode 100644 index 000000000..104fb3c9d --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..af84b71f2 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png diff --git a/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png Binary files differnew file mode 100644 index 000000000..0ccebc7c8 --- /dev/null +++ b/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..2e291dd19 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png Binary files differnew file mode 100644 index 000000000..fa85f1899 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..ae0787a26 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..026224c5e --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png Binary files differnew file mode 100644 index 000000000..ef39d7279 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png Binary files differnew file mode 100644 index 000000000..07e156172 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..5160319b5 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png Binary files differnew file mode 100644 index 000000000..33f9727d3 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..7a09ebc33 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png diff --git a/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png Binary files differnew file mode 100644 index 000000000..288799f93 --- /dev/null +++ b/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..00a55a0f8 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png Binary files differnew file mode 100644 index 000000000..ac38e6d42 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..f4bd9e94d --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..6c42d6051 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png Binary files differnew file mode 100644 index 000000000..b8e06f9b3 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png Binary files differnew file mode 100644 index 000000000..e2249c357 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..6348e1997 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png Binary files differnew file mode 100644 index 000000000..aab4831ff --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..ef0294931 --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png Binary files differnew file mode 100644 index 000000000..de4b7b29d --- /dev/null +++ b/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png Binary files differnew file mode 100644 index 000000000..94836e0c8 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png Binary files differnew file mode 100644 index 000000000..a84f34228 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..9c0116c60 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..e8141d0df --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png Binary files differnew file mode 100644 index 000000000..ca41ad5e6 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png Binary files differnew file mode 100644 index 000000000..29782e155 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..1109e95c8 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png Binary files differnew file mode 100644 index 000000000..086cb677c --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png Binary files differnew file mode 100644 index 000000000..dda3262ed --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png Binary files differnew file mode 100644 index 000000000..ba29292b0 --- /dev/null +++ b/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index 6e885c0bb..55da0ee04 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -76,15 +76,15 @@ </string-array> <string-array name="playback_speed_values"> - <item>0.5</item> - <item>0.6</item> - <item>0.7</item> + <item>0.50</item> + <item>0.60</item> + <item>0.70</item> <item>0.75</item> - <item>0.8</item> + <item>0.80</item> <item>0.85</item> - <item>0.9</item> + <item>0.90</item> <item>0.95</item> - <item>1.0</item> + <item>1.00</item> <item>1.05</item> <item>1.10</item> <item>1.15</item> diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index 4e444c990..7adf8295b 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -13,7 +13,6 @@ <attr name="content_discard" format="reference"/> <attr name="content_new" format="reference"/> <attr name="feed" format="reference"/> - <attr name="device_access_time" format="reference"/> <attr name="location_web_site" format="reference"/> <attr name="navigation_accept" format="reference"/> <attr name="navigation_cancel" format="reference"/> @@ -37,15 +36,20 @@ <attr name="av_pause_big" format="reference"/> <attr name="av_ff_big" format="reference"/> <attr name="av_rew_big" format="reference"/> + <attr name="av_skip_big" format="reference"/> <attr name="ic_settings" format="reference"/> <attr name="ic_lock_open" format="reference"/> <attr name="ic_lock_closed" format="reference"/> <attr name="ic_filter" format="reference"/> <attr name="progressBarTheme" format="reference"/> + <attr name="ic_fav" format="reference"/> + <attr name="ic_unfav" format="reference"/> + <attr name="ic_sleep" format="reference"/> + <attr name="ic_sleep_off" format="reference"/> <!-- Used in itemdescription --> <attr name="non_transparent_background" format="reference"/> <attr name="overlay_background" format="color"/> <attr name="nav_drawer_background" format="color"/> -</resources>
\ No newline at end of file +</resources> diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml index aa57e3051..9aafd14e3 100644 --- a/core/src/main/res/values/dimens.xml +++ b/core/src/main/res/values/dimens.xml @@ -33,6 +33,6 @@ <dimen name="listitem_icon_leftpadding">16dp</dimen> <dimen name="listitem_icon_rightpadding">16dp</dimen> - <dimen name="audioplayer_playercontrols_length">64dp</dimen> + <dimen name="audioplayer_playercontrols_length">48dp</dimen> -</resources>
\ No newline at end of file +</resources> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 726697602..303ca307f 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -150,7 +150,9 @@ <string name="added_to_queue_label">Added to Queue</string> <string name="remove_from_queue_label">Remove from Queue</string> <string name="add_to_favorite_label">Add to Favorites</string> + <string name="added_to_favorites">Added to Favorites</string> <string name="remove_from_favorite_label">Remove from Favorites</string> + <string name="removed_from_favorites">Removed from Favorites</string> <string name="visit_website_label">Visit Website</string> <string name="support_label">Flattr this</string> <string name="enqueue_all_new">Enqueue all</string> @@ -265,13 +267,14 @@ <!-- Variable Speed --> <string name="download_plugin_label">Download Plugin</string> <string name="no_playback_plugin_title">Plugin Not Installed</string> - <string name="no_playback_plugin_or_sonic_msg">For variable speed playback to work, you have to install a third party library or enable the experimental Sonic player [Android 4.1+].\n\nTap \'Download Plugin\' to download a free plugin from the Play Store.\n\nAny problems found using this plugin are not the responsibility of AntennaPod and should be reported to the plugin owner.</string> + <string name="no_playback_plugin_or_sonic_msg">For variable speed playback to work, we recommend to enable the built-in Sonic mediaplayer [Android 4.1+].\n\nAlternatively, you can download the third party plugin <i>Prestissimo</i> from the Play Store.\nAny problems with Prestissimo are not the responsibility of AntennaPod and should be reported to the plugin owner.</string> <string name="set_playback_speed_label">Playback Speeds</string> <string name="enable_sonic">Enable Sonic</string> <!-- Empty list labels --> <string name="no_items_label">There are no items in this list.</string> <string name="no_feeds_label">You haven\'t subscribed to any feeds yet.</string> + <string name="no_chapters_label">This episode has no chapters.</string> <!-- Preferences --> <string name="other_pref">Other</string> @@ -280,7 +283,7 @@ <string name="services_label">Services</string> <string name="flattr_label">Flattr</string> <string name="pref_episode_cleanup_title">Episode Cleanup</string> - <string name="pref_episode_cleanup_summary">Episodes that aren\'t in the queue and aren\'t favorites should be eligible for removal if space is needed</string> + <string name="pref_episode_cleanup_summary">Episodes that aren\'t in the queue and aren\'t favorites should be eligible for removal if Auto Download needs space for new episodes</string> <string name="pref_pauseOnDisconnect_sum">Pause playback when headphones or bluetooth are disconnected</string> <string name="pref_unpauseOnHeadsetReconnect_sum">Resume playback when the headphones are reconnected</string> <string name="pref_unpauseOnBluetoothReconnect_sum">Resume playback when bluetooth reconnects</string> @@ -377,7 +380,7 @@ <string name="send_email">Send e-mail</string> <string name="experimental_pref">Experimental</string> <string name="pref_sonic_title">Sonic media player</string> - <string name="pref_sonic_message">Use built-in sonic media player as a replacement for Prestissimo</string> + <string name="pref_sonic_message">Use built-in sonic media player as a replacement for Android\'s native mediaplayer and Prestissimo</string> <string name="pref_current_value">Current value: %1$s</string> <!-- Auto-Flattr dialog --> @@ -562,4 +565,14 @@ <string name="rating_later_label">Remind me later</string> <string name="rating_now_label">Sure, let\'s do this!</string> + <!-- Audio controls --> + <string name="audio_controls">Audio controls</string> + <string name="playback_speed">Playback Speed</string> + <string name="volume">Volume</string> + <string name="left_short">L</string> + <string name="right_short">R</string> + <string name="audio_effects">Audio Effects</string> + <string name="stereo_to_mono">Downmix: Stereo to mono</string> + <string name="sonic_only">Sonic only</string> + </resources> diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index 1f73fbba2..45e1206b7 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -18,7 +18,6 @@ <item name="attr/av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item> <item name="attr/content_discard">@drawable/ic_delete_grey600_24dp</item> <item name="attr/content_new">@drawable/ic_add_grey600_24dp</item> - <item name="attr/device_access_time">@drawable/ic_timer_grey600_24dp</item> <item name="attr/feed">@drawable/ic_feed_grey600_24dp</item> <item name="attr/location_web_site">@drawable/ic_web_grey600_24dp</item> <item name="attr/navigation_accept">@drawable/ic_done_grey600_24dp</item> @@ -45,10 +44,16 @@ <item name="attr/av_pause_big">@drawable/ic_pause_grey600_36dp</item> <item name="attr/av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item> <item name="attr/av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item> + <item name="attr/av_skip_big">@drawable/ic_skip_grey600_36dp</item> + <item name="attr/ic_fav">@drawable/ic_star_border_grey600_24dp</item> + <item name="attr/ic_unfav">@drawable/ic_star_grey600_24dp</item> <item name="attr/ic_settings">@drawable/ic_settings_grey600_24dp</item> <item name="attr/ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item> <item name="attr/ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item> <item name="attr/ic_filter">@drawable/ic_filter_grey600_24dp</item> + <item name="attr/ic_sleep">@drawable/ic_sleep_grey600_24dp</item> + <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item> + </style> <style name="Theme.AntennaPod.Dark" parent="Theme.AppCompat"> @@ -67,7 +72,6 @@ <item name="attr/av_rewind">@drawable/ic_fast_rewind_white_24dp</item> <item name="attr/content_discard">@drawable/ic_delete_white_24dp</item> <item name="attr/content_new">@drawable/ic_add_white_24dp</item> - <item name="attr/device_access_time">@drawable/ic_timer_white_24dp</item> <item name="attr/feed">@drawable/ic_feed_white_24dp</item> <item name="attr/location_web_site">@drawable/ic_web_white_24dp</item> <item name="attr/navigation_accept">@drawable/ic_done_white_24dp</item> @@ -94,10 +98,15 @@ <item name="attr/av_pause_big">@drawable/ic_pause_white_36dp</item> <item name="attr/av_ff_big">@drawable/ic_fast_forward_white_36dp</item> <item name="attr/av_rew_big">@drawable/ic_fast_rewind_white_36dp</item> + <item name="attr/av_skip_big">@drawable/ic_skip_white_36dp</item> + <item name="attr/ic_fav">@drawable/ic_star_border_white_24dp</item> + <item name="attr/ic_unfav">@drawable/ic_star_white_24dp</item> <item name="attr/ic_settings">@drawable/ic_settings_white_24dp</item> <item name="attr/ic_lock_open">@drawable/ic_lock_open_white_24dp</item> <item name="attr/ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item> <item name="attr/ic_filter">@drawable/ic_filter_white_24dp</item> + <item name="attr/ic_sleep">@drawable/ic_sleep_white_24dp</item> + <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item> </style> <style name="Theme.AntennaPod.Light.NoTitle" parent="Theme.AppCompat.Light.NoActionBar"> @@ -118,7 +127,6 @@ <item name="attr/av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item> <item name="attr/content_discard">@drawable/ic_delete_grey600_24dp</item> <item name="attr/content_new">@drawable/ic_add_grey600_24dp</item> - <item name="attr/device_access_time">@drawable/ic_timer_grey600_24dp</item> <item name="attr/feed">@drawable/ic_feed_grey600_24dp</item> <item name="attr/location_web_site">@drawable/ic_web_grey600_24dp</item> <item name="attr/navigation_accept">@drawable/ic_done_grey600_24dp</item> @@ -145,10 +153,15 @@ <item name="attr/av_pause_big">@drawable/ic_pause_grey600_36dp</item> <item name="attr/av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item> <item name="attr/av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item> + <item name="attr/av_skip_big">@drawable/ic_skip_grey600_36dp</item> + <item name="attr/ic_fav">@drawable/ic_star_border_grey600_24dp</item> + <item name="attr/ic_unfav">@drawable/ic_star_grey600_24dp</item> <item name="attr/ic_settings">@drawable/ic_settings_grey600_24dp</item> <item name="attr/ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item> <item name="attr/ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item> <item name="attr/ic_filter">@drawable/ic_filter_grey600_24dp</item> + <item name="attr/ic_sleep">@drawable/ic_sleep_grey600_24dp</item> + <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item> </style> <style name="Theme.AntennaPod.Dark.NoTitle" parent="Theme.AppCompat.NoActionBar"> @@ -168,7 +181,6 @@ <item name="attr/av_rewind">@drawable/ic_fast_rewind_white_24dp</item> <item name="attr/content_discard">@drawable/ic_delete_white_24dp</item> <item name="attr/content_new">@drawable/ic_add_white_24dp</item> - <item name="attr/device_access_time">@drawable/ic_timer_white_24dp</item> <item name="attr/feed">@drawable/ic_feed_white_24dp</item> <item name="attr/location_web_site">@drawable/ic_web_white_24dp</item> <item name="attr/navigation_accept">@drawable/ic_done_white_24dp</item> @@ -195,10 +207,15 @@ <item name="attr/av_pause_big">@drawable/ic_pause_white_36dp</item> <item name="attr/av_ff_big">@drawable/ic_fast_forward_white_36dp</item> <item name="attr/av_rew_big">@drawable/ic_fast_rewind_white_36dp</item> + <item name="attr/av_skip_big">@drawable/ic_skip_white_36dp</item> + <item name="attr/ic_fav">@drawable/ic_star_border_white_24dp</item> + <item name="attr/ic_unfav">@drawable/ic_star_white_24dp</item> <item name="attr/ic_settings">@drawable/ic_settings_white_24dp</item> <item name="attr/ic_lock_open">@drawable/ic_lock_open_white_24dp</item> <item name="attr/ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item> <item name="attr/ic_filter">@drawable/ic_filter_white_24dp</item> + <item name="attr/ic_sleep">@drawable/ic_sleep_white_24dp</item> + <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item> </style> <style name="Theme.AntennaPod.VideoPlayer" parent="@style/Theme.AntennaPod.Dark"> |