diff options
Diffstat (limited to 'core/src/main')
25 files changed, 107 insertions, 153 deletions
diff --git a/core/src/main/assets/shownotes-style.css b/core/src/main/assets/shownotes-style.css index 097f8a33d..c21a77eae 100644 --- a/core/src/main/assets/shownotes-style.css +++ b/core/src/main/assets/shownotes-style.css @@ -12,7 +12,7 @@ a { font-style: normal; text-decoration: none; font-weight: normal; - color: #00A8DF; + color: %s; } a.timecode { color: #669900; diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java index 175f8e77b..a41b04b53 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java @@ -209,7 +209,7 @@ public class FeedMedia extends FeedFile implements Playable { * currently being played. */ public boolean isPlaying() { - return PlaybackPreferences.getCurrentlyPlayingMedia() == FeedMedia.PLAYABLE_TYPE_FEEDMEDIA + return PlaybackPreferences.getCurrentlyPlayingMediaType() == FeedMedia.PLAYABLE_TYPE_FEEDMEDIA && PlaybackPreferences.getCurrentlyPlayingFeedMediaId() == id; } diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/PlaybackPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/PlaybackPreferences.java index 4e2233407..a4612d857 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/PlaybackPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/PlaybackPreferences.java @@ -33,14 +33,16 @@ public class PlaybackPreferences implements SharedPreferences.OnSharedPreference * Contains the id of the currently playing FeedMedia object or * NO_MEDIA_PLAYING if the currently playing media is no FeedMedia object. */ - private static final String PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID = "de.danoeh.antennapod.preferences.lastPlayedFeedMediaId"; + private static final String PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID + = "de.danoeh.antennapod.preferences.lastPlayedFeedMediaId"; /** * Type of the media object that is currently being played. This preference * is set to NO_MEDIA_PLAYING after playback has been completed and is set * as soon as the 'play' button is pressed. */ - private static final String PREF_CURRENTLY_PLAYING_MEDIA = "de.danoeh.antennapod.preferences.currentlyPlayingMedia"; + private static final String PREF_CURRENTLY_PLAYING_MEDIA_TYPE + = "de.danoeh.antennapod.preferences.currentlyPlayingMedia"; /** * True if last played media was streamed. @@ -61,7 +63,8 @@ public class PlaybackPreferences implements SharedPreferences.OnSharedPreference * A temporary playback speed which overrides the per-feed playback speed for the currently playing * media. Considered unset if set to SPEED_USE_GLOBAL; */ - private static final String PREF_CURRENTLY_PLAYING_TEMPORARY_PLAYBACK_SPEED = "de.danoeh.antennapod.preferences.temporaryPlaybackSpeed"; + private static final String PREF_CURRENTLY_PLAYING_TEMPORARY_PLAYBACK_SPEED + = "de.danoeh.antennapod.preferences.temporaryPlaybackSpeed"; /** @@ -102,21 +105,21 @@ public class PlaybackPreferences implements SharedPreferences.OnSharedPreference } } - public static long getCurrentlyPlayingMedia() { - return prefs.getLong(PREF_CURRENTLY_PLAYING_MEDIA, NO_MEDIA_PLAYING); - } + public static long getCurrentlyPlayingMediaType() { + return prefs.getLong(PREF_CURRENTLY_PLAYING_MEDIA_TYPE, NO_MEDIA_PLAYING); + } - public static long getCurrentlyPlayingFeedMediaId() { - return prefs.getLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, NO_MEDIA_PLAYING); - } + public static long getCurrentlyPlayingFeedMediaId() { + return prefs.getLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, NO_MEDIA_PLAYING); + } - public static boolean getCurrentEpisodeIsStream() { - return prefs.getBoolean(PREF_CURRENT_EPISODE_IS_STREAM, true); - } + public static boolean getCurrentEpisodeIsStream() { + return prefs.getBoolean(PREF_CURRENT_EPISODE_IS_STREAM, true); + } - public static boolean getCurrentEpisodeIsVideo() { - return prefs.getBoolean(PREF_CURRENT_EPISODE_IS_VIDEO, false); - } + public static boolean getCurrentEpisodeIsVideo() { + return prefs.getBoolean(PREF_CURRENT_EPISODE_IS_VIDEO, false); + } public static int getCurrentPlayerStatus() { return prefs.getInt(PREF_CURRENT_PLAYER_STATUS, PLAYER_STATUS_OTHER); @@ -128,7 +131,7 @@ public class PlaybackPreferences implements SharedPreferences.OnSharedPreference public static void writeNoMediaPlaying() { SharedPreferences.Editor editor = prefs.edit(); - editor.putLong(PREF_CURRENTLY_PLAYING_MEDIA, NO_MEDIA_PLAYING); + editor.putLong(PREF_CURRENTLY_PLAYING_MEDIA_TYPE, NO_MEDIA_PLAYING); editor.putLong(PREF_CURRENTLY_PLAYING_FEED_ID, NO_MEDIA_PLAYING); editor.putLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, NO_MEDIA_PLAYING); editor.putInt(PREF_CURRENT_PLAYER_STATUS, PLAYER_STATUS_OTHER); @@ -142,13 +145,13 @@ public class PlaybackPreferences implements SharedPreferences.OnSharedPreference if (playable == null) { writeNoMediaPlaying(); } else { - editor.putLong(PREF_CURRENTLY_PLAYING_MEDIA, playable.getPlayableType()); + editor.putLong(PREF_CURRENTLY_PLAYING_MEDIA_TYPE, playable.getPlayableType()); editor.putBoolean(PREF_CURRENT_EPISODE_IS_STREAM, stream); editor.putBoolean(PREF_CURRENT_EPISODE_IS_VIDEO, playable.getMediaType() == MediaType.VIDEO); if (playable instanceof FeedMedia) { - FeedMedia fMedia = (FeedMedia) playable; - editor.putLong(PREF_CURRENTLY_PLAYING_FEED_ID, fMedia.getItem().getFeed().getId()); - editor.putLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, fMedia.getId()); + FeedMedia feedMedia = (FeedMedia) playable; + editor.putLong(PREF_CURRENTLY_PLAYING_FEED_ID, feedMedia.getItem().getFeed().getId()); + editor.putLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, feedMedia.getId()); } else { editor.putLong(PREF_CURRENTLY_PLAYING_FEED_ID, NO_MEDIA_PLAYING); editor.putLong(PREF_CURRENTLY_PLAYING_FEEDMEDIA_ID, NO_MEDIA_PLAYING); 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 476c2cd9e..cb5a405c0 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 @@ -695,7 +695,7 @@ public class UserPreferences { .apply(); // when updating with an interval, we assume the user wants // to update *now* and then every 'hours' interval thereafter. - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(context); } /** @@ -705,14 +705,14 @@ public class UserPreferences { prefs.edit() .putString(PREF_UPDATE_INTERVAL, hourOfDay + ":" + minute) .apply(); - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(context); } - public static void disableAutoUpdate() { + public static void disableAutoUpdate(Context context) { prefs.edit() .putString(PREF_UPDATE_INTERVAL, "0") .apply(); - AutoUpdateManager.disableAutoUpdate(); + AutoUpdateManager.disableAutoUpdate(context); } public static boolean gpodnetNotificationsEnabled() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java b/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java index af0a0d426..b667b154c 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java +++ b/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java @@ -20,7 +20,7 @@ public class FeedUpdateReceiver extends BroadcastReceiver { Log.d(TAG, "Received intent"); ClientConfig.initialize(context); - AutoUpdateManager.runOnce(); + AutoUpdateManager.runOnce(context); } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java index 8811faf8a..6265fc30d 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java @@ -39,7 +39,7 @@ public class FeedUpdateWorker extends Worker { if (!isRunOnce && UserPreferences.isAutoUpdateTimeOfDay()) { // WorkManager does not allow to set specific time for repeated tasks. // We repeatedly schedule a OneTimeWorkRequest instead. - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(getApplicationContext()); } return Result.success(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java index 828691737..e9e224851 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java @@ -168,7 +168,7 @@ public class SyncService extends Worker { public static void sync(Context context) { OneTimeWorkRequest workRequest = getWorkRequest().build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } @@ -176,7 +176,7 @@ public class SyncService extends Worker { OneTimeWorkRequest workRequest = getWorkRequest() .setInitialDelay(0L, TimeUnit.SECONDS) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } @@ -192,7 +192,7 @@ public class SyncService extends Worker { .setInitialDelay(0L, TimeUnit.SECONDS) .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 1, TimeUnit.MINUTES) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java index 6ecca941a..4e7e6a6b6 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java @@ -1,7 +1,6 @@ package de.danoeh.antennapod.core.util; import android.content.Context; -import android.util.Log; import java.util.Locale; @@ -15,53 +14,10 @@ public final class Converter { /** Logging tag. */ private static final String TAG = "Converter"; - - - /** Indicates that the value is in the Byte range.*/ - private static final int B_RANGE = 0; - /** Indicates that the value is in the Kilobyte range.*/ - private static final int KB_RANGE = 1; - /** Indicates that the value is in the Megabyte range.*/ - private static final int MB_RANGE = 2; - /** Indicates that the value is in the Gigabyte range.*/ - private static final int GB_RANGE = 3; - /** Determines the length of the number for best readability.*/ - private static final int NUM_LENGTH = 1024; private static final int HOURS_MIL = 3600000; private static final int MINUTES_MIL = 60000; private static final int SECONDS_MIL = 1000; - - /** Takes a byte-value and converts it into a more readable - * String. - * @param input The value to convert - * @return The converted String with a unit - * */ - public static String byteToString(final long input) { - int i = 0; - int result = 0; - - for (i = 0; i < GB_RANGE + 1; i++) { - result = (int) (input / Math.pow(1024, i)); - if (result < NUM_LENGTH) { - break; - } - } - - switch (i) { - case B_RANGE: - return result + " B"; - case KB_RANGE: - return result + " KB"; - case MB_RANGE: - return result + " MB"; - case GB_RANGE: - return result + " GB"; - default: - Log.e(TAG, "Error happened in byteToString"); - return "ERROR"; - } - } /** Converts milliseconds to a string containing hours, minutes and seconds */ public static String getDurationStringLong(int duration) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java b/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java index fc04d82cc..991089910 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java @@ -32,24 +32,25 @@ public class AutoUpdateManager { /** * Start / restart periodic auto feed refresh + * @param context Context */ - public static void restartUpdateAlarm() { + public static void restartUpdateAlarm(Context context) { if (UserPreferences.isAutoUpdateDisabled()) { - disableAutoUpdate(); + disableAutoUpdate(context); } else if (UserPreferences.isAutoUpdateTimeOfDay()) { int[] timeOfDay = UserPreferences.getUpdateTimeOfDay(); Log.d(TAG, "timeOfDay: " + Arrays.toString(timeOfDay)); - restartUpdateTimeOfDayAlarm(timeOfDay[0], timeOfDay[1]); + restartUpdateTimeOfDayAlarm(timeOfDay[0], timeOfDay[1], context); } else { long milliseconds = UserPreferences.getUpdateInterval(); - restartUpdateIntervalAlarm(milliseconds); + restartUpdateIntervalAlarm(milliseconds, context); } } /** * Sets the interval in which the feeds are refreshed automatically */ - private static void restartUpdateIntervalAlarm(long intervalMillis) { + private static void restartUpdateIntervalAlarm(long intervalMillis, Context context) { Log.d(TAG, "Restarting update alarm."); PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(FeedUpdateWorker.class, @@ -57,14 +58,14 @@ public class AutoUpdateManager { .setConstraints(getConstraints()) .build(); - WorkManager.getInstance().enqueueUniquePeriodicWork( + WorkManager.getInstance(context).enqueueUniquePeriodicWork( WORK_ID_FEED_UPDATE, ExistingPeriodicWorkPolicy.REPLACE, workRequest); } /** * Sets time of day the feeds are refreshed automatically */ - private static void restartUpdateTimeOfDayAlarm(int hoursOfDay, int minute) { + private static void restartUpdateTimeOfDayAlarm(int hoursOfDay, int minute, Context context) { Log.d(TAG, "Restarting update alarm."); Calendar now = Calendar.getInstance(); @@ -81,7 +82,8 @@ public class AutoUpdateManager { .setInitialDelay(triggerAtMillis, TimeUnit.MILLISECONDS) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_FEED_UPDATE, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_FEED_UPDATE, + ExistingWorkPolicy.REPLACE, workRequest); } /** @@ -89,8 +91,9 @@ public class AutoUpdateManager { * * Callers from UI should use {@link #runImmediate(Context)}, as it will guarantee * the refresh be run immediately. + * @param context Context */ - public static void runOnce() { + public static void runOnce(Context context) { Log.d(TAG, "Run auto update once, as soon as OS allows."); OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(FeedUpdateWorker.class) @@ -102,7 +105,8 @@ public class AutoUpdateManager { ) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_FEED_UPDATE_ONCE, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_FEED_UPDATE_ONCE, + ExistingWorkPolicy.REPLACE, workRequest); } @@ -110,7 +114,7 @@ public class AutoUpdateManager { /** * Run auto feed refresh once in background immediately, using its own thread. * - * Callers where the additional threads is not suitable should use {@link #runOnce()} + * Callers where the additional threads is not suitable should use {@link #runOnce(Context)} */ public static void runImmediate(@NonNull Context context) { Log.d(TAG, "Run auto update immediately in background."); @@ -119,8 +123,8 @@ public class AutoUpdateManager { }, "ManualRefreshAllFeeds").start(); } - public static void disableAutoUpdate() { - WorkManager.getInstance().cancelUniqueWork(WORK_ID_FEED_UPDATE); + public static void disableAutoUpdate(Context context) { + WorkManager.getInstance(context).cancelUniqueWork(WORK_ID_FEED_UPDATE); } private static Constraints getConstraints() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java index 378c47faf..24aabf212 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java @@ -188,7 +188,7 @@ public interface Playable extends Parcelable, */ @Nullable public static Playable createInstanceFromPreferences(Context context) { - long currentlyPlayingMedia = PlaybackPreferences.getCurrentlyPlayingMedia(); + long currentlyPlayingMedia = PlaybackPreferences.getCurrentlyPlayingMediaType(); if (currentlyPlayingMedia != PlaybackPreferences.NO_MEDIA_PLAYING) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); return PlayableUtils.createInstanceFromPreferences(context, diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java index c39121564..ca09cda4b 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java @@ -282,7 +282,7 @@ public class RemoteMedia implements Playable { dest.writeString(imageUrl); dest.writeString(feedLink); dest.writeString(mimeType); - dest.writeLong(pubDate.getTime()); + dest.writeLong((pubDate != null) ? pubDate.getTime() : 0); dest.writeString(notes); dest.writeInt(duration); dest.writeInt(position); 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 b59a95cd9..40849a262 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 @@ -53,12 +53,8 @@ public class Timeline { this.shownotesProvider = shownotesProvider; noShownotesLabel = context.getString(R.string.no_shownotes_label); - - TypedArray res = context.getTheme().obtainStyledAttributes(new int[]{android.R.attr.textColorPrimary}); - @ColorInt int col = res.getColor(0, 0); - final String colorPrimary = "rgba(" + Color.red(col) + "," + Color.green(col) + "," - + Color.blue(col) + "," + (Color.alpha(col) / 255.0) + ")"; - res.recycle(); + final String colorPrimary = colorToHtml(context, android.R.attr.textColorPrimary); + final String colorAccent = colorToHtml(context, R.attr.colorAccent); final int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, context.getResources().getDisplayMetrics()); String styleString = ""; @@ -68,7 +64,17 @@ public class Timeline { } catch (IOException e) { e.printStackTrace(); } - webviewStyle = String.format(Locale.getDefault(), styleString, colorPrimary, margin, margin, margin, margin); + webviewStyle = String.format(Locale.US, styleString, colorPrimary, colorAccent, + margin, margin, margin, margin); + } + + private String colorToHtml(Context context, int colorAttr) { + TypedArray res = context.getTheme().obtainStyledAttributes(new int[]{colorAttr}); + @ColorInt int col = res.getColor(0, 0); + final String color = "rgba(" + Color.red(col) + "," + Color.green(col) + "," + + Color.blue(col) + "," + (Color.alpha(col) / 255.0) + ")"; + res.recycle(); + return color; } /** diff --git a/core/src/main/res/drawable/progress_bar_horizontal_dark.xml b/core/src/main/res/drawable/progress_bar_horizontal_dark.xml index 73ad5b37c..7a09fa73f 100644 --- a/core/src/main/res/drawable/progress_bar_horizontal_dark.xml +++ b/core/src/main/res/drawable/progress_bar_horizontal_dark.xml @@ -2,13 +2,13 @@ <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> - <solid android:color="#33FFFFFF"/> + <solid android:color="#19FFFFFF"/> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> - <solid android:color="@color/holo_blue_dark"/> + <solid android:color="@color/accent_dark"/> </shape> </clip> </item> diff --git a/core/src/main/res/drawable/progress_bar_horizontal_light.xml b/core/src/main/res/drawable/progress_bar_horizontal_light.xml index a1a7129e9..b982f522f 100644 --- a/core/src/main/res/drawable/progress_bar_horizontal_light.xml +++ b/core/src/main/res/drawable/progress_bar_horizontal_light.xml @@ -2,13 +2,13 @@ <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> - <solid android:color="#33212121"/> + <solid android:color="#19212121"/> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> - <solid android:color="@color/holo_blue_light"/> + <solid android:color="@color/accent_light"/> </shape> </clip> </item> diff --git a/core/src/main/res/drawable/progress_bar_horizontal_trueblack.xml b/core/src/main/res/drawable/progress_bar_horizontal_trueblack.xml deleted file mode 100644 index 604bb2655..000000000 --- a/core/src/main/res/drawable/progress_bar_horizontal_trueblack.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@android:id/background"> - <shape> - <solid android:color="#000000"/> - </shape> - </item> - <item android:id="@android:id/progress"> - <clip> - <shape> - <solid android:color="@color/holo_blue_dark"/> - </shape> - </clip> - </item> -</layer-list> diff --git a/core/src/main/res/drawable/scrollbar_thumb.xml b/core/src/main/res/drawable/scrollbar_thumb_dark.xml index 4b08668bf..929c03914 100644 --- a/core/src/main/res/drawable/scrollbar_thumb.xml +++ b/core/src/main/res/drawable/scrollbar_thumb_dark.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_pressed="true" android:drawable="@drawable/scrollbar_thumb_pressed"/> + <item android:state_pressed="true" android:drawable="@drawable/scrollbar_thumb_pressed_dark"/> <item android:drawable="@drawable/scrollbar_thumb_default"/> </selector> diff --git a/core/src/main/res/drawable/scrollbar_thumb_light.xml b/core/src/main/res/drawable/scrollbar_thumb_light.xml new file mode 100644 index 000000000..a13cfd705 --- /dev/null +++ b/core/src/main/res/drawable/scrollbar_thumb_light.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" android:drawable="@drawable/scrollbar_thumb_pressed_light"/> + <item android:drawable="@drawable/scrollbar_thumb_default"/> +</selector> diff --git a/core/src/main/res/drawable/scrollbar_thumb_pressed.xml b/core/src/main/res/drawable/scrollbar_thumb_pressed_dark.xml index 4f3ad719e..a1618c5b6 100644 --- a/core/src/main/res/drawable/scrollbar_thumb_pressed.xml +++ b/core/src/main/res/drawable/scrollbar_thumb_pressed_dark.xml @@ -7,7 +7,7 @@ </item> <item android:gravity="end"> <shape android:shape="rectangle"> - <solid android:color="@color/antennapod_blue"/> + <solid android:color="@color/accent_dark"/> <size android:height="4dp" android:width="4dp"/> </shape> </item> diff --git a/core/src/main/res/drawable/scrollbar_thumb_pressed_light.xml b/core/src/main/res/drawable/scrollbar_thumb_pressed_light.xml new file mode 100644 index 000000000..be684541a --- /dev/null +++ b/core/src/main/res/drawable/scrollbar_thumb_pressed_light.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item> + <shape android:shape="rectangle"> + <size android:height="24dp" android:width="24dp"/> + </shape> + </item> + <item android:gravity="end"> + <shape android:shape="rectangle"> + <solid android:color="@color/accent_light"/> + <size android:height="4dp" android:width="4dp"/> + </shape> + </item> +</layer-list> diff --git a/core/src/main/res/values-v21/styles.xml b/core/src/main/res/values-v21/styles.xml index 54951b9ec..9f74da348 100644 --- a/core/src/main/res/values-v21/styles.xml +++ b/core/src/main/res/values-v21/styles.xml @@ -3,9 +3,11 @@ <style name="Theme.AntennaPod.Light" parent="Theme.Base.AntennaPod.Light"> <item name="android:windowContentTransitions">true</item> </style> + <style name="Theme.AntennaPod.Dark" parent="Theme.Base.AntennaPod.Dark"> <item name="android:windowContentTransitions">true</item> </style> + <style name="Theme.AntennaPod.TrueBlack" parent="Theme.Base.AntennaPod.TrueBlack"> <item name="android:windowContentTransitions">true</item> <item name="android:navigationBarColor">@color/black</item> @@ -13,6 +15,7 @@ <item name="android:colorPrimary">@color/black</item> <item name="android:colorPrimaryDark">@color/black</item> </style> + <style name="Theme.AntennaPod.TrueBlack.NoTitle" parent="Theme.Base.AntennaPod.TrueBlack.NoTitle"> <item name="android:navigationBarColor">@color/black</item> <item name="android:colorAccent">@color/white</item> @@ -20,9 +23,4 @@ <item name="android:colorPrimaryDark">@color/black</item> </style> - <style name="Widget.AntennaPod.Button" parent="Widget.AppCompat.Button.Colored"> - <item name="colorButtonNormal">@color/antennapod_blue</item> - <item name="textAllCaps">true</item> - </style> - </resources>
\ No newline at end of file diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index 471e31439..f8b545ac0 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -55,6 +55,7 @@ <attr name="drawer_activated_color" format="color"/> <attr name="batch_edit_fab_icon" format="reference"/> <attr name="action_icon_color" format="color"/> + <attr name="scrollbar_thumb" format="reference"/> <declare-styleable name="SquareImageView"> <attr name="direction" format="enum"> diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index d3813235f..0937e37e2 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -6,11 +6,8 @@ <color name="grey600">#757575</color> <color name="light_gray">#bfbfbf</color> <color name="black">#000000</color> - <color name="holo_blue_light">#33B5E5</color> - <color name="holo_blue_dark">#0099CC</color> <color name="download_success_green">#248800</color> <color name="download_failed_red">#B00020</color> - <color name="new_indicator_green">#669900</color> <color name="image_readability_tint">#80000000</color> <color name="feed_image_bg">#50000000</color> @@ -21,7 +18,9 @@ <color name="highlight_dark">#414141</color> <color name="highlight_trueblack">#414141</color> - <color name="antennapod_blue">#147BAF</color> + <color name="accent_light">#0078C2</color> + <color name="accent_dark">#5C9DFF</color> + <color name="ic_launcher_background">#008AB8</color> <color name="master_switch_background_light">#DDDDDD</color> <color name="master_switch_background_dark">#191919</color> diff --git a/core/src/main/res/values/ic_launcher_background.xml b/core/src/main/res/values/ic_launcher_background.xml deleted file mode 100644 index 3df03b8f4..000000000 --- a/core/src/main/res/values/ic_launcher_background.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <color name="ic_launcher_background">#008AB8</color> -</resources>
\ No newline at end of file diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 3740bda03..efd7d698a 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -698,6 +698,7 @@ <string name="browse_gpoddernet_label">Browse gpodder.net</string> <string name="discover">Discover</string> <string name="discover_more">more ยป</string> + <string name="search_powered_by">Search powered by %1$s</string> <string name="filter">Filter</string> diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index 28747df30..3cac01d71 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -7,11 +7,10 @@ <style name="Theme.Base.AntennaPod.Light" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/primary_light</item> - <item name="colorAccent">@color/holo_blue_light</item> + <item name="colorAccent">@color/accent_light</item> <item name="progressBarTheme">@style/ProgressBarLight</item> <item name="buttonStyle">@style/Widget.AntennaPod.Button</item> <item name="android:windowBackground">@color/primary_light</item> - <item name="alertDialogTheme">@style/AntennaPod.Dialog.Light</item> <item name="storage">@drawable/ic_storage_black</item> <item name="ic_network">@drawable/ic_network_black</item> <item name="statistics">@drawable/ic_statistics_black</item> @@ -67,6 +66,7 @@ <item name="currently_playing_background">@color/highlight_light</item> <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item> <item name="action_icon_color">@color/black</item> + <item name="scrollbar_thumb">@drawable/scrollbar_thumb_light</item> </style> <style name="Theme.AntennaPod.Dark" parent="Theme.Base.AntennaPod.Dark"> @@ -74,14 +74,13 @@ </style> <style name="Theme.Base.AntennaPod.Dark" parent="Theme.AppCompat"> - <item name="colorAccent">@color/holo_blue_dark</item> + <item name="colorAccent">@color/accent_dark</item> <item name="colorPrimary">@color/primary_darktheme</item> <item name="colorPrimaryDark">@color/primary_darktheme</item> <item name="android:windowBackground">@color/primary_darktheme</item> <item name="colorControlNormal">@color/white</item> <item name="buttonStyle">@style/Widget.AntennaPod.Button</item> <item name="progressBarTheme">@style/ProgressBarDark</item> - <item name="alertDialogTheme">@style/AntennaPod.Dialog.Dark</item> <item name="storage">@drawable/ic_storage_white</item> <item name="ic_network">@drawable/ic_network_white</item> <item name="statistics">@drawable/ic_statistics_white</item> @@ -137,6 +136,7 @@ <item name="currently_playing_background">@color/highlight_dark</item> <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item> <item name="action_icon_color">@color/white</item> + <item name="scrollbar_thumb">@drawable/scrollbar_thumb_dark</item> </style> <style name="Theme.AntennaPod.TrueBlack" parent="Theme.Base.AntennaPod.TrueBlack"> @@ -144,7 +144,6 @@ </style> <style name="Theme.Base.AntennaPod.TrueBlack" parent="Theme.Base.AntennaPod.Dark"> - <item name="progressBarTheme">@style/ProgressBarTrueBlack</item> <item name="batch_edit_fab_icon">@drawable/ic_fab_edit_black</item> <item name="drawer_activated_color">@color/highlight_trueblack</item> <item name="android:textColorPrimary">@color/white</item> @@ -267,24 +266,16 @@ <style name="AntennaPod.TextView.UnreadIndicator" parent="@android:style/TextAppearance.Small"> <item name="android:textSize">@dimen/text_size_micro</item> - <item name="android:textColor">@color/new_indicator_green</item> + <item name="android:textColor">?attr/colorAccent</item> <item name="android:text">@string/new_label</item> <item name="android:textAllCaps">true</item> </style> <style name="Widget.AntennaPod.Button" parent="Widget.AppCompat.Button.Colored"> - <item name="colorButtonNormal">@color/antennapod_blue</item> + <item name="colorButtonNormal">?attr/colorAccent</item> <item name="textAllCaps">false</item> </style> - <style name="AntennaPod.Dialog.Light" parent="Theme.AppCompat.Light.Dialog"> - <item name="colorAccent">@color/holo_blue_light</item> - </style> - - <style name="AntennaPod.Dialog.Dark" parent="Theme.AppCompat.Dialog"> - <item name="colorAccent">@color/holo_blue_dark</item> - </style> - <style name="BigBlurryBackground"> <item name="android:scaleType">centerCrop</item> <!-- <item name="android:tint">@color/image_readability_tint</item> --> @@ -303,17 +294,12 @@ <item name="android:progressDrawable">@drawable/progress_bar_horizontal_dark</item> </style> - <style name="ProgressBarTrueBlack"> - <item name="android:indeterminateOnly">false</item> - <item name="android:progressDrawable">@drawable/progress_bar_horizontal_trueblack</item> - </style> - <style name="FastScrollRecyclerView" parent="android:Widget"> <item name="android:scrollbars">none</item> <item name="fastScrollEnabled">true</item> - <item name="fastScrollHorizontalThumbDrawable">@drawable/scrollbar_thumb</item> + <item name="fastScrollHorizontalThumbDrawable">?attr/scrollbar_thumb</item> <item name="fastScrollHorizontalTrackDrawable">@drawable/scrollbar_track</item> - <item name="fastScrollVerticalThumbDrawable">@drawable/scrollbar_thumb</item> + <item name="fastScrollVerticalThumbDrawable">?attr/scrollbar_thumb</item> <item name="fastScrollVerticalTrackDrawable">@drawable/scrollbar_track</item> </style> |