summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/activity
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/activity')
-rw-r--r--src/de/danoeh/antennapod/activity/AddFeedActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/AudioplayerActivity.java61
-rw-r--r--src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/DownloadActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/DownloadLogActivity.java25
-rw-r--r--src/de/danoeh/antennapod/activity/FeedInfoActivity.java8
-rw-r--r--src/de/danoeh/antennapod/activity/FeedItemlistActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/FlattrAuthActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/ItemviewActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/MainActivity.java37
-rw-r--r--src/de/danoeh/antennapod/activity/MediaplayerActivity.java149
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java7
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java10
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java18
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportHolder.java4
-rw-r--r--src/de/danoeh/antennapod/activity/OrganizeQueueActivity.java66
-rw-r--r--src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/PreferenceActivity.java14
-rw-r--r--src/de/danoeh/antennapod/activity/SearchActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/StorageErrorActivity.java4
-rw-r--r--src/de/danoeh/antennapod/activity/VideoplayerActivity.java37
26 files changed, 280 insertions, 212 deletions
diff --git a/src/de/danoeh/antennapod/activity/AddFeedActivity.java b/src/de/danoeh/antennapod/activity/AddFeedActivity.java
index 44486b5ef..39434fa87 100644
--- a/src/de/danoeh/antennapod/activity/AddFeedActivity.java
+++ b/src/de/danoeh/antennapod/activity/AddFeedActivity.java
@@ -18,9 +18,9 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.feed.Feed;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.storage.DownloadRequester;
import de.danoeh.antennapod.util.ConnectionTester;
@@ -44,7 +44,7 @@ public class AddFeedActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
StorageUtils.checkStorageAvailability(this);
diff --git a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
index 48b09b92b..3e38d7b5c 100644
--- a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -1,5 +1,7 @@
package de.danoeh.antennapod.activity;
+import java.io.File;
+
import android.content.Intent;
import android.content.res.TypedArray;
import android.os.Bundle;
@@ -20,13 +22,15 @@ import com.actionbarsherlock.view.Window;
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.ChapterListAdapter;
-import de.danoeh.antennapod.asynctask.FeedImageLoader;
+import de.danoeh.antennapod.asynctask.ImageLoader;
import de.danoeh.antennapod.feed.Chapter;
-import de.danoeh.antennapod.feed.FeedMedia;
+import de.danoeh.antennapod.feed.MediaType;
import de.danoeh.antennapod.feed.SimpleChapter;
import de.danoeh.antennapod.fragment.CoverFragment;
import de.danoeh.antennapod.fragment.ItemDescriptionFragment;
import de.danoeh.antennapod.service.PlaybackService;
+import de.danoeh.antennapod.util.playback.ExternalMedia;
+import de.danoeh.antennapod.util.playback.Playable;
/** Activity for playing audio files. */
public class AudioplayerActivity extends MediaplayerActivity {
@@ -71,10 +75,32 @@ public class AudioplayerActivity extends MediaplayerActivity {
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(savedInstanceState);
+ getSupportActionBar().setDisplayShowTitleEnabled(false);
detachedFragments = new Fragment[NUM_CONTENT_FRAGMENTS];
}
@Override
+ protected void onResume() {
+ super.onResume();
+ if (getIntent().getAction() != null
+ && getIntent().getAction().equals(Intent.ACTION_VIEW)) {
+ Intent intent = getIntent();
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Received VIEW intent: "
+ + intent.getData().getPath());
+ ExternalMedia media = new ExternalMedia(intent.getData().getPath(), MediaType.AUDIO);
+ Intent launchIntent = new Intent(this, PlaybackService.class);
+ launchIntent.putExtra(PlaybackService.EXTRA_PLAYABLE, media);
+ launchIntent.putExtra(PlaybackService.EXTRA_START_WHEN_PREPARED,
+ true);
+ launchIntent.putExtra(PlaybackService.EXTRA_SHOULD_STREAM, false);
+ launchIntent.putExtra(PlaybackService.EXTRA_PREPARE_IMMEDIATELY,
+ true);
+ startService(launchIntent);
+ }
+ }
+
+ @Override
protected void onAwaitingVideoSurface() {
startActivity(new Intent(this, VideoplayerActivity.class));
}
@@ -101,7 +127,7 @@ public class AudioplayerActivity extends MediaplayerActivity {
if (AppConfig.DEBUG)
Log.d(TAG, "Switching contentView to position " + pos);
if (currentlyShownPosition != pos) {
- FeedMedia media = controller.getMedia();
+ Playable media = controller.getMedia();
if (media != null) {
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
@@ -113,15 +139,14 @@ public class AudioplayerActivity extends MediaplayerActivity {
case POS_COVER:
if (coverFragment == null) {
Log.i(TAG, "Using new coverfragment");
- coverFragment = CoverFragment.newInstance(media
- .getItem());
+ coverFragment = CoverFragment.newInstance(media);
}
currentlyShownFragment = coverFragment;
break;
case POS_DESCR:
if (descriptionFragment == null) {
descriptionFragment = ItemDescriptionFragment
- .newInstance(media.getItem());
+ .newInstance(media);
}
currentlyShownFragment = descriptionFragment;
break;
@@ -140,7 +165,7 @@ public class AudioplayerActivity extends MediaplayerActivity {
};
chapterFragment.setListAdapter(new ChapterListAdapter(
- AudioplayerActivity.this, 0, media.getItem()
+ AudioplayerActivity.this, 0, media
.getChapters(), media));
}
currentlyShownFragment = chapterFragment;
@@ -167,7 +192,7 @@ public class AudioplayerActivity extends MediaplayerActivity {
private void updateNavButtonDrawable() {
TypedArray drawables = obtainStyledAttributes(new int[] {
R.attr.navigation_shownotes, R.attr.navigation_chapters });
- final FeedMedia media = controller.getMedia();
+ final Playable media = controller.getMedia();
if (butNavLeft != null && butNavRight != null && media != null) {
switch (currentlyShownPosition) {
case POS_COVER:
@@ -181,9 +206,8 @@ public class AudioplayerActivity extends MediaplayerActivity {
@Override
public void run() {
- FeedImageLoader.getInstance().loadThumbnailBitmap(
- media.getItem().getFeed().getImage(),
- butNavLeft);
+ ImageLoader.getInstance().loadThumbnailBitmap(
+ media.getImageFileUrl(), butNavLeft);
}
});
butNavRight.setImageDrawable(drawables.getDrawable(1));
@@ -194,9 +218,8 @@ public class AudioplayerActivity extends MediaplayerActivity {
@Override
public void run() {
- FeedImageLoader.getInstance().loadThumbnailBitmap(
- media.getItem().getFeed().getImage(),
- butNavLeft);
+ ImageLoader.getInstance().loadThumbnailBitmap(
+ media.getImageFileUrl(), butNavLeft);
}
});
butNavRight.setImageDrawable(drawables.getDrawable(0));
@@ -251,11 +274,11 @@ public class AudioplayerActivity extends MediaplayerActivity {
@Override
protected void loadMediaInfo() {
super.loadMediaInfo();
- final FeedMedia media = controller.getMedia();
+ final Playable media = controller.getMedia();
if (media != null) {
- txtvTitle.setText(media.getItem().getTitle());
- txtvFeed.setText(media.getItem().getFeed().getTitle());
- if (media.getItem().getChapters() != null) {
+ txtvTitle.setText(media.getEpisodeTitle());
+ txtvFeed.setText(media.getFeedTitle());
+ if (media.getChapters() != null) {
butNavRight.setVisibility(View.VISIBLE);
} else {
butNavRight.setVisibility(View.GONE);
@@ -302,7 +325,7 @@ public class AudioplayerActivity extends MediaplayerActivity {
}
public interface AudioplayerContentFragment {
- public void onDataSetChanged(FeedMedia media);
+ public void onDataSetChanged(Playable media);
}
}
diff --git a/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java b/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java
index 6e1163508..54c4f0589 100644
--- a/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java
+++ b/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java
@@ -30,8 +30,8 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Let's the user choose a directory on the storage device. The selected folder
@@ -61,7 +61,7 @@ public class DirectoryChooserActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/src/de/danoeh/antennapod/activity/DownloadActivity.java b/src/de/danoeh/antennapod/activity/DownloadActivity.java
index 0c10abefd..10ebb1285 100644
--- a/src/de/danoeh/antennapod/activity/DownloadActivity.java
+++ b/src/de/danoeh/antennapod/activity/DownloadActivity.java
@@ -22,10 +22,10 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.DownloadlistAdapter;
import de.danoeh.antennapod.asynctask.DownloadStatus;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.download.DownloadService;
import de.danoeh.antennapod.storage.DownloadRequester;
@@ -52,7 +52,7 @@ public class DownloadActivity extends SherlockListActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
if (AppConfig.DEBUG)
Log.d(TAG, "Creating Activity");
diff --git a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
index 45d31cda9..232a7ba1d 100644
--- a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
+++ b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
@@ -1,18 +1,15 @@
package de.danoeh.antennapod.activity;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockListActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.adapter.DownloadLogAdapter;
+import de.danoeh.antennapod.feed.EventDistributor;
import de.danoeh.antennapod.feed.FeedManager;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Displays completed and failed downloads in a list. The data comes from the
@@ -26,11 +23,11 @@ public class DownloadLogActivity extends SherlockListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
manager = FeedManager.getInstance();
- dla = new DownloadLogAdapter(this, 0, manager.getDownloadLog());
+ dla = new DownloadLogAdapter(this);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setListAdapter(dla);
}
@@ -38,14 +35,13 @@ public class DownloadLogActivity extends SherlockListActivity {
@Override
protected void onPause() {
super.onPause();
- unregisterReceiver(contentUpdate);
+ EventDistributor.getInstance().unregister(contentUpdate);
}
@Override
protected void onResume() {
super.onResume();
- registerReceiver(contentUpdate, new IntentFilter(
- FeedManager.ACTION_DOWNLOADLOG_UPDATE));
+ EventDistributor.getInstance().register(contentUpdate);
dla.notifyDataSetChanged();
}
@@ -66,12 +62,11 @@ public class DownloadLogActivity extends SherlockListActivity {
return true;
}
- private BroadcastReceiver contentUpdate = new BroadcastReceiver() {
-
+ private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
+
@Override
- public void onReceive(Context context, Intent intent) {
- if (intent.getAction()
- .equals(FeedManager.ACTION_DOWNLOADLOG_UPDATE)) {
+ public void update(EventDistributor eventDistributor, Integer arg) {
+ if ((arg & EventDistributor.DOWNLOADLOG_UPDATE) != 0) {
dla.notifyDataSetChanged();
}
}
diff --git a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
index 0ff1d7c1c..c57a5794b 100644
--- a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
+++ b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java
@@ -11,12 +11,12 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.asynctask.FeedImageLoader;
+import de.danoeh.antennapod.asynctask.ImageLoader;
import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator;
import de.danoeh.antennapod.feed.Feed;
import de.danoeh.antennapod.feed.FeedManager;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.util.LangUtils;
import de.danoeh.antennapod.util.menuhandler.FeedMenuHandler;
@@ -37,7 +37,7 @@ public class FeedInfoActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.feedinfo);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -58,7 +58,7 @@ public class FeedInfoActivity extends SherlockActivity {
@Override
public void run() {
- FeedImageLoader.getInstance().loadThumbnailBitmap(
+ ImageLoader.getInstance().loadThumbnailBitmap(
feed.getImage(), imgvCover);
}
});
diff --git a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java
index 1be29ddbe..fdca48e8a 100644
--- a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java
+++ b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java
@@ -15,7 +15,6 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.FeedRemover;
import de.danoeh.antennapod.dialog.ConfirmationDialog;
@@ -25,6 +24,7 @@ import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.fragment.ExternalPlayerFragment;
import de.danoeh.antennapod.fragment.FeedlistFragment;
import de.danoeh.antennapod.fragment.ItemlistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.util.StorageUtils;
import de.danoeh.antennapod.util.menuhandler.FeedMenuHandler;
@@ -42,7 +42,7 @@ public class FeedItemlistActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
StorageUtils.checkStorageAvailability(this);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
diff --git a/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java b/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java
index b78b37afa..75e513816 100644
--- a/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java
+++ b/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java
@@ -17,8 +17,8 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.util.flattr.FlattrUtils;
/** Guides the user through the authentication process */
@@ -36,7 +36,7 @@ public class FlattrAuthActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
singleton = this;
authSuccessful = false;
diff --git a/src/de/danoeh/antennapod/activity/ItemviewActivity.java b/src/de/danoeh/antennapod/activity/ItemviewActivity.java
index 668cb3a28..63dcb78f1 100644
--- a/src/de/danoeh/antennapod/activity/ItemviewActivity.java
+++ b/src/de/danoeh/antennapod/activity/ItemviewActivity.java
@@ -16,7 +16,6 @@ import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator;
import de.danoeh.antennapod.feed.Feed;
@@ -25,6 +24,7 @@ import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.fragment.FeedlistFragment;
import de.danoeh.antennapod.fragment.ItemDescriptionFragment;
import de.danoeh.antennapod.fragment.ItemlistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.util.StorageUtils;
import de.danoeh.antennapod.util.menuhandler.FeedItemMenuHandler;
@@ -42,7 +42,7 @@ public class ItemviewActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
StorageUtils.checkStorageAvailability(this);
manager = FeedManager.getInstance();
diff --git a/src/de/danoeh/antennapod/activity/MainActivity.java b/src/de/danoeh/antennapod/activity/MainActivity.java
index 67d7424b6..0ec66ff35 100644
--- a/src/de/danoeh/antennapod/activity/MainActivity.java
+++ b/src/de/danoeh/antennapod/activity/MainActivity.java
@@ -1,9 +1,7 @@
package de.danoeh.antennapod.activity;
-import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
@@ -20,12 +18,13 @@ import com.actionbarsherlock.view.Window;
import com.viewpagerindicator.TabPageIndicator;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.feed.EventDistributor;
import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.fragment.EpisodesFragment;
import de.danoeh.antennapod.fragment.ExternalPlayerFragment;
import de.danoeh.antennapod.fragment.FeedlistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.PlaybackService;
import de.danoeh.antennapod.service.download.DownloadService;
import de.danoeh.antennapod.storage.DownloadRequester;
@@ -35,6 +34,9 @@ import de.danoeh.antennapod.util.StorageUtils;
public class MainActivity extends SherlockFragmentActivity {
private static final String TAG = "MainActivity";
+ private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED
+ | EventDistributor.DOWNLOAD_QUEUED;
+
private FeedManager manager;
private ViewPager viewpager;
private MainPagerAdapter pagerAdapter;
@@ -45,7 +47,7 @@ public class MainActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
StorageUtils.checkStorageAvailability(this);
manager = FeedManager.getInstance();
@@ -69,7 +71,7 @@ public class MainActivity extends SherlockFragmentActivity {
if (!appLaunched && getIntent().getAction() != null
&& getIntent().getAction().equals(Intent.ACTION_MAIN)) {
appLaunched = true;
- if (manager.getUnreadItems().size() > 0) {
+ if (manager.getUnreadItemsSize(true) > 0) {
viewpager.setCurrentItem(MainPagerAdapter.POS_EPISODES);
}
@@ -79,7 +81,7 @@ public class MainActivity extends SherlockFragmentActivity {
@Override
protected void onPause() {
super.onPause();
- unregisterReceiver(contentUpdate);
+ EventDistributor.getInstance().unregister(contentUpdate);
}
@Override
@@ -87,18 +89,19 @@ public class MainActivity extends SherlockFragmentActivity {
super.onResume();
StorageUtils.checkStorageAvailability(this);
updateProgressBarVisibility();
- IntentFilter filter = new IntentFilter();
- filter.addAction(DownloadService.ACTION_DOWNLOAD_HANDLED);
- filter.addAction(DownloadRequester.ACTION_DOWNLOAD_QUEUED);
- registerReceiver(contentUpdate, filter);
+ EventDistributor.getInstance().register(contentUpdate);
+
}
- private BroadcastReceiver contentUpdate = new BroadcastReceiver() {
+ private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
+
@Override
- public void onReceive(Context context, Intent intent) {
- if (AppConfig.DEBUG)
- Log.d(TAG, "Received contentUpdate Intent.");
- updateProgressBarVisibility();
+ public void update(EventDistributor eventDistributor, Integer arg) {
+ if ((EVENTS & arg) != 0) {
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Received contentUpdate Intent.");
+ updateProgressBarVisibility();
+ }
}
};
@@ -109,7 +112,7 @@ public class MainActivity extends SherlockFragmentActivity {
} else {
setSupportProgressBarIndeterminateVisibility(false);
}
- invalidateOptionsMenu();
+ supportInvalidateOptionsMenu();
}
@Override
@@ -151,7 +154,7 @@ public class MainActivity extends SherlockFragmentActivity {
refreshAll.setVisible(true);
}
- boolean hasFeeds = !manager.getFeeds().isEmpty();
+ boolean hasFeeds = manager.getFeedsSize() > 0;
menu.findItem(R.id.all_feed_refresh).setVisible(hasFeeds);
return true;
}
diff --git a/src/de/danoeh/antennapod/activity/MediaplayerActivity.java b/src/de/danoeh/antennapod/activity/MediaplayerActivity.java
index 952cddf8b..c217a4628 100644
--- a/src/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/src/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -5,6 +5,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
+import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageButton;
@@ -18,19 +19,18 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator;
+import de.danoeh.antennapod.asynctask.FlattrClickWorker;
import de.danoeh.antennapod.dialog.TimeDialog;
import de.danoeh.antennapod.feed.FeedManager;
-import de.danoeh.antennapod.feed.FeedMedia;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.PlaybackService;
-import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.util.Converter;
-import de.danoeh.antennapod.util.MediaPlayerError;
-import de.danoeh.antennapod.util.PlaybackController;
+import de.danoeh.antennapod.util.ShareUtils;
import de.danoeh.antennapod.util.StorageUtils;
-import de.danoeh.antennapod.util.menuhandler.FeedItemMenuHandler;
+import de.danoeh.antennapod.util.playback.MediaPlayerError;
+import de.danoeh.antennapod.util.playback.Playable;
+import de.danoeh.antennapod.util.playback.PlaybackController;
/**
* Provides general features which are both needed for playing audio and video
@@ -91,7 +91,7 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity
@Override
public void onSleepTimerUpdate() {
- invalidateOptionsMenu();
+ supportInvalidateOptionsMenu();
}
@Override
@@ -133,12 +133,12 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity
}
protected void onServiceQueried() {
- invalidateOptionsMenu();
+ supportInvalidateOptionsMenu();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
if (AppConfig.DEBUG)
Log.d(TAG, "Creating Activity");
@@ -219,14 +219,14 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
- FeedMedia media = controller.getMedia();
+ Playable media = controller.getMedia();
menu.findItem(R.id.support_item).setVisible(
- media != null && media.getItem().getPaymentLink() != null);
+ media != null && media.getPaymentLink() != null);
menu.findItem(R.id.share_link_item).setVisible(
- media != null && media.getItem().getLink() != null);
+ media != null && media.getWebsiteLink() != null);
menu.findItem(R.id.visit_website_item).setVisible(
- media != null && media.getItem().getLink() != null);
+ media != null && media.getWebsiteLink() != null);
boolean sleepTimerSet = controller.sleepTimerActive();
boolean sleepTimerNotSet = controller.sleepTimerNotActive();
@@ -237,69 +237,80 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
+ Playable media = controller.getMedia();
+ if (item.getItemId() == android.R.id.home) {
Intent intent = new Intent(MediaplayerActivity.this,
MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
- break;
- case R.id.disable_sleeptimer_item:
- if (controller.serviceAvailable()) {
- AlertDialog.Builder stDialog = new AlertDialog.Builder(this);
- stDialog.setTitle(R.string.sleep_timer_label);
- stDialog.setMessage(getString(R.string.time_left_label)
- + Converter.getDurationStringLong((int) controller
- .getSleepTimerTimeLeft()));
- stDialog.setPositiveButton(R.string.disable_sleeptimer_label,
- new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- dialog.dismiss();
- controller.disableSleepTimer();
- }
- });
- stDialog.setNegativeButton(R.string.cancel_label,
- new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- dialog.dismiss();
- }
- });
- stDialog.create().show();
- }
- break;
- case R.id.set_sleeptimer_item:
- if (controller.serviceAvailable()) {
- TimeDialog td = new TimeDialog(this,
- R.string.set_sleeptimer_label,
- R.string.set_sleeptimer_label) {
-
- @Override
- public void onTimeEntered(long millis) {
- controller.setSleepTimer(millis);
- }
- };
- td.show();
+ return true;
+ } else if (media != null) {
+ switch (item.getItemId()) {
+ case R.id.disable_sleeptimer_item:
+ if (controller.serviceAvailable()) {
+ AlertDialog.Builder stDialog = new AlertDialog.Builder(this);
+ stDialog.setTitle(R.string.sleep_timer_label);
+ stDialog.setMessage(getString(R.string.time_left_label)
+ + Converter.getDurationStringLong((int) controller
+ .getSleepTimerTimeLeft()));
+ stDialog.setPositiveButton(
+ R.string.disable_sleeptimer_label,
+ new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ dialog.dismiss();
+ controller.disableSleepTimer();
+ }
+ });
+ stDialog.setNegativeButton(R.string.cancel_label,
+ new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ dialog.dismiss();
+ }
+ });
+ stDialog.create().show();
+ }
+ break;
+ case R.id.set_sleeptimer_item:
+ if (controller.serviceAvailable()) {
+ TimeDialog td = new TimeDialog(this,
+ R.string.set_sleeptimer_label,
+ R.string.set_sleeptimer_label) {
+
+ @Override
+ public void onTimeEntered(long millis) {
+ controller.setSleepTimer(millis);
+ }
+ };
+ td.show();
+ break;
+
+ }
+ case R.id.visit_website_item:
+ Uri uri = Uri.parse(media.getWebsiteLink());
+ startActivity(new Intent(Intent.ACTION_VIEW, uri));
break;
+ case R.id.support_item:
+ new FlattrClickWorker(this, media.getPaymentLink())
+ .executeAsync();
+ break;
+ case R.id.share_link_item:
+ ShareUtils.shareLink(this, media.getWebsiteLink());
+ break;
+ default:
+ return false;
}
- default:
- try {
- return FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(),
- controller.getMedia().getItem());
- } catch (DownloadRequestException e) {
- e.printStackTrace();
- DownloadRequestErrorDialogCreator.newRequestErrorDialog(this,
- e.getMessage());
- }
+ return true;
+ } else {
+ return false;
}
- return true;
}
@Override
@@ -363,7 +374,7 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity
protected void loadMediaInfo() {
if (AppConfig.DEBUG)
Log.d(TAG, "Loading media info");
- FeedMedia media = controller.getMedia();
+ Playable media = controller.getMedia();
if (media != null) {
txtvPosition.setText(Converter.getDurationStringLong((media
.getPosition())));
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java
index 7a765a893..bb50944cc 100644
--- a/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java
+++ b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java
@@ -12,9 +12,9 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.viewpagerindicator.TabPageIndicator;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.fragment.MiroGuideChannellistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Shows channels of a category sorted by different criteria in lists. The
@@ -34,7 +34,7 @@ public class MiroGuideCategoryActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle arg0) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(arg0);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.miroguide_category);
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java
index 05d346bb4..f9fe912cd 100644
--- a/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java
+++ b/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java
@@ -21,7 +21,6 @@ import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.MiroGuideItemlistAdapter;
import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator;
@@ -30,6 +29,7 @@ import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.miroguide.conn.MiroGuideException;
import de.danoeh.antennapod.miroguide.conn.MiroGuideService;
import de.danoeh.antennapod.miroguide.model.MiroGuideChannel;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.storage.DownloadRequestException;
import de.danoeh.antennapod.storage.DownloadRequester;
@@ -62,7 +62,7 @@ public class MiroGuideChannelViewActivity extends SherlockActivity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.miroguide_channelview);
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
index 6dcb1bdca..8b33ef1da 100644
--- a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
+++ b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
@@ -15,10 +15,10 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.miroguide.conn.MiroGuideException;
import de.danoeh.antennapod.miroguide.conn.MiroGuideService;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Shows a list of available categories and offers a search button. If the user
@@ -34,7 +34,7 @@ public class MiroGuideMainActivity extends SherlockListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.miroguide_categorylist);
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java
index 2943339ad..a30777fb1 100644
--- a/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java
+++ b/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java
@@ -11,9 +11,9 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.fragment.MiroGuideChannellistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Displays results when a search for miroguide channels has been performed. It
@@ -26,7 +26,7 @@ public class MiroGuideSearchActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle arg0) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(arg0);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.miroguidesearch);
diff --git a/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java b/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
index 2301d2f0f..9ba355baf 100644
--- a/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
@@ -16,9 +16,9 @@ import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.opml.OpmlElement;
+import de.danoeh.antennapod.preferences.UserPreferences;
/**
* Displays the feeds that the OPML-Importer has read and lets the user choose
@@ -36,7 +36,7 @@ public class OpmlFeedChooserActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.opml_selection);
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
index cf3028307..f887fdd94 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
@@ -1,14 +1,17 @@
package de.danoeh.antennapod.activity;
+import java.io.Reader;
+import java.util.ArrayList;
+
import android.content.Intent;
import android.util.Log;
+
import com.actionbarsherlock.app.SherlockActivity;
+
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.asynctask.OpmlFeedQueuer;
import de.danoeh.antennapod.asynctask.OpmlImportWorker;
import de.danoeh.antennapod.opml.OpmlElement;
-import java.io.Reader;
-import java.util.ArrayList;
/**
* Base activity for Opml Import - e.g. with code what to do afterwards
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
index cbe69d48c..dc698a851 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
@@ -1,17 +1,19 @@
package de.danoeh.antennapod.activity;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+
import android.app.AlertDialog;
import android.os.Bundle;
-import de.danoeh.antennapod.PodcastApp;
-import java.io.*;
-import java.net.URL;
+import de.danoeh.antennapod.preferences.UserPreferences;
/** Lets the user start the OPML-import process. */
public class OpmlImportFromIntentActivity extends OpmlImportBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
index bb5734b57..b38e0c443 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
@@ -1,5 +1,10 @@
package de.danoeh.antennapod.activity;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.Reader;
+
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
@@ -9,18 +14,15 @@ import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
+
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
+
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.util.StorageUtils;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.Reader;
-
/**
* Lets the user start the OPML-import process from a path
*/
@@ -33,7 +35,7 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -63,7 +65,7 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
* directory.
*/
private void setImportPath() {
- File importDir = PodcastApp.getDataFolder(this, IMPORT_DIR);
+ File importDir = UserPreferences.getDataFolder(this, IMPORT_DIR);
boolean success = true;
if (!importDir.exists()) {
if (AppConfig.DEBUG)
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportHolder.java b/src/de/danoeh/antennapod/activity/OpmlImportHolder.java
index ec53ed7b6..8d51eb3de 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportHolder.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportHolder.java
@@ -1,9 +1,9 @@
package de.danoeh.antennapod.activity;
-import de.danoeh.antennapod.opml.OpmlElement;
-
import java.util.ArrayList;
+import de.danoeh.antennapod.opml.OpmlElement;
+
/**
* Hold infos gathered by Ompl-Import
* <p/>
diff --git a/src/de/danoeh/antennapod/activity/OrganizeQueueActivity.java b/src/de/danoeh/antennapod/activity/OrganizeQueueActivity.java
index a7017d2fb..56e42f79f 100644
--- a/src/de/danoeh/antennapod/activity/OrganizeQueueActivity.java
+++ b/src/de/danoeh/antennapod/activity/OrganizeQueueActivity.java
@@ -1,17 +1,12 @@
package de.danoeh.antennapod.activity;
-import java.util.List;
-
-import android.content.BroadcastReceiver;
import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
@@ -20,11 +15,12 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.mobeta.android.dslv.DragSortListView;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.asynctask.FeedImageLoader;
+import de.danoeh.antennapod.asynctask.ImageLoader;
+import de.danoeh.antennapod.feed.EventDistributor;
import de.danoeh.antennapod.feed.FeedItem;
import de.danoeh.antennapod.feed.FeedManager;
+import de.danoeh.antennapod.preferences.UserPreferences;
public class OrganizeQueueActivity extends SherlockListActivity {
private static final String TAG = "OrganizeQueueActivity";
@@ -35,7 +31,7 @@ public class OrganizeQueueActivity extends SherlockListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.organize_queue);
@@ -43,38 +39,32 @@ public class OrganizeQueueActivity extends SherlockListActivity {
listView.setDropListener(dropListener);
listView.setRemoveListener(removeListener);
- adapter = new OrganizeAdapter(this, 0, FeedManager.getInstance()
- .getQueue());
+ adapter = new OrganizeAdapter(this);
setListAdapter(adapter);
}
@Override
protected void onPause() {
super.onPause();
- try {
- unregisterReceiver(contentUpdate);
- } catch (IllegalArgumentException e) {
-
- }
+ EventDistributor.getInstance().unregister(contentUpdate);
}
@Override
protected void onResume() {
super.onResume();
- IntentFilter filter = new IntentFilter(FeedManager.ACTION_QUEUE_UPDATE);
- filter.addAction(FeedManager.ACTION_FEED_LIST_UPDATE);
- registerReceiver(contentUpdate, filter);
+ EventDistributor.getInstance().register(contentUpdate);
}
- private BroadcastReceiver contentUpdate = new BroadcastReceiver() {
+ private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
@Override
- public void onReceive(Context context, Intent intent) {
- if (adapter != null) {
- adapter.notifyDataSetChanged();
+ public void update(EventDistributor eventDistributor, Integer arg) {
+ if (((EventDistributor.QUEUE_UPDATE | EventDistributor.FEED_LIST_UPDATE) & arg) != 0) {
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
}
}
-
};
private DragSortListView.DropListener dropListener = new DragSortListView.DropListener() {
@@ -120,13 +110,12 @@ public class OrganizeQueueActivity extends SherlockListActivity {
}
}
- private static class OrganizeAdapter extends ArrayAdapter<FeedItem> {
+ private static class OrganizeAdapter extends BaseAdapter {
private Context context;
- public OrganizeAdapter(Context context, int textViewResourceId,
- List<FeedItem> objects) {
- super(context, textViewResourceId, objects);
+ public OrganizeAdapter(Context context) {
+ super();
this.context = context;
}
@@ -156,8 +145,9 @@ public class OrganizeQueueActivity extends SherlockListActivity {
holder.title.setText(item.getTitle());
holder.feedTitle.setText(item.getFeed().getTitle());
- holder.feedImage.setTag(item.getFeed().getImage());
- FeedImageLoader.getInstance().loadThumbnailBitmap(
+ holder.feedImage.setTag((item.getFeed().getImage() != null) ? item
+ .getFeed().getImage().getFile_url() : null);
+ ImageLoader.getInstance().loadThumbnailBitmap(
item.getFeed().getImage(),
holder.feedImage,
(int) convertView.getResources().getDimension(
@@ -172,6 +162,22 @@ public class OrganizeQueueActivity extends SherlockListActivity {
ImageView feedImage;
}
+ @Override
+ public int getCount() {
+ return FeedManager.getInstance().getQueueSize(true);
+ }
+
+ @Override
+ public FeedItem getItem(int position) {
+ return FeedManager.getInstance()
+ .getQueueItemAtIndex(position, true);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
}
}
diff --git a/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java b/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java
index 22958b058..1a5a2cac9 100644
--- a/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java
+++ b/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java
@@ -10,10 +10,10 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
public class PlaybackHistoryActivity extends SherlockFragmentActivity {
private static final String TAG = "PlaybackHistoryActivity";
@@ -44,7 +44,7 @@ public class PlaybackHistoryActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle arg0) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(arg0);
if (AppConfig.DEBUG)
diff --git a/src/de/danoeh/antennapod/activity/PreferenceActivity.java b/src/de/danoeh/antennapod/activity/PreferenceActivity.java
index fa0c42b37..360ff610d 100644
--- a/src/de/danoeh/antennapod/activity/PreferenceActivity.java
+++ b/src/de/danoeh/antennapod/activity/PreferenceActivity.java
@@ -15,11 +15,11 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.FlattrClickWorker;
import de.danoeh.antennapod.asynctask.OpmlExportWorker;
import de.danoeh.antennapod.feed.FeedManager;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.util.flattr.FlattrUtils;
/** The main preference activity */
@@ -36,7 +36,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -82,7 +82,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
@Override
public boolean onPreferenceClick(Preference preference) {
- if (!FeedManager.getInstance().getFeeds().isEmpty()) {
+ if (FeedManager.getInstance().getFeedsSize() > 0) {
new OpmlExportWorker(PreferenceActivity.this)
.executeAsync();
}
@@ -102,7 +102,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
return true;
}
});
- findPreference(PodcastApp.PREF_THEME).setOnPreferenceChangeListener(
+ findPreference(UserPreferences.PREF_THEME).setOnPreferenceChangeListener(
new OnPreferenceChangeListener() {
@Override
@@ -137,7 +137,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
}
private void setDataFolderText() {
- File f = PodcastApp.getDataFolder(this, null);
+ File f = UserPreferences.getDataFolder(this, null);
if (f != null) {
findPreference(PREF_CHOOSE_DATA_DIR)
.setSummary(f.getAbsolutePath());
@@ -165,7 +165,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
@Override
protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
- theme.applyStyle(PodcastApp.getThemeResourceId(), true);
+ theme.applyStyle(UserPreferences.getTheme(), true);
}
@Override
@@ -176,7 +176,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity {
.getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR);
if (AppConfig.DEBUG)
Log.d(TAG, "Setting data folder");
- PodcastApp.getInstance().setDataFolder(dir);
+ UserPreferences.setDataFolder(dir);
}
}
diff --git a/src/de/danoeh/antennapod/activity/SearchActivity.java b/src/de/danoeh/antennapod/activity/SearchActivity.java
index bb2eb54cc..152710112 100644
--- a/src/de/danoeh/antennapod/activity/SearchActivity.java
+++ b/src/de/danoeh/antennapod/activity/SearchActivity.java
@@ -16,7 +16,6 @@ import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.SearchlistAdapter;
import de.danoeh.antennapod.feed.Feed;
@@ -26,6 +25,7 @@ import de.danoeh.antennapod.feed.FeedSearcher;
import de.danoeh.antennapod.feed.SearchResult;
import de.danoeh.antennapod.fragment.FeedlistFragment;
import de.danoeh.antennapod.fragment.ItemlistFragment;
+import de.danoeh.antennapod.preferences.UserPreferences;
/** Displays the results when the user searches for FeedItems or Feeds. */
public class SearchActivity extends SherlockListActivity {
@@ -43,7 +43,7 @@ public class SearchActivity extends SherlockListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/src/de/danoeh/antennapod/activity/StorageErrorActivity.java b/src/de/danoeh/antennapod/activity/StorageErrorActivity.java
index 514b1f69d..4d9184dcf 100644
--- a/src/de/danoeh/antennapod/activity/StorageErrorActivity.java
+++ b/src/de/danoeh/antennapod/activity/StorageErrorActivity.java
@@ -10,8 +10,8 @@ import android.util.Log;
import com.actionbarsherlock.app.SherlockActivity;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.util.StorageUtils;
/** Is show if there is now external storage available. */
@@ -20,7 +20,7 @@ public class StorageErrorActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.storage_error);
diff --git a/src/de/danoeh/antennapod/activity/VideoplayerActivity.java b/src/de/danoeh/antennapod/activity/VideoplayerActivity.java
index f6ea4f69e..2d9834a3e 100644
--- a/src/de/danoeh/antennapod/activity/VideoplayerActivity.java
+++ b/src/de/danoeh/antennapod/activity/VideoplayerActivity.java
@@ -18,11 +18,13 @@ import android.widget.VideoView;
import com.actionbarsherlock.view.Window;
import de.danoeh.antennapod.AppConfig;
-import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.feed.FeedMedia;
+import de.danoeh.antennapod.feed.MediaType;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.PlaybackService;
import de.danoeh.antennapod.service.PlayerStatus;
+import de.danoeh.antennapod.util.playback.ExternalMedia;
+import de.danoeh.antennapod.util.playback.Playable;
/** Activity for playing audio files. */
public class VideoplayerActivity extends MediaplayerActivity implements
@@ -41,7 +43,7 @@ public class VideoplayerActivity extends MediaplayerActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
- setTheme(PodcastApp.getThemeResourceId());
+ setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
}
@@ -55,13 +57,34 @@ public class VideoplayerActivity extends MediaplayerActivity implements
}
@Override
+ protected void onResume() {
+ super.onResume();
+ if (getIntent().getAction() != null
+ && getIntent().getAction().equals(Intent.ACTION_VIEW)) {
+ Intent intent = getIntent();
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Received VIEW intent: "
+ + intent.getData().getPath());
+ ExternalMedia media = new ExternalMedia(intent.getData().getPath(),
+ MediaType.VIDEO);
+ Intent launchIntent = new Intent(this, PlaybackService.class);
+ launchIntent.putExtra(PlaybackService.EXTRA_PLAYABLE, media);
+ launchIntent.putExtra(PlaybackService.EXTRA_START_WHEN_PREPARED,
+ true);
+ launchIntent.putExtra(PlaybackService.EXTRA_SHOULD_STREAM, false);
+ launchIntent.putExtra(PlaybackService.EXTRA_PREPARE_IMMEDIATELY,
+ true);
+ startService(launchIntent);
+ }
+ }
+
+ @Override
protected void loadMediaInfo() {
super.loadMediaInfo();
- FeedMedia media = controller.getMedia();
+ Playable media = controller.getMedia();
if (media != null) {
- getSupportActionBar().setSubtitle(media.getItem().getTitle());
- getSupportActionBar()
- .setTitle(media.getItem().getFeed().getTitle());
+ getSupportActionBar().setSubtitle(media.getEpisodeTitle());
+ getSupportActionBar().setTitle(media.getFeedTitle());
}
}