summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/build.gradle72
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java30
-rw-r--r--app/src/main/res/layout/cover_fragment.xml2
-rw-r--r--app/src/main/res/layout/external_player_fragment.xml152
-rw-r--r--app/src/main/res/layout/feeditemlist_header.xml1
-rw-r--r--app/src/main/res/layout/main.xml2
-rw-r--r--build.gradle10
-rw-r--r--circle.yml7
-rw-r--r--core/build.gradle43
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java8
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java32
-rw-r--r--core/src/main/res/values/colors.xml1
-rw-r--r--core/src/main/res/values/styles.xml404
15 files changed, 411 insertions, 364 deletions
diff --git a/app/build.gradle b/app/build.gradle
index ad388bd02..388487092 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,7 +1,6 @@
import org.apache.tools.ant.filters.ReplaceTokens
apply plugin: "com.android.application"
-apply plugin: "me.tatarka.retrolambda"
apply plugin: 'com.github.triplet.play'
apply plugin: 'com.getkeepsafe.dexcount'
@@ -113,10 +112,13 @@ android {
additionalParameters "--no-version-vectors"
}
+ flavorDimensions "market"
productFlavors {
free {
+ dimension "market"
}
play {
+ dimension "market"
}
}
@@ -126,58 +128,58 @@ android {
}
configurations {
- freeDebugCompile
- freeReleaseCompile
- playDebugCompile
- playReleaseCompile
+ freeDebugImplementation
+ freeReleaseImplementation
+ playDebugImplementation
+ playReleaseImplementation
}
dependencies {
- freeDebugCompile project(path: ":core", configuration: "freeDebug")
- freeReleaseCompile project(path: ":core", configuration: "freeRelease")
+ freeImplementation project(":core")
// free build hack: skip some dependencies
if (!doFreeBuild()) {
- playDebugCompile project(path: ":core", configuration: "playDebug")
- playReleaseCompile project(path: ":core", configuration: "playRelease")
+ playImplementation project(":core")
} else {
System.out.println("app: free build hack, skipping some dependencies")
}
- compile "com.android.support:support-v4:$supportVersion"
- compile "com.android.support:appcompat-v7:$supportVersion"
- compile "com.android.support:design:$supportVersion"
- compile "com.android.support:gridlayout-v7:$supportVersion"
- compile "com.android.support:percent:$supportVersion"
- compile "com.android.support:recyclerview-v7:$supportVersion"
- compile "org.apache.commons:commons-lang3:$commonslangVersion"
- compile("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") {
+ implementation "com.android.support:support-v4:$supportVersion"
+ implementation "com.android.support:appcompat-v7:$supportVersion"
+ implementation "com.android.support:design:$supportVersion"
+ implementation "com.android.support:gridlayout-v7:$supportVersion"
+ implementation "com.android.support:percent:$supportVersion"
+ implementation "com.android.support:recyclerview-v7:$supportVersion"
+ implementation "org.apache.commons:commons-lang3:$commonslangVersion"
+ implementation("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") {
exclude group: "org.json", module: "json"
}
- compile "commons-io:commons-io:$commonsioVersion"
- compile "org.jsoup:jsoup:$jsoupVersion"
- compile "com.github.bumptech.glide:glide:$glideVersion"
- compile "com.squareup.okhttp3:okhttp:$okhttpVersion"
- compile "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
- compile "com.squareup.okio:okio:$okioVersion"
- compile "de.greenrobot:eventbus:$eventbusVersion"
- compile "io.reactivex:rxandroid:$rxAndroidVersion"
- compile "io.reactivex:rxjava:$rxJavaVersion"
+ implementation "commons-io:commons-io:$commonsioVersion"
+ implementation "org.jsoup:jsoup:$jsoupVersion"
+ implementation "com.github.bumptech.glide:glide:$glideVersion"
+ implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
+ implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
+ implementation "com.squareup.okio:okio:$okioVersion"
+ implementation "de.greenrobot:eventbus:$eventbusVersion"
+ implementation "io.reactivex:rxandroid:$rxAndroidVersion"
+ implementation "io.reactivex:rxjava:$rxJavaVersion"
// And ProGuard rules for RxJava!
- compile "com.artemzin.rxjava:proguard-rules:$rxJavaRulesVersion"
- compile "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
- compile "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
- compile("com.afollestad.material-dialogs:commons:$materialDialogsVersion") {
+ implementation "com.artemzin.rxjava:proguard-rules:$rxJavaRulesVersion"
+ implementation "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
+ implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
+ implementation("com.afollestad.material-dialogs:commons:$materialDialogsVersion") {
transitive = true
}
- compile "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion"
- compile("com.githang:viewpagerindicator:2.5@aar") {
+ implementation "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion"
+ implementation("com.githang:viewpagerindicator:2.5@aar") {
exclude module: "support-v4"
}
- compile "com.github.shts:TriangleLabelView:$triangleLabelViewVersion"
+ implementation "com.github.shts:TriangleLabelView:$triangleLabelViewVersion"
- compile "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
+ implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
- compile 'com.github.mfietz:fyydlin:v0.3'
+ implementation 'com.github.mfietz:fyydlin:v0.3'
+
+ androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
}
play {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index bf22e71f5..fba445d3a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -109,7 +109,6 @@ public class QueueFragment extends Fragment {
@Override
public void onResume() {
super.onResume();
- recyclerView.setAdapter(recyclerAdapter);
loadItems(true);
EventDistributor.getInstance().register(contentUpdate);
EventBus.getDefault().registerSticky(this);
@@ -389,17 +388,29 @@ public class QueueFragment extends Fragment {
itemTouchHelper = new ItemTouchHelper(
new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT) {
+ // Position tracking whilst dragging
+ int dragFrom = -1;
+ int dragTo = -1;
+
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
+ int fromPosition = viewHolder.getAdapterPosition();
+ int toPosition = target.getAdapterPosition();
+
+ // Update tracked position
+ if(dragFrom == -1) {
+ dragFrom = fromPosition;
+ }
+ dragTo = toPosition;
+
int from = viewHolder.getAdapterPosition();
int to = target.getAdapterPosition();
- Log.d(TAG, "move(" + from + ", " + to + ")");
+ Log.d(TAG, "move(" + from + ", " + to + ") in memory");
if(from >= queue.size() || to >= queue.size()) {
return false;
}
queue.add(to, queue.remove(from));
recyclerAdapter.notifyItemMoved(from, to);
- DBWriter.moveQueueItem(from, to, true);
return true;
}
@@ -453,12 +464,25 @@ public class QueueFragment extends Fragment {
RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
+ // Check if drag finished
+ if(dragFrom != -1 && dragTo != -1 && dragFrom != dragTo) {
+ reallyMoved(dragFrom, dragTo);
+ }
+
+ dragFrom = dragTo = -1;
+
if (viewHolder instanceof QueueRecyclerAdapter.ItemTouchHelperViewHolder) {
QueueRecyclerAdapter.ItemTouchHelperViewHolder itemViewHolder =
(QueueRecyclerAdapter.ItemTouchHelperViewHolder) viewHolder;
itemViewHolder.onItemClear();
}
}
+
+ private void reallyMoved(int from, int to) {
+ // Write drag operation to database
+ Log.d(TAG, "Write to database move(" + dragFrom + ", " + dragTo + ")");
+ DBWriter.moveQueueItem(dragFrom, dragTo, true);
+ }
}
);
itemTouchHelper.attachToRecyclerView(recyclerView);
diff --git a/app/src/main/res/layout/cover_fragment.xml b/app/src/main/res/layout/cover_fragment.xml
index 05b927da4..b1e93a195 100644
--- a/app/src/main/res/layout/cover_fragment.xml
+++ b/app/src/main/res/layout/cover_fragment.xml
@@ -38,6 +38,7 @@
android:maxLines="2"
android:ellipsize="end"
android:text="Podcast"
+ android:textIsSelectable="true"
android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
@@ -61,6 +62,7 @@
android:maxLines="2"
android:ellipsize="end"
android:text="Episode"
+ android:textIsSelectable="true"
android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
diff --git a/app/src/main/res/layout/external_player_fragment.xml b/app/src/main/res/layout/external_player_fragment.xml
index c0eb9211f..0efee08db 100644
--- a/app/src/main/res/layout/external_player_fragment.xml
+++ b/app/src/main/res/layout/external_player_fragment.xml
@@ -1,90 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragmentLayout"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:visibility="gone">
+ android:layout_height="@dimen/external_player_height"
+ android:visibility="gone"
+ android:background="?attr/selectableItemBackground">
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="@dimen/external_player_height">
-
- <ImageView
- android:id="@+id/imgvCover"
- android:contentDescription="@string/cover_label"
- android:layout_width="@dimen/external_player_height"
- android:layout_height="@dimen/external_player_height"
- android:adjustViewBounds="true"
- android:cropToPadding="true"
- android:scaleType="centerCrop"
- tools:src="@drawable/ic_drag_vertical_white_48dp"
- tools:background="@android:color/holo_green_dark"
- android:transitionName="coverTransition"
- android:layout_alignParentTop="true"
- android:layout_alignParentLeft="true"
- android:layout_alignParentStart="true"/>
+ <ImageView
+ android:id="@+id/imgvCover"
+ android:contentDescription="@string/cover_label"
+ android:layout_width="@dimen/external_player_height"
+ android:layout_height="@dimen/external_player_height"
+ android:adjustViewBounds="true"
+ android:cropToPadding="true"
+ android:scaleType="centerCrop"
+ tools:src="@drawable/ic_drag_vertical_white_48dp"
+ tools:background="@android:color/holo_green_dark"
+ android:transitionName="coverTransition"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"/>
- <ProgressBar
- android:id="@+id/episodeProgress"
- android:layout_width="match_parent"
- android:layout_height="4dp"
- android:layout_toRightOf="@id/imgvCover"
- android:layout_toEndOf="@id/imgvCover"
- android:layout_alignParentTop="true"
- style="?attr/progressBarTheme"
- android:indeterminate="false"
- tools:progress="100"/>
-
- <ImageButton
- android:id="@+id/butPlay"
- android:layout_width="52dp"
- android:layout_height="52dp"
- android:layout_alignParentRight="true"
- android:layout_alignParentEnd="true"
- android:layout_below="@id/episodeProgress"
- android:layout_centerVertical="true"
- android:contentDescription="@string/pause_label"
- android:background="?attr/selectableItemBackground"
- tools:src="@drawable/ic_play_arrow_white_36dp"/>
+ <ProgressBar
+ android:id="@+id/episodeProgress"
+ android:layout_width="match_parent"
+ android:layout_height="4dp"
+ android:layout_toRightOf="@id/imgvCover"
+ android:layout_toEndOf="@id/imgvCover"
+ android:layout_alignParentTop="true"
+ style="?attr/progressBarTheme"
+ android:indeterminate="false"
+ tools:progress="100"/>
- <TextView
- android:id="@+id/txtvTitle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginBottom="26dp"
- android:layout_toRightOf="@id/imgvCover"
- android:layout_toEndOf="@id/imgvCover"
- android:layout_marginLeft="16dp"
- android:layout_marginStart="16dp"
- android:layout_toLeftOf="@id/butPlay"
- android:layout_toStartOf="@id/butPlay"
- style="@style/Base.TextAppearance.AppCompat.Body1"
- android:ellipsize="end"
- android:maxLines="1"
- tools:text="Episode title that is too long and will cause the text to wrap"/>
+ <ImageButton
+ android:id="@+id/butPlay"
+ android:layout_width="52dp"
+ android:layout_height="52dp"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:layout_below="@id/episodeProgress"
+ android:layout_centerVertical="true"
+ android:contentDescription="@string/pause_label"
+ android:background="?attr/selectableItemBackground"
+ tools:src="@drawable/ic_play_arrow_white_36dp"/>
- <TextView
- android:id="@+id/txtvAuthor"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@id/episodeProgress"
- android:layout_marginTop="26dp"
- android:layout_toRightOf="@id/imgvCover"
- android:layout_toEndOf="@id/imgvCover"
- android:layout_marginLeft="16dp"
- android:layout_marginStart="16dp"
- android:layout_toLeftOf="@id/butPlay"
- android:layout_toStartOf="@id/butPlay"
- style="@style/TextAppearance.AppCompat.Body1"
- android:textColor="?android:attr/textColorSecondary"
- android:ellipsize="end"
- android:maxLines="1"
- tools:text="Episode author that is too long and will cause the text to wrap"/>
+ <TextView
+ android:id="@+id/txtvTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="26dp"
+ android:layout_toRightOf="@id/imgvCover"
+ android:layout_toEndOf="@id/imgvCover"
+ android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
+ android:layout_toLeftOf="@id/butPlay"
+ android:layout_toStartOf="@id/butPlay"
+ style="@style/Base.TextAppearance.AppCompat.Body1"
+ android:ellipsize="end"
+ android:maxLines="1"
+ tools:text="Episode title that is too long and will cause the text to wrap"/>
- </RelativeLayout>
+ <TextView
+ android:id="@+id/txtvAuthor"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/episodeProgress"
+ android:layout_marginTop="26dp"
+ android:layout_toRightOf="@id/imgvCover"
+ android:layout_toEndOf="@id/imgvCover"
+ android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
+ android:layout_toLeftOf="@id/butPlay"
+ android:layout_toStartOf="@id/butPlay"
+ style="@style/TextAppearance.AppCompat.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:ellipsize="end"
+ android:maxLines="1"
+ tools:text="Episode author that is too long and will cause the text to wrap"/>
-</LinearLayout>
+</RelativeLayout>
diff --git a/app/src/main/res/layout/feeditemlist_header.xml b/app/src/main/res/layout/feeditemlist_header.xml
index 361b583c9..c6ba80e2a 100644
--- a/app/src/main/res/layout/feeditemlist_header.xml
+++ b/app/src/main/res/layout/feeditemlist_header.xml
@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:background="@color/feed_image_bg"
tools:context="de.danoeh.antennapod.activity.MainActivity"
tools:background="@android:color/darker_gray">
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
index c05132b42..6cabcdff2 100644
--- a/app/src/main/res/layout/main.xml
+++ b/app/src/main/res/layout/main.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent">
diff --git a/build.gradle b/build.gradle
index 632c8e7bd..e15625f13 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,12 +4,11 @@ buildscript {
repositories {
jcenter()
mavenCentral()
+ google()
}
dependencies {
- classpath "com.android.tools.build:gradle:2.3.3"
- classpath "me.tatarka:gradle-retrolambda:3.7.0"
- classpath "me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2"
- classpath "com.github.triplet.gradle:play-publisher:1.1.4"
+ classpath "com.android.tools.build:gradle:3.0.1"
+ classpath "com.github.triplet.gradle:play-publisher:1.2.0"
// Exclude the version that the android plugin depends on.
configurations.classpath.exclude group: "com.android.tools.external.lombok"
}
@@ -18,6 +17,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
}
@@ -38,7 +38,7 @@ subprojects {
project.ext {
compileSdkVersion = 25
- buildToolsVersion = "25.0.3"
+ buildToolsVersion = "27.0.3"
minSdkVersion = 14
targetSdkVersion = 25
diff --git a/circle.yml b/circle.yml
index 01055725a..5a5a129ea 100644
--- a/circle.yml
+++ b/circle.yml
@@ -3,7 +3,8 @@ general:
- app/build/outputs/apk
machine:
environment:
- GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
+ GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx1536m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError"'
+ _JAVA_OPTIONS: "-Xms256m -Xmx1280m -XX:MaxPermSize=350m"
java:
version: oraclejdk8
dependencies:
@@ -12,11 +13,11 @@ dependencies:
- ~/android
pre:
- echo y | android update sdk --no-ui --all --filter "tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,android-25"
- - echo y | android update sdk --no-ui --all --filter "build-tools-25.0.3"
+ - echo y | android update sdk --no-ui --all --filter "build-tools-27.0.3"
override:
- echo override dependencies
test:
override:
- ./gradlew assembleDebug -PdisablePreDex:
- timeout: 1800
+ timeout: 1800 \ No newline at end of file
diff --git a/core/build.gradle b/core/build.gradle
index 3ef2898b8..9967e99ff 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -1,5 +1,4 @@
apply plugin: "com.android.library"
-apply plugin: "me.tatarka.retrolambda"
android {
compileSdkVersion rootProject.ext.compileSdkVersion
@@ -30,11 +29,13 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}
- publishNonDefault true
+ flavorDimensions "market"
productFlavors {
free {
+ dimension "market"
}
play {
+ dimension "market"
}
}
@@ -46,32 +47,32 @@ repositories {
}
dependencies {
- compile "com.android.support:support-v4:$supportVersion"
- compile "com.android.support:appcompat-v7:$supportVersion"
- compile "org.apache.commons:commons-lang3:$commonslangVersion"
- compile ("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") {
+ implementation "com.android.support:support-v4:$supportVersion"
+ implementation "com.android.support:appcompat-v7:$supportVersion"
+ implementation "org.apache.commons:commons-lang3:$commonslangVersion"
+ implementation ("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") {
exclude group: "org.json", module: "json"
}
- compile "commons-io:commons-io:$commonsioVersion"
- compile "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
- compile "org.jsoup:jsoup:$jsoupVersion"
- compile "com.github.bumptech.glide:glide:$glideVersion"
- compile "com.github.bumptech.glide:okhttp3-integration:$glideOkhttpIntegrationVersion@aar"
- compile "com.squareup.okhttp3:okhttp:$okhttpVersion"
- compile "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
- compile "com.squareup.okio:okio:$okioVersion"
- compile "de.greenrobot:eventbus:$eventbusVersion"
- compile "io.reactivex:rxandroid:$rxAndroidVersion"
+ implementation "commons-io:commons-io:$commonsioVersion"
+ implementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
+ implementation "org.jsoup:jsoup:$jsoupVersion"
+ implementation "com.github.bumptech.glide:glide:$glideVersion"
+ implementation "com.github.bumptech.glide:okhttp3-integration:$glideOkhttpIntegrationVersion@aar"
+ implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
+ implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
+ implementation "com.squareup.okio:okio:$okioVersion"
+ implementation "de.greenrobot:eventbus:$eventbusVersion"
+ implementation "io.reactivex:rxandroid:$rxAndroidVersion"
- compile "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
+ implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
// Add casting features
// free build hack: skip some dependencies
if (!doFreeBuild()) {
- playCompile "com.google.android.libraries.cast.companionlibrary:ccl:$castCompanionLibVer"
- compile "com.android.support:mediarouter-v7:$supportVersion"
- playCompile "com.google.android.gms:play-services-cast:$playServicesVersion"
- compile "com.google.android.support:wearable:$wearableSupportVersion"
+ playApi "com.google.android.libraries.cast.companionlibrary:ccl:$castCompanionLibVer"
+ api "com.android.support:mediarouter-v7:$supportVersion"
+ playApi "com.google.android.gms:play-services-cast:$playServicesVersion"
+ api "com.google.android.support:wearable:$wearableSupportVersion"
} else {
System.out.println("core: free build hack, skipping some dependencies")
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
index 746dd43c4..78df74ee7 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
@@ -305,8 +305,10 @@ public class Feed extends FeedFile implements FlattrThing, ImageResource {
if (super.compareWithOther(other)) {
return true;
}
- if(other.image != null && !TextUtils.equals(image.download_url, other.image.download_url)) {
- return true;
+ if (other.image != null) {
+ if (image == null || !TextUtils.equals(image.download_url, other.image.download_url)) {
+ return true;
+ }
}
if (!TextUtils.equals(feedTitle, other.feedTitle)) {
return true;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
index d66af22ef..a62c9d8bf 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
@@ -339,12 +339,9 @@ public class DownloadService extends Service {
}
private void setupNotificationBuilders() {
- Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.stat_notify_sync);
-
notificationCompatBuilder = new NotificationCompat.Builder(this)
.setOngoing(true)
.setContentIntent(ClientConfig.downloadServiceCallbacks.getNotificationContentIntent(this))
- .setLargeIcon(icon)
.setSmallIcon(R.drawable.stat_notify_sync);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notificationCompatBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
@@ -511,10 +508,6 @@ public class DownloadService extends Service {
successfulDownloads, failedDownloads)
)
.setSmallIcon(R.drawable.stat_notify_sync_error)
- .setLargeIcon(
- BitmapFactory.decodeResource(getResources(),
- R.drawable.stat_notify_sync_error)
- )
.setContentIntent(
ClientConfig.downloadServiceCallbacks.getReportNotificationContentIntent(this)
)
@@ -565,7 +558,6 @@ public class DownloadService extends Service {
.setStyle(new NotificationCompat.BigTextStyle().bigText(getText(R.string.authentication_notification_msg)
+ ": " + resourceTitle))
.setSmallIcon(R.drawable.ic_stat_authentication)
- .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_stat_authentication))
.setAutoCancel(true)
.setContentIntent(ClientConfig.downloadServiceCallbacks.getAuthentificationNotificationContentIntent(DownloadService.this, downloadRequest));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
index 5f205c515..af735aefd 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
@@ -11,6 +11,7 @@ import android.view.SurfaceHolder;
import org.antennapod.audio.MediaPlayer;
+import java.io.File;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
@@ -165,8 +166,10 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
callback.onMediaChanged(false);
if (stream) {
mediaPlayer.setDataSource(media.getStreamUrl());
- } else {
+ } else if (new File(media.getLocalMediaUrl()).canRead()) {
mediaPlayer.setDataSource(media.getLocalMediaUrl());
+ } else {
+ throw new IOException("Unable to read local file " + media.getLocalMediaUrl());
}
setPlayerStatus(PlayerStatus.INITIALIZED, media);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index 3fd46951d..5ff3f70df 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -3,7 +3,9 @@ package de.danoeh.antennapod.core.storage;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
+import android.database.DatabaseErrorHandler;
import android.database.DatabaseUtils;
+import android.database.DefaultDatabaseErrorHandler;
import android.database.MergeCursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
@@ -13,13 +15,12 @@ import android.media.MediaMetadataRetriever;
import android.text.TextUtils;
import android.util.Log;
+import java.io.File;
+import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.event.ProgressEvent;
@@ -35,6 +36,7 @@ import de.danoeh.antennapod.core.service.download.DownloadStatus;
import de.danoeh.antennapod.core.util.LongIntMap;
import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
import de.greenrobot.event.EventBus;
+import org.apache.commons.io.FileUtils;
// TODO Remove media column from feeditem table
@@ -1644,6 +1646,28 @@ public class PodDBAdapter {
}
/**
+ * Called when a database corruption happens
+ */
+ public static class PodDbErrorHandler implements DatabaseErrorHandler {
+ @Override
+ public void onCorruption(SQLiteDatabase db) {
+ Log.e(TAG, "Database corrupted: " + db.getPath());
+
+ File dbPath = new File(db.getPath());
+ File backupFolder = PodDBAdapter.context.getExternalFilesDir(null);
+ File backupFile = new File(backupFolder, "CorruptedDatabaseBackup.db");
+ try {
+ FileUtils.copyFile(dbPath, backupFile);
+ Log.d(TAG, "Dumped database to " + backupFile.getPath());
+ } catch (IOException e) {
+ Log.d(TAG, Log.getStackTraceString(e));
+ }
+
+ new DefaultDatabaseErrorHandler().onCorruption(db); // This deletes the database
+ }
+ }
+
+ /**
* Helper class for opening the Antennapod database.
*/
private static class PodDBHelper extends SQLiteOpenHelper {
@@ -1661,7 +1685,7 @@ public class PodDBAdapter {
*/
public PodDBHelper(final Context context, final String name,
final CursorFactory factory) {
- super(context, name, factory, VERSION);
+ super(context, name, factory, VERSION, new PodDbErrorHandler());
this.context = context;
}
diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml
index 981d16d03..969500928 100644
--- a/core/src/main/res/values/colors.xml
+++ b/core/src/main/res/values/colors.xml
@@ -20,6 +20,7 @@
<color name="swipe_refresh_secondary_color_dark">#060708</color>
<color name="new_indicator_green">#669900</color>
<color name="image_readability_tint">#80000000</color>
+ <color name="feed_image_bg">#50000000</color>
<color name="selection_background_color_dark">#286E8A</color>
<color name="selection_background_color_light">#81CFEA</color>
diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml
index b9a9fb293..13d956bab 100644
--- a/core/src/main/res/values/styles.xml
+++ b/core/src/main/res/values/styles.xml
@@ -11,57 +11,57 @@
<item name="progressBarTheme">@style/ProgressBarLight</item>
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Light</item>
- <item name="attr/action_bar_icon_color">@color/grey600</item>
- <item name="attr/action_about">@drawable/ic_info_grey600_24dp</item>
- <item name="attr/action_search">@drawable/ic_search_grey600_24dp</item>
- <item name="attr/action_stream">@drawable/ic_settings_input_antenna_grey600_24dp</item>
- <item name="attr/av_download">@drawable/ic_file_download_grey600_24dp</item>
- <item name="attr/av_fast_forward">@drawable/ic_fast_forward_grey600_24dp</item>
- <item name="attr/av_pause">@drawable/ic_pause_grey600_24dp</item>
- <item name="attr/av_play">@drawable/ic_play_arrow_grey600_24dp</item>
- <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/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>
- <item name="attr/navigation_cancel">@drawable/ic_cancel_grey600_24dp</item>
- <item name="attr/navigation_expand">@drawable/ic_expand_more_grey600_36dp</item>
- <item name="attr/navigation_refresh">@drawable/ic_refresh_grey600_24dp</item>
- <item name="attr/navigation_up">@drawable/navigation_up</item>
- <item name="attr/social_share">@drawable/ic_share_grey600_24dp</item>
- <item name="attr/stat_playlist">@drawable/ic_list_grey600_24dp</item>
- <item name="attr/type_audio">@drawable/ic_hearing_grey600_18dp</item>
- <item name="attr/type_video">@drawable/ic_remove_red_eye_grey600_18dp</item>
- <item name="attr/non_transparent_background">@color/white</item>
- <item name="attr/overlay_background">@color/overlay_light</item>
- <item name="attr/overlay_drawable">@drawable/overlay_drawable</item>
- <item name="attr/dragview_background">@drawable/ic_drag_vertical_grey600_48dp</item>
- <item name="attr/dragview_float_background">@color/white</item>
- <item name="attr/nav_drawer_background">@color/white</item>
- <item name="attr/ic_new">@drawable/ic_new_releases_grey600_24dp</item>
- <item name="attr/ic_history">@drawable/ic_history_grey600_24dp</item>
- <item name="attr/ic_folder">@drawable/ic_folder_grey600_24dp</item>
- <item name="attr/av_play_big">@drawable/ic_play_arrow_grey600_36dp</item>
- <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>
- <item name="attr/ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
- <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
- <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
- <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item>
- <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item>
- <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item>
- <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item>
+ <item type="attr" name="action_bar_icon_color">@color/grey600</item>
+ <item type="attr" name="action_about">@drawable/ic_info_grey600_24dp</item>
+ <item type="attr" name="action_search">@drawable/ic_search_grey600_24dp</item>
+ <item type="attr" name="action_stream">@drawable/ic_settings_input_antenna_grey600_24dp</item>
+ <item type="attr" name="av_download">@drawable/ic_file_download_grey600_24dp</item>
+ <item type="attr" name="av_fast_forward">@drawable/ic_fast_forward_grey600_24dp</item>
+ <item type="attr" name="av_pause">@drawable/ic_pause_grey600_24dp</item>
+ <item type="attr" name="av_play">@drawable/ic_play_arrow_grey600_24dp</item>
+ <item type="attr" name="av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item>
+ <item type="attr" name="content_discard">@drawable/ic_delete_grey600_24dp</item>
+ <item type="attr" name="content_new">@drawable/ic_add_grey600_24dp</item>
+ <item type="attr" name="feed">@drawable/ic_feed_grey600_24dp</item>
+ <item type="attr" name="location_web_site">@drawable/ic_web_grey600_24dp</item>
+ <item type="attr" name="navigation_accept">@drawable/ic_done_grey600_24dp</item>
+ <item type="attr" name="navigation_cancel">@drawable/ic_cancel_grey600_24dp</item>
+ <item type="attr" name="navigation_expand">@drawable/ic_expand_more_grey600_36dp</item>
+ <item type="attr" name="navigation_refresh">@drawable/ic_refresh_grey600_24dp</item>
+ <item type="attr" name="navigation_up">@drawable/navigation_up</item>
+ <item type="attr" name="social_share">@drawable/ic_share_grey600_24dp</item>
+ <item type="attr" name="stat_playlist">@drawable/ic_list_grey600_24dp</item>
+ <item type="attr" name="type_audio">@drawable/ic_hearing_grey600_18dp</item>
+ <item type="attr" name="type_video">@drawable/ic_remove_red_eye_grey600_18dp</item>
+ <item type="attr" name="non_transparent_background">@color/white</item>
+ <item type="attr" name="overlay_background">@color/overlay_light</item>
+ <item type="attr" name="overlay_drawable">@drawable/overlay_drawable</item>
+ <item type="attr" name="dragview_background">@drawable/ic_drag_vertical_grey600_48dp</item>
+ <item type="attr" name="dragview_float_background">@color/white</item>
+ <item type="attr" name="nav_drawer_background">@color/white</item>
+ <item type="attr" name="ic_new">@drawable/ic_new_releases_grey600_24dp</item>
+ <item type="attr" name="ic_history">@drawable/ic_history_grey600_24dp</item>
+ <item type="attr" name="ic_folder">@drawable/ic_folder_grey600_24dp</item>
+ <item type="attr" name="av_play_big">@drawable/ic_play_arrow_grey600_36dp</item>
+ <item type="attr" name="av_pause_big">@drawable/ic_pause_grey600_36dp</item>
+ <item type="attr" name="av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item>
+ <item type="attr" name="av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item>
+ <item type="attr" name="av_skip_big">@drawable/ic_skip_grey600_36dp</item>
+ <item type="attr" name="ic_fav">@drawable/ic_star_border_grey600_24dp</item>
+ <item type="attr" name="ic_unfav">@drawable/ic_star_grey600_24dp</item>
+ <item type="attr" name="ic_settings">@drawable/ic_settings_grey600_24dp</item>
+ <item type="attr" name="ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item>
+ <item type="attr" name="ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item>
+ <item type="attr" name="ic_filter">@drawable/ic_filter_grey600_24dp</item>
+ <item type="attr" name="ic_sleep">@drawable/ic_sleep_grey600_24dp</item>
+ <item type="attr" name="ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item>
+ <item type="attr" name="ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
+ <item type="attr" name="ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
+ <item type="attr" name="ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
+ <item type="attr" name="ic_sort">@drawable/ic_sort_grey600_24dp</item>
+ <item type="attr" name="ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item>
+ <item type="attr" name="ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item>
+ <item type="attr" name="ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item>
</style>
<style name="Theme.AntennaPod.Dark" parent="Theme.Base.AntennaPod.Dark">
@@ -74,57 +74,57 @@
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="progressBarTheme">@style/ProgressBarDark</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Dark</item>
- <item name="attr/action_bar_icon_color">@color/white</item>
- <item name="attr/action_about">@drawable/ic_info_white_24dp</item>g
- <item name="attr/action_search">@drawable/ic_search_white_24dp</item>
- <item name="attr/action_stream">@drawable/ic_settings_input_antenna_white_24dp</item>
- <item name="attr/av_download">@drawable/ic_file_download_white_24dp</item>
- <item name="attr/av_fast_forward">@drawable/ic_fast_forward_white_24dp</item>
- <item name="attr/av_pause">@drawable/ic_pause_white_24dp</item>
- <item name="attr/av_play">@drawable/ic_play_arrow_white_24dp</item>
- <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/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>
- <item name="attr/navigation_cancel">@drawable/ic_cancel_white_24dp</item>
- <item name="attr/navigation_expand">@drawable/ic_expand_more_white_36dp</item>
- <item name="attr/navigation_refresh">@drawable/ic_refresh_white_24dp</item>
- <item name="attr/navigation_up">@drawable/navigation_up_dark</item>
- <item name="attr/social_share">@drawable/ic_share_white_24dp</item>
- <item name="attr/stat_playlist">@drawable/ic_list_white_24dp</item>
- <item name="attr/type_audio">@drawable/ic_hearing_white_18dp</item>
- <item name="attr/type_video">@drawable/ic_remove_red_eye_white_18dp</item>
- <item name="attr/non_transparent_background">@color/black</item>
- <item name="attr/overlay_background">@color/overlay_dark</item>
- <item name="attr/overlay_drawable">@drawable/overlay_drawable_dark</item>
- <item name="attr/dragview_background">@drawable/ic_drag_vertical_white_48dp</item>
- <item name="attr/dragview_float_background">@color/black</item>
- <item name="attr/nav_drawer_background">#3B3B3B</item>
- <item name="attr/ic_new">@drawable/ic_new_releases_white_24dp</item>
- <item name="attr/ic_history">@drawable/ic_history_white_24dp</item>
- <item name="attr/ic_folder">@drawable/ic_folder_white_24dp</item>
- <item name="attr/av_play_big">@drawable/ic_play_arrow_white_36dp</item>
- <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>
- <item name="attr/ic_check_box">@drawable/ic_check_box_white_24dp</item>
- <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
- <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
- <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item>
- <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item>
- <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item>
- <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item>
+ <item type="attr" name="action_bar_icon_color">@color/white</item>
+ <item type="attr" name="action_about">@drawable/ic_info_white_24dp</item>g
+ <item type="attr" name="action_search">@drawable/ic_search_white_24dp</item>
+ <item type="attr" name="action_stream">@drawable/ic_settings_input_antenna_white_24dp</item>
+ <item type="attr" name="av_download">@drawable/ic_file_download_white_24dp</item>
+ <item type="attr" name="av_fast_forward">@drawable/ic_fast_forward_white_24dp</item>
+ <item type="attr" name="av_pause">@drawable/ic_pause_white_24dp</item>
+ <item type="attr" name="av_play">@drawable/ic_play_arrow_white_24dp</item>
+ <item type="attr" name="av_rewind">@drawable/ic_fast_rewind_white_24dp</item>
+ <item type="attr" name="content_discard">@drawable/ic_delete_white_24dp</item>
+ <item type="attr" name="content_new">@drawable/ic_add_white_24dp</item>
+ <item type="attr" name="feed">@drawable/ic_feed_white_24dp</item>
+ <item type="attr" name="location_web_site">@drawable/ic_web_white_24dp</item>
+ <item type="attr" name="navigation_accept">@drawable/ic_done_white_24dp</item>
+ <item type="attr" name="navigation_cancel">@drawable/ic_cancel_white_24dp</item>
+ <item type="attr" name="navigation_expand">@drawable/ic_expand_more_white_36dp</item>
+ <item type="attr" name="navigation_refresh">@drawable/ic_refresh_white_24dp</item>
+ <item type="attr" name="navigation_up">@drawable/navigation_up_dark</item>
+ <item type="attr" name="social_share">@drawable/ic_share_white_24dp</item>
+ <item type="attr" name="stat_playlist">@drawable/ic_list_white_24dp</item>
+ <item type="attr" name="type_audio">@drawable/ic_hearing_white_18dp</item>
+ <item type="attr" name="type_video">@drawable/ic_remove_red_eye_white_18dp</item>
+ <item type="attr" name="non_transparent_background">@color/black</item>
+ <item type="attr" name="overlay_background">@color/overlay_dark</item>
+ <item type="attr" name="overlay_drawable">@drawable/overlay_drawable_dark</item>
+ <item type="attr" name="dragview_background">@drawable/ic_drag_vertical_white_48dp</item>
+ <item type="attr" name="dragview_float_background">@color/black</item>
+ <item type="attr" name="nav_drawer_background">#3B3B3B</item>
+ <item type="attr" name="ic_new">@drawable/ic_new_releases_white_24dp</item>
+ <item type="attr" name="ic_history">@drawable/ic_history_white_24dp</item>
+ <item type="attr" name="ic_folder">@drawable/ic_folder_white_24dp</item>
+ <item type="attr" name="av_play_big">@drawable/ic_play_arrow_white_36dp</item>
+ <item type="attr" name="av_pause_big">@drawable/ic_pause_white_36dp</item>
+ <item type="attr" name="av_ff_big">@drawable/ic_fast_forward_white_36dp</item>
+ <item type="attr" name="av_rew_big">@drawable/ic_fast_rewind_white_36dp</item>
+ <item type="attr" name="av_skip_big">@drawable/ic_skip_white_36dp</item>
+ <item type="attr" name="ic_fav">@drawable/ic_star_border_white_24dp</item>
+ <item type="attr" name="ic_unfav">@drawable/ic_star_white_24dp</item>
+ <item type="attr" name="ic_settings">@drawable/ic_settings_white_24dp</item>
+ <item type="attr" name="ic_lock_open">@drawable/ic_lock_open_white_24dp</item>
+ <item type="attr" name="ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item>
+ <item type="attr" name="ic_filter">@drawable/ic_filter_white_24dp</item>
+ <item type="attr" name="ic_sleep">@drawable/ic_sleep_white_24dp</item>
+ <item type="attr" name="ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item>
+ <item type="attr" name="ic_check_box">@drawable/ic_check_box_white_24dp</item>
+ <item type="attr" name="ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
+ <item type="attr" name="ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
+ <item type="attr" name="ic_sort">@drawable/ic_sort_white_24dp</item>
+ <item type="attr" name="ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item>
+ <item type="attr" name="ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item>
+ <item type="attr" name="ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item>
</style>
<style name="Theme.AntennaPod.Light.NoTitle" parent="Theme.Base.AntennaPod.Light.NoTitle">
@@ -139,56 +139,56 @@
<item name="colorAccent">@color/holo_blue_light</item>
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Light</item>
- <item name="attr/action_about">@drawable/ic_info_grey600_24dp</item>
- <item name="attr/action_search">@drawable/ic_search_grey600_24dp</item>
- <item name="attr/action_stream">@drawable/ic_settings_input_antenna_grey600_24dp</item>
- <item name="attr/av_download">@drawable/ic_file_download_grey600_24dp</item>
- <item name="attr/av_fast_forward">@drawable/ic_fast_forward_grey600_24dp</item>
- <item name="attr/av_pause">@drawable/ic_pause_grey600_24dp</item>
- <item name="attr/av_play">@drawable/ic_play_arrow_grey600_24dp</item>
- <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/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>
- <item name="attr/navigation_cancel">@drawable/ic_cancel_grey600_24dp</item>
- <item name="attr/navigation_expand">@drawable/ic_expand_more_grey600_36dp</item>
- <item name="attr/navigation_refresh">@drawable/ic_refresh_grey600_24dp</item>
- <item name="attr/navigation_up">@drawable/navigation_up</item>
- <item name="attr/social_share">@drawable/ic_share_grey600_24dp</item>
- <item name="attr/stat_playlist">@drawable/ic_list_grey600_24dp</item>
- <item name="attr/type_audio">@drawable/ic_hearing_grey600_18dp</item>
- <item name="attr/type_video">@drawable/ic_remove_red_eye_grey600_18dp</item>
- <item name="attr/non_transparent_background">@color/white</item>
- <item name="attr/overlay_background">@color/overlay_light</item>
- <item name="attr/overlay_drawable">@drawable/overlay_drawable</item>
- <item name="attr/dragview_background">@drawable/ic_drag_vertical_grey600_48dp</item>
- <item name="attr/dragview_float_background">@color/white</item>
- <item name="attr/nav_drawer_background">@color/white</item>
- <item name="attr/ic_new">@drawable/ic_new_releases_grey600_24dp</item>
- <item name="attr/ic_history">@drawable/ic_history_grey600_24dp</item>
- <item name="attr/ic_folder">@drawable/ic_folder_grey600_24dp</item>
- <item name="attr/av_play_big">@drawable/ic_play_arrow_grey600_36dp</item>
- <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>
- <item name="attr/ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
- <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
- <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
- <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item>
- <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item>
- <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item>
- <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item>
+ <item type="attr" name="action_about">@drawable/ic_info_grey600_24dp</item>
+ <item type="attr" name="action_search">@drawable/ic_search_grey600_24dp</item>
+ <item type="attr" name="action_stream">@drawable/ic_settings_input_antenna_grey600_24dp</item>
+ <item type="attr" name="av_download">@drawable/ic_file_download_grey600_24dp</item>
+ <item type="attr" name="av_fast_forward">@drawable/ic_fast_forward_grey600_24dp</item>
+ <item type="attr" name="av_pause">@drawable/ic_pause_grey600_24dp</item>
+ <item type="attr" name="av_play">@drawable/ic_play_arrow_grey600_24dp</item>
+ <item type="attr" name="av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item>
+ <item type="attr" name="content_discard">@drawable/ic_delete_grey600_24dp</item>
+ <item type="attr" name="content_new">@drawable/ic_add_grey600_24dp</item>
+ <item type="attr" name="feed">@drawable/ic_feed_grey600_24dp</item>
+ <item type="attr" name="location_web_site">@drawable/ic_web_grey600_24dp</item>
+ <item type="attr" name="navigation_accept">@drawable/ic_done_grey600_24dp</item>
+ <item type="attr" name="navigation_cancel">@drawable/ic_cancel_grey600_24dp</item>
+ <item type="attr" name="navigation_expand">@drawable/ic_expand_more_grey600_36dp</item>
+ <item type="attr" name="navigation_refresh">@drawable/ic_refresh_grey600_24dp</item>
+ <item type="attr" name="navigation_up">@drawable/navigation_up</item>
+ <item type="attr" name="social_share">@drawable/ic_share_grey600_24dp</item>
+ <item type="attr" name="stat_playlist">@drawable/ic_list_grey600_24dp</item>
+ <item type="attr" name="type_audio">@drawable/ic_hearing_grey600_18dp</item>
+ <item type="attr" name="type_video">@drawable/ic_remove_red_eye_grey600_18dp</item>
+ <item type="attr" name="non_transparent_background">@color/white</item>
+ <item type="attr" name="overlay_background">@color/overlay_light</item>
+ <item type="attr" name="overlay_drawable">@drawable/overlay_drawable</item>
+ <item type="attr" name="dragview_background">@drawable/ic_drag_vertical_grey600_48dp</item>
+ <item type="attr" name="dragview_float_background">@color/white</item>
+ <item type="attr" name="nav_drawer_background">@color/white</item>
+ <item type="attr" name="ic_new">@drawable/ic_new_releases_grey600_24dp</item>
+ <item type="attr" name="ic_history">@drawable/ic_history_grey600_24dp</item>
+ <item type="attr" name="ic_folder">@drawable/ic_folder_grey600_24dp</item>
+ <item type="attr" name="av_play_big">@drawable/ic_play_arrow_grey600_36dp</item>
+ <item type="attr" name="av_pause_big">@drawable/ic_pause_grey600_36dp</item>
+ <item type="attr" name="av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item>
+ <item type="attr" name="av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item>
+ <item type="attr" name="av_skip_big">@drawable/ic_skip_grey600_36dp</item>
+ <item type="attr" name="ic_fav">@drawable/ic_star_border_grey600_24dp</item>
+ <item type="attr" name="ic_unfav">@drawable/ic_star_grey600_24dp</item>
+ <item type="attr" name="ic_settings">@drawable/ic_settings_grey600_24dp</item>
+ <item type="attr" name="ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item>
+ <item type="attr" name="ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item>
+ <item type="attr" name="ic_filter">@drawable/ic_filter_grey600_24dp</item>
+ <item type="attr" name="ic_sleep">@drawable/ic_sleep_grey600_24dp</item>
+ <item type="attr" name="ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item>
+ <item type="attr" name="ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
+ <item type="attr" name="ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
+ <item type="attr" name="ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
+ <item type="attr" name="ic_sort">@drawable/ic_sort_grey600_24dp</item>
+ <item type="attr" name="ic_sd_storage">@drawable/ic_sd_storage_grey600_36dp</item>
+ <item type="attr" name="ic_create_new_folder">@drawable/ic_create_new_folder_grey600_24dp</item>
+ <item type="attr" name="ic_cast_disconnect">@drawable/ic_cast_disconnect_grey600_36dp</item>
</style>
<style name="Theme.AntennaPod.Dark.NoTitle" parent="Theme.Base.AntennaPod.Dark.NoTitle">
@@ -203,56 +203,56 @@
<item name="colorControlNormal">@color/white</item>
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Dark</item>
- <item name="attr/action_about">@drawable/ic_info_white_24dp</item>
- <item name="attr/action_search">@drawable/ic_search_white_24dp</item>
- <item name="attr/action_stream">@drawable/ic_settings_input_antenna_white_24dp</item>
- <item name="attr/av_download">@drawable/ic_file_download_white_24dp</item>
- <item name="attr/av_fast_forward">@drawable/ic_fast_forward_white_24dp</item>
- <item name="attr/av_pause">@drawable/ic_pause_white_24dp</item>
- <item name="attr/av_play">@drawable/ic_play_arrow_white_24dp</item>
- <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/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>
- <item name="attr/navigation_cancel">@drawable/ic_cancel_white_24dp</item>
- <item name="attr/navigation_expand">@drawable/ic_expand_more_white_36dp</item>
- <item name="attr/navigation_refresh">@drawable/ic_refresh_white_24dp</item>
- <item name="attr/navigation_up">@drawable/navigation_up_dark</item>
- <item name="attr/social_share">@drawable/ic_share_white_24dp</item>
- <item name="attr/stat_playlist">@drawable/ic_list_white_24dp</item>
- <item name="attr/type_audio">@drawable/ic_hearing_white_18dp</item>
- <item name="attr/type_video">@drawable/ic_remove_red_eye_white_18dp</item>
- <item name="attr/non_transparent_background">@color/black</item>
- <item name="attr/overlay_background">@color/overlay_dark</item>
- <item name="attr/overlay_drawable">@drawable/overlay_drawable_dark</item>
- <item name="attr/dragview_background">@drawable/ic_drag_vertical_white_48dp</item>
- <item name="attr/dragview_float_background">@color/black</item>
- <item name="attr/nav_drawer_background">#3B3B3B</item>
- <item name="attr/ic_new">@drawable/ic_new_releases_white_24dp</item>
- <item name="attr/ic_history">@drawable/ic_history_white_24dp</item>
- <item name="attr/ic_folder">@drawable/ic_folder_white_24dp</item>
- <item name="attr/av_play_big">@drawable/ic_play_arrow_white_36dp</item>
- <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>
- <item name="attr/ic_check_box">@drawable/ic_check_box_white_24dp</item>
- <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
- <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
- <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item>
- <item name="attr/ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item>
- <item name="attr/ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item>
- <item name="attr/ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item>
+ <item type="attr" name="action_about">@drawable/ic_info_white_24dp</item>
+ <item type="attr" name="action_search">@drawable/ic_search_white_24dp</item>
+ <item type="attr" name="action_stream">@drawable/ic_settings_input_antenna_white_24dp</item>
+ <item type="attr" name="av_download">@drawable/ic_file_download_white_24dp</item>
+ <item type="attr" name="av_fast_forward">@drawable/ic_fast_forward_white_24dp</item>
+ <item type="attr" name="av_pause">@drawable/ic_pause_white_24dp</item>
+ <item type="attr" name="av_play">@drawable/ic_play_arrow_white_24dp</item>
+ <item type="attr" name="av_rewind">@drawable/ic_fast_rewind_white_24dp</item>
+ <item type="attr" name="content_discard">@drawable/ic_delete_white_24dp</item>
+ <item type="attr" name="content_new">@drawable/ic_add_white_24dp</item>
+ <item type="attr" name="feed">@drawable/ic_feed_white_24dp</item>
+ <item type="attr" name="location_web_site">@drawable/ic_web_white_24dp</item>
+ <item type="attr" name="navigation_accept">@drawable/ic_done_white_24dp</item>
+ <item type="attr" name="navigation_cancel">@drawable/ic_cancel_white_24dp</item>
+ <item type="attr" name="navigation_expand">@drawable/ic_expand_more_white_36dp</item>
+ <item type="attr" name="navigation_refresh">@drawable/ic_refresh_white_24dp</item>
+ <item type="attr" name="navigation_up">@drawable/navigation_up_dark</item>
+ <item type="attr" name="social_share">@drawable/ic_share_white_24dp</item>
+ <item type="attr" name="stat_playlist">@drawable/ic_list_white_24dp</item>
+ <item type="attr" name="type_audio">@drawable/ic_hearing_white_18dp</item>
+ <item type="attr" name="type_video">@drawable/ic_remove_red_eye_white_18dp</item>
+ <item type="attr" name="non_transparent_background">@color/black</item>
+ <item type="attr" name="overlay_background">@color/overlay_dark</item>
+ <item type="attr" name="overlay_drawable">@drawable/overlay_drawable_dark</item>
+ <item type="attr" name="dragview_background">@drawable/ic_drag_vertical_white_48dp</item>
+ <item type="attr" name="dragview_float_background">@color/black</item>
+ <item type="attr" name="nav_drawer_background">#3B3B3B</item>
+ <item type="attr" name="ic_new">@drawable/ic_new_releases_white_24dp</item>
+ <item type="attr" name="ic_history">@drawable/ic_history_white_24dp</item>
+ <item type="attr" name="ic_folder">@drawable/ic_folder_white_24dp</item>
+ <item type="attr" name="av_play_big">@drawable/ic_play_arrow_white_36dp</item>
+ <item type="attr" name="av_pause_big">@drawable/ic_pause_white_36dp</item>
+ <item type="attr" name="av_ff_big">@drawable/ic_fast_forward_white_36dp</item>
+ <item type="attr" name="av_rew_big">@drawable/ic_fast_rewind_white_36dp</item>
+ <item type="attr" name="av_skip_big">@drawable/ic_skip_white_36dp</item>
+ <item type="attr" name="ic_fav">@drawable/ic_star_border_white_24dp</item>
+ <item type="attr" name="ic_unfav">@drawable/ic_star_white_24dp</item>
+ <item type="attr" name="ic_settings">@drawable/ic_settings_white_24dp</item>
+ <item type="attr" name="ic_lock_open">@drawable/ic_lock_open_white_24dp</item>
+ <item type="attr" name="ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item>
+ <item type="attr" name="ic_filter">@drawable/ic_filter_white_24dp</item>
+ <item type="attr" name="ic_sleep">@drawable/ic_sleep_white_24dp</item>
+ <item type="attr" name="ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item>
+ <item type="attr" name="ic_check_box">@drawable/ic_check_box_white_24dp</item>
+ <item type="attr" name="ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
+ <item type="attr" name="ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
+ <item type="attr" name="ic_sort">@drawable/ic_sort_white_24dp</item>
+ <item type="attr" name="ic_sd_storage">@drawable/ic_sd_storage_white_36dp</item>
+ <item type="attr" name="ic_create_new_folder">@drawable/ic_create_new_folder_white_24dp</item>
+ <item type="attr" name="ic_cast_disconnect">@drawable/ic_cast_disconnect_white_36dp</item>
</style>
<style name="Theme.AntennaPod.Dark.Splash" parent="Theme.AppCompat.NoActionBar">