summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/assets/shownotes-style.css2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/PlaybackPreferences.java43
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java8
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/Converter.java44
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java30
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java20
-rw-r--r--core/src/main/res/drawable/progress_bar_horizontal_dark.xml4
-rw-r--r--core/src/main/res/drawable/progress_bar_horizontal_light.xml4
-rw-r--r--core/src/main/res/drawable/progress_bar_horizontal_trueblack.xml15
-rw-r--r--core/src/main/res/drawable/scrollbar_thumb_dark.xml (renamed from core/src/main/res/drawable/scrollbar_thumb.xml)2
-rw-r--r--core/src/main/res/drawable/scrollbar_thumb_light.xml5
-rw-r--r--core/src/main/res/drawable/scrollbar_thumb_pressed_dark.xml (renamed from core/src/main/res/drawable/scrollbar_thumb_pressed.xml)2
-rw-r--r--core/src/main/res/drawable/scrollbar_thumb_pressed_light.xml14
-rw-r--r--core/src/main/res/values-v21/styles.xml8
-rw-r--r--core/src/main/res/values/attrs.xml1
-rw-r--r--core/src/main/res/values/colors.xml7
-rw-r--r--core/src/main/res/values/ic_launcher_background.xml4
-rw-r--r--core/src/main/res/values/strings.xml1
-rw-r--r--core/src/main/res/values/styles.xml30
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>