Merge remote-tracking branch 'upstream/develop' into picture-in-picture
This commit is contained in:
commit
02da84b93a
|
@ -1,6 +1,13 @@
|
|||
Change Log
|
||||
==========
|
||||
|
||||
Version 1.6.4
|
||||
-------------
|
||||
|
||||
* Fixes issues on Android Oreo
|
||||
* Avoids duplicate chapters
|
||||
* Beta: Database import & export
|
||||
|
||||
Version 1.6.3
|
||||
-------------
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="de.danoeh.antennapod"
|
||||
android:installLocation="auto"
|
||||
android:versionCode="1060402"
|
||||
android:versionName="1.6.4.2">
|
||||
android:versionCode="1060405"
|
||||
android:versionName="1.6.4.5">
|
||||
<!--
|
||||
Version code schema:
|
||||
"1.2.3-SNAPSHOT" -> 1020300
|
||||
|
|
|
@ -389,17 +389,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 +465,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);
|
||||
|
|
|
@ -764,6 +764,10 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
|
|||
}
|
||||
}
|
||||
|
||||
private static String blankIfNull(String val) {
|
||||
return val == null ? "" : val;
|
||||
}
|
||||
|
||||
private void buildAutodownloadSelectedNetworsPreference() {
|
||||
final Activity activity = ui.getActivity();
|
||||
|
||||
|
@ -778,7 +782,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
|
|||
Log.e(TAG, "Couldn't get list of configure Wi-Fi networks");
|
||||
return;
|
||||
}
|
||||
Collections.sort(networks, (x, y) -> x.SSID.compareTo(y.SSID));
|
||||
Collections.sort(networks, (x, y) ->
|
||||
blankIfNull(x.SSID).compareTo(blankIfNull(y.SSID)));
|
||||
selectedNetworks = new CheckBoxPreference[networks.size()];
|
||||
List<String> prefValues = Arrays.asList(UserPreferences
|
||||
.getAutodownloadSelectedNetworks());
|
||||
|
|
10
build.gradle
10
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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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")
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -93,7 +93,7 @@ public class HttpDownloader extends Downloader {
|
|||
|
||||
|
||||
// add range header if necessary
|
||||
if (fileExists) {
|
||||
if (fileExists && destination.length() > 0) {
|
||||
request.setSoFar(destination.length());
|
||||
httpReq.addHeader("Range", "bytes=" + request.getSoFar() + "-");
|
||||
Log.d(TAG, "Adding range header: " + request.getSoFar());
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
@ -309,8 +311,7 @@ public class PodDBAdapter {
|
|||
private static PodDBHelper dbHelper;
|
||||
|
||||
private static volatile SQLiteDatabase db;
|
||||
private static final Lock dbLock = new ReentrantLock();
|
||||
private static final AtomicInteger counter = new AtomicInteger(0);
|
||||
private static int counter = 0;
|
||||
|
||||
public static void init(Context context) {
|
||||
PodDBAdapter.context = context.getApplicationContext();
|
||||
|
@ -328,25 +329,18 @@ public class PodDBAdapter {
|
|||
private PodDBAdapter() {
|
||||
}
|
||||
|
||||
public PodDBAdapter open() {
|
||||
int adapters = counter.incrementAndGet();
|
||||
Log.v(TAG, "Opening DB #" + adapters);
|
||||
public synchronized PodDBAdapter open() {
|
||||
counter++;
|
||||
Log.v(TAG, "Opening DB #" + counter);
|
||||
|
||||
if ((db == null) || (!db.isOpen()) || (db.isReadOnly())) {
|
||||
try {
|
||||
dbLock.lock();
|
||||
if ((db == null) || (!db.isOpen()) || (db.isReadOnly())) {
|
||||
db = openDb();
|
||||
}
|
||||
} finally {
|
||||
dbLock.unlock();
|
||||
}
|
||||
if (db == null || !db.isOpen() || db.isReadOnly()) {
|
||||
db = openDb();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
private SQLiteDatabase openDb() {
|
||||
SQLiteDatabase newDb = null;
|
||||
SQLiteDatabase newDb;
|
||||
try {
|
||||
newDb = dbHelper.getWritableDatabase();
|
||||
newDb.enableWriteAheadLogging();
|
||||
|
@ -357,19 +351,14 @@ public class PodDBAdapter {
|
|||
return newDb;
|
||||
}
|
||||
|
||||
public void close() {
|
||||
int adapters = counter.decrementAndGet();
|
||||
Log.v(TAG, "Closing DB #" + adapters);
|
||||
public synchronized void close() {
|
||||
counter--;
|
||||
Log.v(TAG, "Closing DB #" + counter);
|
||||
|
||||
if (adapters == 0) {
|
||||
if (counter == 0) {
|
||||
Log.v(TAG, "Closing DB, really");
|
||||
try {
|
||||
dbLock.lock();
|
||||
db.close();
|
||||
db = null;
|
||||
} finally {
|
||||
dbLock.unlock();
|
||||
}
|
||||
db.close();
|
||||
db = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1656,6 +1645,28 @@ public class PodDBAdapter {
|
|||
return db.rawQuery(FEED_STATISTICS_QUERY, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
@ -1674,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;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ public class HandlerState {
|
|||
/**
|
||||
* Buffer for saving characters.
|
||||
*/
|
||||
StringBuffer contentBuf;
|
||||
protected StringBuilder contentBuf;
|
||||
|
||||
/**
|
||||
* Temporarily saved objects.
|
||||
|
@ -97,7 +97,7 @@ public class HandlerState {
|
|||
return third;
|
||||
}
|
||||
|
||||
public StringBuffer getContentBuf() {
|
||||
public StringBuilder getContentBuf() {
|
||||
return contentBuf;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ class SyndHandler extends DefaultHandler {
|
|||
@Override
|
||||
public void startElement(String uri, String localName, String qName,
|
||||
Attributes attributes) throws SAXException {
|
||||
state.contentBuf = new StringBuffer();
|
||||
state.contentBuf = new StringBuilder();
|
||||
Namespace handler = getHandlingNamespace(uri, qName);
|
||||
if (handler != null) {
|
||||
SyndElement element = handler.handleElementStart(localName, state,
|
||||
|
|
|
@ -43,7 +43,7 @@ public class ChapterReader extends ID3Reader {
|
|||
currentChapter = null;
|
||||
}
|
||||
}
|
||||
StringBuffer elementId = new StringBuffer();
|
||||
StringBuilder elementId = new StringBuilder();
|
||||
readISOString(elementId, input, Integer.MAX_VALUE);
|
||||
char[] startTimeSource = readBytes(input, 4);
|
||||
long startTime = ((int) startTimeSource[0] << 24)
|
||||
|
@ -54,7 +54,7 @@ public class ChapterReader extends ID3Reader {
|
|||
return ID3Reader.ACTION_DONT_SKIP;
|
||||
case FRAME_ID_TITLE:
|
||||
if (currentChapter != null && currentChapter.getTitle() == null) {
|
||||
StringBuffer title = new StringBuffer();
|
||||
StringBuilder title = new StringBuilder();
|
||||
readString(title, input, header.getSize());
|
||||
currentChapter
|
||||
.setTitle(title.toString());
|
||||
|
@ -67,7 +67,7 @@ public class ChapterReader extends ID3Reader {
|
|||
if (currentChapter != null) {
|
||||
// skip description
|
||||
int descriptionLength = readString(null, input, header.getSize());
|
||||
StringBuffer link = new StringBuffer();
|
||||
StringBuilder link = new StringBuilder();
|
||||
readISOString(link, input, header.getSize() - descriptionLength);
|
||||
String decodedLink = URLDecoder.decode(link.toString(), "UTF-8");
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ public class ID3Reader {
|
|||
return out;
|
||||
}
|
||||
|
||||
int readString(StringBuffer buffer, InputStream input, int max) throws IOException,
|
||||
protected int readString(StringBuilder buffer, InputStream input, int max) throws IOException,
|
||||
ID3ReaderException {
|
||||
if (max > 0) {
|
||||
char[] encoding = readBytes(input, 1);
|
||||
|
@ -191,9 +191,8 @@ public class ID3Reader {
|
|||
}
|
||||
}
|
||||
|
||||
int readISOString(StringBuffer buffer, InputStream input, int max)
|
||||
throws IOException {
|
||||
|
||||
protected int readISOString(StringBuilder buffer, InputStream input, int max)
|
||||
throws IOException, ID3ReaderException {
|
||||
int bytesRead = 0;
|
||||
char c;
|
||||
while (++bytesRead <= max && (c = (char) input.read()) > 0) {
|
||||
|
@ -204,8 +203,8 @@ public class ID3Reader {
|
|||
return bytesRead;
|
||||
}
|
||||
|
||||
private int readUnicodeString(StringBuffer strBuffer, InputStream input, int max, Charset charset)
|
||||
throws IOException {
|
||||
private int readUnicodeString(StringBuilder strBuffer, InputStream input, int max, Charset charset)
|
||||
throws IOException, ID3ReaderException {
|
||||
byte[] buffer = new byte[max];
|
||||
int c, cZero = -1;
|
||||
int i = 0;
|
||||
|
|
|
@ -668,7 +668,7 @@
|
|||
<string name="label_import">Import</string>
|
||||
<string name="label_export">Export</string>
|
||||
<string name="import_select_file">Select file to import</string>
|
||||
<string name="export_ok">Export successful. The database was written to the SD card.</string>
|
||||
<string name="export_ok">Export successful.</string>
|
||||
<string name="import_ok">Import successful.\n\nPlease press OK to restart AntennaPod</string>
|
||||
|
||||
<!-- Casting -->
|
||||
|
|
|
@ -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">
|
||||
|
|
Loading…
Reference in New Issue