diff options
Diffstat (limited to 'app')
8 files changed, 31 insertions, 13 deletions
diff --git a/app/build.gradle b/app/build.gradle index c7b95421b..09763fdbb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,6 +30,7 @@ android { defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion + multiDexEnabled true versionCode getMyVersionCode() versionName "${getMyVersionName()}" testApplicationId "de.test.antennapod" @@ -130,6 +131,7 @@ dependencies { } else { System.out.println("app: free build hack, skipping some dependencies") } + compile 'com.android.support:multidex:1.0.1' compile "com.android.support:support-v4:$supportVersion" compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion" @@ -153,7 +155,7 @@ dependencies { 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.github.afollestad.material-dialogs:commons:$materialDialogsVersion") { + compile("com.afollestad.material-dialogs:commons:$materialDialogsVersion") { transitive = true } compile "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion" @@ -179,7 +181,7 @@ task filterAbout { inputs.files files(["src/main/templates/about.html", "src/main/AndroidManifest.xml"]) outputs.file "src/main/assets/about.html" -} << { +} doLast { copy { from "src/main/templates/about.html" into "src/main/assets" diff --git a/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java b/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java index 6d24fa526..13e8b9582 100644 --- a/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java +++ b/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java @@ -34,6 +34,16 @@ public class FilenameGeneratorTest extends AndroidTestCase { createFiles(result); } + public void testFeedTitleContainsApostrophe() { + String result = FileNameGenerator.generateFileName("Feed's Title ..."); + assertEquals("Feeds Title", result); + } + + public void testFeedTitleContainsDash() { + String result = FileNameGenerator.generateFileName("Left - Right"); + assertEquals("Left Right", result); + } + /** * Tests if files can be created. * diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 613f70fd4..10917f613 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.danoeh.antennapod" + android:installLocation="auto" android:versionCode="1060398" android:versionName="1.6.3.0"> <!-- diff --git a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java index f6a8db5fb..caa82d725 100644 --- a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java +++ b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java @@ -3,6 +3,7 @@ package de.danoeh.antennapod; import android.app.Application; import android.os.Build; import android.os.StrictMode; +import android.support.multidex.MultiDexApplication; import com.joanzapata.iconify.Iconify; import com.joanzapata.iconify.fonts.FontAwesomeModule; @@ -13,7 +14,7 @@ import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.spa.SPAUtil; /** Main application class. */ -public class PodcastApp extends Application { +public class PodcastApp extends MultiDexApplication { // make sure that ClientConfigurator executes its static code static { diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java index e381b4651..f1f8be559 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java @@ -2,6 +2,7 @@ package de.danoeh.antennapod.adapter.itunes; import android.content.Context; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; @@ -69,7 +70,7 @@ public class ItunesAdapter extends ArrayAdapter<ItunesAdapter.Podcast> { //Set the title viewHolder.titleView.setText(podcast.title); - if(!podcast.feedUrl.contains("itunes.apple.com")) { + if(podcast.feedUrl != null && !podcast.feedUrl.contains("itunes.apple.com")) { viewHolder.urlView.setText(podcast.feedUrl); viewHolder.urlView.setVisibility(View.VISIBLE); } else { @@ -102,14 +103,16 @@ public class ItunesAdapter extends ArrayAdapter<ItunesAdapter.Podcast> { /** * URL of the podcast image */ + @Nullable public final String imageUrl; /** * URL of the podcast feed */ + @Nullable public final String feedUrl; - private Podcast(String title, String imageUrl, String feedUrl) { + private Podcast(String title, @Nullable String imageUrl, @Nullable String feedUrl) { this.title = title; this.imageUrl = imageUrl; this.feedUrl = feedUrl; @@ -122,9 +125,9 @@ public class ItunesAdapter extends ArrayAdapter<ItunesAdapter.Podcast> { * @throws JSONException */ public static Podcast fromSearch(JSONObject json) throws JSONException { - String title = json.getString("collectionName"); - String imageUrl = json.getString("artworkUrl100"); - String feedUrl = json.getString("feedUrl"); + String title = json.optString("collectionName", ""); + String imageUrl = json.optString("artworkUrl100", null); + String feedUrl = json.optString("feedUrl", null); return new Podcast(title, imageUrl, feedUrl); } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index 7777af450..2ca7dd029 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -759,7 +759,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc clearAutodownloadSelectedNetworsPreference(); } // get configured networks - WifiManager wifiservice = (WifiManager) activity.getSystemService(Context.WIFI_SERVICE); + WifiManager wifiservice = (WifiManager) activity.getApplicationContext().getSystemService(Context.WIFI_SERVICE); List<WifiConfiguration> networks = wifiservice.getConfiguredNetworks(); if (networks != null) { diff --git a/app/src/play/java/de/danoeh/antennapod/dialog/CustomMRControllerDialog.java b/app/src/play/java/de/danoeh/antennapod/dialog/CustomMRControllerDialog.java index 93ec4e3f0..7b07d3f84 100644 --- a/app/src/play/java/de/danoeh/antennapod/dialog/CustomMRControllerDialog.java +++ b/app/src/play/java/de/danoeh/antennapod/dialog/CustomMRControllerDialog.java @@ -354,14 +354,15 @@ public class CustomMRControllerDialog extends MediaRouteControllerDialog { boolean showTitle = false; boolean showSubtitle = false; - if (route.getPresentationDisplayId() != MediaRouter.RouteInfo.PRESENTATION_DISPLAY_ID_NONE) { + if (route.getPresentationDisplay() != null && + route.getPresentationDisplay().getDisplayId() != MediaRouter.RouteInfo.PRESENTATION_DISPLAY_ID_NONE) { // The user is currently casting screen. titleView.setText(android.support.v7.mediarouter.R.string.mr_controller_casting_screen); showTitle = true; } else if (state == null || state.getState() == PlaybackStateCompat.STATE_NONE) { // Show "No media selected" as we don't yet know the playback state. // (Only exception is bluetooth where we don't show anything.) - if (!route.isDeviceTypeBluetooth()) { + if (!route.isBluetooth()) { titleView.setText(android.support.v7.mediarouter.R.string.mr_controller_no_media_selected); showTitle = true; } diff --git a/app/src/play/res/layout/media_router_controller.xml b/app/src/play/res/layout/media_router_controller.xml index 659ac0a78..9489173a3 100644 --- a/app/src/play/res/layout/media_router_controller.xml +++ b/app/src/play/res/layout/media_router_controller.xml @@ -31,11 +31,11 @@ <TextView android:id="@+id/mrc_control_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?attr/mediaRouteControllerPrimaryTextStyle"/> + android:textAppearance="@style/TextAppearance.MediaRouter.PrimaryText"/> <TextView android:id="@+id/mrc_control_subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?attr/mediaRouteControllerSecondaryTextStyle" + android:textAppearance="@style/TextAppearance.MediaRouter.SecondaryText" android:singleLine="true" /> </LinearLayout> </RelativeLayout> |