diff options
6 files changed, 24 insertions, 10 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java index 4733c2558..292f3d9b6 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -106,7 +106,9 @@ public class AudioplayerActivity extends MediaplayerActivity implements NavDrawe protected void onStop() { super.onStop(); Log.d(TAG, "onStop()"); - pagerAdapter.setController(null); + if(pagerAdapter != null) { + pagerAdapter.setController(null); + } if(subscription != null) { subscription.unsubscribe(); } diff --git a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java index 805d82cf9..d4356719e 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java @@ -239,7 +239,11 @@ public class FeedInfoActivity extends ActionBarActivity { } } }; - loadTask.execute(feedId); + if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1) { + loadTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, feedId); + } else { + loadTask.execute(feedId); + } } diff --git a/app/src/main/java/de/danoeh/antennapod/activity/StorageErrorActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/StorageErrorActivity.java index e980764ec..f22507f4c 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/StorageErrorActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/StorageErrorActivity.java @@ -132,7 +132,8 @@ public class StorageErrorActivity extends AppCompatActivity { List<String> folders = new ArrayList<>(mediaDirs.length); List<CharSequence> choices = new ArrayList<>(mediaDirs.length); for(int i=0; i < mediaDirs.length; i++) { - if(mediaDirs[i] == null) { + File dir = mediaDirs[i]; + if(dir == null || !dir.exists() || !dir.canRead() || !dir.canWrite()) { continue; } String path = mediaDirs[i].getAbsolutePath(); diff --git a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java index 738fefb24..d46a3d6c2 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java @@ -121,7 +121,7 @@ public class GpodnetAuthenticationActivity extends ActionBarActivity { final String passwordStr = password.getText().toString(); if (BuildConfig.DEBUG) Log.d(TAG, "Checking login credentials"); - new AsyncTask<GpodnetService, Void, Void>() { + AsyncTask<GpodnetService, Void, Void> authTask = new AsyncTask<GpodnetService, Void, Void>() { volatile Exception exception; @@ -143,7 +143,7 @@ public class GpodnetAuthenticationActivity extends ActionBarActivity { if (exception == null) { advance(); } else { - txtvError.setText(exception.getMessage()); + txtvError.setText(exception.getCause().getMessage()); txtvError.setVisibility(View.VISIBLE); } } @@ -160,7 +160,12 @@ public class GpodnetAuthenticationActivity extends ActionBarActivity { } return null; } - }.execute(service); + }; + if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1) { + authTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, service); + } else { + authTask.execute(); + } } }); } 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 23534e4f8..3c1332e33 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -819,7 +819,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc List<String> folders = new ArrayList<>(mediaDirs.length); List<CharSequence> choices = new ArrayList<>(mediaDirs.length); for(int i=0; i < mediaDirs.length; i++) { - if(mediaDirs[i] == null) { + File dir = mediaDirs[i]; + if(dir == null || !dir.exists() || !dir.canRead() || !dir.canWrite()) { continue; } String path = mediaDirs[i].getAbsolutePath(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java index 47e2d8a26..75bbd4adc 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java @@ -577,12 +577,13 @@ public final class DBTasks { item.setAutoDownload(savedFeed.getPreferences().getAutoDownload()); savedFeed.getItems().add(idx, item); - // only mark the item new if it actually occurs - // before the most recent item (before we started adding things) + // only mark the item new if it was published after or at the same time + // as the most recent item // (if the most recent date is null then we can assume there are no items // and this is the first, hence 'new') if (priorMostRecentDate == null || - priorMostRecentDate.before(item.getPubDate())) { + priorMostRecentDate.before(item.getPubDate()) || + priorMostRecentDate.equals(item.getPubDate())) { Log.d(TAG, "Marking item published on " + item.getPubDate() + " new, prior most recent date = " + priorMostRecentDate); item.setNew(); |