summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2013-09-11 14:11:26 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2013-09-11 14:11:26 +0200
commit4c1d210274f66bd4969d467233ad8e69b55b8642 (patch)
treeccc3cb7268026633ba9e962a0f4f9499fb6d42bc /src/de
parent02926a6e5ffa968d08efeae5012a0ecf41a6f33a (diff)
parent30c681d1cf5e0d33b716f6c8885ab92f46efbaa3 (diff)
downloadAntennaPod-4c1d210274f66bd4969d467233ad8e69b55b8642.zip
Merge branch 'release-0975' into develop
Diffstat (limited to 'src/de')
-rw-r--r--src/de/danoeh/antennapod/activity/FeedInfoActivity.java185
-rw-r--r--src/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java5
-rw-r--r--src/de/danoeh/antennapod/fragment/FeedlistFragment.java4
-rw-r--r--src/de/danoeh/antennapod/service/PlaybackService.java3
-rw-r--r--src/de/danoeh/antennapod/storage/DBWriter.java2
-rw-r--r--src/de/danoeh/antennapod/util/playback/PlaybackController.java11
6 files changed, 111 insertions, 99 deletions
diff --git a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
index 4a8a2f1f8..3cb46a4f8 100644
--- a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
+++ b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
@@ -9,7 +9,6 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;
-
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.ImageLoader;
@@ -21,80 +20,81 @@ import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.util.LangUtils;
import de.danoeh.antennapod.util.menuhandler.FeedMenuHandler;
-/** Displays information about a feed. */
+/**
+ * Displays information about a feed.
+ */
public class FeedInfoActivity extends ActionBarActivity {
- private static final String TAG = "FeedInfoActivity";
+ private static final String TAG = "FeedInfoActivity";
+
+ public static final String EXTRA_FEED_ID = "de.danoeh.antennapod.extra.feedId";
+
+ private Feed feed;
- public static final String EXTRA_FEED_ID = "de.danoeh.antennapod.extra.feedId";
+ private ImageView imgvCover;
+ private TextView txtvTitle;
+ private TextView txtvDescription;
+ private TextView txtvLanguage;
+ private TextView txtvAuthor;
- private Feed feed;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ setTheme(UserPreferences.getTheme());
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.feedinfo);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ long feedId = getIntent().getLongExtra(EXTRA_FEED_ID, -1);
- private ImageView imgvCover;
- private TextView txtvTitle;
- private TextView txtvDescription;
- private TextView txtvLanguage;
- private TextView txtvAuthor;
+ AsyncTask<Long, Void, Feed> loadTask = new AsyncTask<Long, Void, Feed>() {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- setTheme(UserPreferences.getTheme());
- super.onCreate(savedInstanceState);
- setContentView(R.layout.feedinfo);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- long feedId = getIntent().getLongExtra(EXTRA_FEED_ID, -1);
-
- AsyncTask<Long, Void, Feed> loadTask = new AsyncTask<Long, Void, Feed>() {
+ @Override
+ protected Feed doInBackground(Long... params) {
+ return DBReader.getFeed(FeedInfoActivity.this, params[0]);
+ }
- @Override
- protected Feed doInBackground(Long... params) {
- return DBReader.getFeed(FeedInfoActivity.this, params[0]);
- }
+ @Override
+ protected void onPostExecute(Feed result) {
+ super.onPostExecute(result);
+ if (result != null) {
+ feed = result;
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Language is " + feed.getLanguage());
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Author is " + feed.getAuthor());
+ imgvCover = (ImageView) findViewById(R.id.imgvCover);
+ txtvTitle = (TextView) findViewById(R.id.txtvTitle);
+ txtvDescription = (TextView) findViewById(R.id.txtvDescription);
+ txtvLanguage = (TextView) findViewById(R.id.txtvLanguage);
+ txtvAuthor = (TextView) findViewById(R.id.txtvAuthor);
+ imgvCover.post(new Runnable() {
- @Override
- protected void onPostExecute(Feed result) {
- super.onPostExecute(result);
- if (result != null) {
- feed = result;
- if (feed != null) {
- if (AppConfig.DEBUG)
- Log.d(TAG, "Language is " + feed.getLanguage());
- if (AppConfig.DEBUG)
- Log.d(TAG, "Author is " + feed.getAuthor());
- imgvCover = (ImageView) findViewById(R.id.imgvCover);
- txtvTitle = (TextView) findViewById(R.id.txtvTitle);
- txtvDescription = (TextView) findViewById(R.id.txtvDescription);
- txtvLanguage = (TextView) findViewById(R.id.txtvLanguage);
- txtvAuthor = (TextView) findViewById(R.id.txtvAuthor);
- imgvCover.post(new Runnable() {
+ @Override
+ public void run() {
+ ImageLoader.getInstance().loadThumbnailBitmap(
+ feed.getImage(), imgvCover);
+ }
+ });
- @Override
- public void run() {
- ImageLoader.getInstance().loadThumbnailBitmap(
- feed.getImage(), imgvCover);
- }
- });
+ txtvTitle.setText(feed.getTitle());
+ txtvDescription.setText(feed.getDescription());
+ if (feed.getAuthor() != null) {
+ txtvAuthor.setText(feed.getAuthor());
+ }
+ if (feed.getLanguage() != null) {
+ txtvLanguage.setText(LangUtils
+ .getLanguageString(feed.getLanguage()));
+ }
+ supportInvalidateOptionsMenu();
- txtvTitle.setText(feed.getTitle());
- txtvDescription.setText(feed.getDescription());
- if (feed.getAuthor() != null) {
- txtvAuthor.setText(feed.getAuthor());
- }
- if (feed.getLanguage() != null) {
- txtvLanguage.setText(LangUtils
- .getLanguageString(feed.getLanguage()));
- }
- supportInvalidateOptionsMenu();
- }
- } else {
- Log.e(TAG, "Activity was started with invalid arguments");
- }
- }
- };
- loadTask.execute(feedId);
- }
+ } else {
+ Log.e(TAG, "Activity was started with invalid arguments");
+ }
+ }
+ };
+ loadTask.execute(feedId);
+ }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
if (feed != null) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.feedinfo, menu);
@@ -102,32 +102,35 @@ public class FeedInfoActivity extends ActionBarActivity {
} else {
return false;
}
- }
+ }
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- menu.findItem(R.id.support_item).setVisible(
- feed.getPaymentLink() != null);
- menu.findItem(R.id.share_link_item).setVisible(feed.getLink() != null);
-
- return true;
- }
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ if (feed != null) {
+ menu.findItem(R.id.support_item).setVisible(
+ feed.getPaymentLink() != null);
+ menu.findItem(R.id.share_link_item).setVisible(feed.getLink() != null);
+ return true;
+ } else {
+ return false;
+ }
+ }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- default:
- try {
- return FeedMenuHandler.onOptionsItemClicked(this, item, feed);
- } catch (DownloadRequestException e) {
- e.printStackTrace();
- DownloadRequestErrorDialogCreator.newRequestErrorDialog(this,
- e.getMessage());
- }
- return super.onOptionsItemSelected(item);
- }
- }
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ default:
+ try {
+ return FeedMenuHandler.onOptionsItemClicked(this, item, feed);
+ } catch (DownloadRequestException e) {
+ e.printStackTrace();
+ DownloadRequestErrorDialogCreator.newRequestErrorDialog(this,
+ e.getMessage());
+ }
+ return super.onOptionsItemSelected(item);
+ }
+ }
}
diff --git a/src/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/src/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java
index 933263d7d..3f967bbbe 100644
--- a/src/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java
+++ b/src/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java
@@ -138,7 +138,10 @@ public class ExternalPlayerFragment extends Fragment {
@Override
public void loadMediaInfo() {
- ExternalPlayerFragment.this.loadMediaInfo();
+ ExternalPlayerFragment fragment = ExternalPlayerFragment.this;
+ if (fragment != null) {
+ fragment.loadMediaInfo();
+ }
}
@Override
diff --git a/src/de/danoeh/antennapod/fragment/FeedlistFragment.java b/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
index 6283a4b7f..ed607b279 100644
--- a/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
+++ b/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
@@ -244,10 +245,11 @@ public class FeedlistFragment extends Fragment implements
}
private boolean actionModeDestroyWorkaround = false; // TODO remove this workaround
+ private boolean skipWorkAround = Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH;
@Override
public void onDestroyActionMode(ActionMode mode) {
- if (actionModeDestroyWorkaround) {
+ if (skipWorkAround || actionModeDestroyWorkaround) {
mActionMode = null;
selectedFeed = null;
fla.setSelectedItemIndex(FeedlistAdapter.SELECTION_NONE);
diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java
index 556a58ee8..025bf7dc4 100644
--- a/src/de/danoeh/antennapod/service/PlaybackService.java
+++ b/src/de/danoeh/antennapod/service/PlaybackService.java
@@ -1460,8 +1460,7 @@ public class PlaybackService extends Service {
Log.d(TAG, "Received SKIP_CURRENT_EPISODE intent");
if (media != null) {
setStatus(PlayerStatus.STOPPED);
- player.reset();
- endPlayback(false);
+ endPlayback(true);
}
}
}
diff --git a/src/de/danoeh/antennapod/storage/DBWriter.java b/src/de/danoeh/antennapod/storage/DBWriter.java
index d995424c4..b5cab8b5a 100644
--- a/src/de/danoeh/antennapod/storage/DBWriter.java
+++ b/src/de/danoeh/antennapod/storage/DBWriter.java
@@ -572,6 +572,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
+ itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);
@@ -600,6 +601,7 @@ public class DBWriter {
itemCursor.moveToFirst();
for (int i = 0; i < itemIds.length; i++) {
itemIds[i] = itemCursor.getLong(PodDBAdapter.KEY_ID_INDEX);
+ itemCursor.moveToNext();
}
itemCursor.close();
adapter.setFeedItemRead(true, itemIds);
diff --git a/src/de/danoeh/antennapod/util/playback/PlaybackController.java b/src/de/danoeh/antennapod/util/playback/PlaybackController.java
index f5d1847b3..017a0cd5b 100644
--- a/src/de/danoeh/antennapod/util/playback/PlaybackController.java
+++ b/src/de/danoeh/antennapod/util/playback/PlaybackController.java
@@ -273,10 +273,13 @@ public abstract class PlaybackController {
public void onServiceConnected(ComponentName className, IBinder service) {
playbackService = ((PlaybackService.LocalBinder) service)
.getService();
-
- queryService();
- if (AppConfig.DEBUG)
- Log.d(TAG, "Connection to Service established");
+ if (!released) {
+ queryService();
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Connection to Service established");
+ } else {
+ Log.i(TAG, "Connection to playback service has been established, but controller has already been released");
+ }
}
@Override