diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-09-15 16:41:06 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-09-15 16:41:06 -0400 |
commit | 66d36ec00f4932d17ba10eb0b81ed47c8ea94d49 (patch) | |
tree | e39b2fd23574180316bd6b6923cdf4845d8c029e /app/src/main/java/de/danoeh/antennapod/activity | |
parent | 496f859197db100086129c4686f66010346cbca3 (diff) | |
parent | 75dfc89a445c84e22639d101c229b0cfef6346f0 (diff) | |
download | AntennaPod-66d36ec00f4932d17ba10eb0b81ed47c8ea94d49.zip |
Merge pull request #1191 from mfietz/refactor_database_utils
Refactor database access
testReplayEpisodeContinuousPlaybackOff and testReplayEpisodeContinuousPlaybackOn are broken, but I'll fix those in an upcoming PR.
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/activity')
4 files changed, 52 insertions, 60 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 c3d82c41d..417d49e83 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -6,7 +6,6 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.drawable.BitmapDrawable; -import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; @@ -60,6 +59,10 @@ import de.danoeh.antennapod.fragment.CoverFragment; import de.danoeh.antennapod.fragment.ItemDescriptionFragment; import de.danoeh.antennapod.menuhandler.NavDrawerActivity; import de.danoeh.antennapod.preferences.PreferenceController; +import rx.Observable; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; /** * Activity for playing audio files. @@ -104,6 +107,8 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc private ImageButton butNavChaptersShownotes; private ImageButton butShowCover; + private Subscription subscription; + private PopupWindow popupWindow; private void resetFragmentView() { @@ -145,7 +150,9 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc protected void onStop() { super.onStop(); Log.d(TAG, "onStop()"); - cancelLoadTask(); + if(subscription != null) { + subscription.unsubscribe(); + } EventDistributor.getInstance().unregister(contentUpdate); } @@ -716,10 +723,10 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset()); switch(item.getItemId()) { case R.id.mark_all_seen_item: - DBWriter.markFeedSeen(this, feed.getId()); + DBWriter.markFeedSeen(feed.getId()); return true; case R.id.mark_all_read_item: - DBWriter.markFeedRead(this, feed.getId()); + DBWriter.markFeedRead(feed.getId()); return true; case R.id.remove_item: final FeedRemover remover = new FeedRemover(this, feed) { @@ -747,32 +754,22 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc private DBReader.NavDrawerData navDrawerData; - private AsyncTask<Void, Void, DBReader.NavDrawerData> loadTask; private void loadData() { - loadTask = new AsyncTask<Void, Void, DBReader.NavDrawerData>() { - @Override - protected DBReader.NavDrawerData doInBackground(Void... params) { - return DBReader.getNavDrawerData(AudioplayerActivity.this); - } - - @Override - protected void onPostExecute(DBReader.NavDrawerData result) { - super.onPostExecute(result); - navDrawerData = result; - if (navAdapter != null) { - navAdapter.notifyDataSetChanged(); - } - } - }; - loadTask.execute(); + subscription = Observable.defer(() -> Observable.just(DBReader.getNavDrawerData())) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(result -> { + navDrawerData = result; + if (navAdapter != null) { + navAdapter.notifyDataSetChanged(); + } + }, error -> { + Log.e(TAG, Log.getStackTraceString(error)); + }); } - private void cancelLoadTask() { - if (loadTask != null) { - loadTask.cancel(true); - } - } + private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() { 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 cc4d459c8..80883e4ae 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java @@ -26,7 +26,6 @@ import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; -import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.joanzapata.iconify.Iconify; import de.danoeh.antennapod.R; @@ -111,7 +110,7 @@ public class FeedInfoActivity extends ActionBarActivity { @Override protected Feed doInBackground(Long... params) { - return DBReader.getFeed(FeedInfoActivity.this, params[0]); + return DBReader.getFeed(params[0]); } @Override @@ -239,7 +238,7 @@ public class FeedInfoActivity extends ActionBarActivity { prefs.setPassword(etxtPassword.getText().toString()); } if (authInfoChanged || autoDeleteChanged) { - DBWriter.setFeedPreferences(this, prefs); + DBWriter.setFeedPreferences(prefs); } authInfoChanged = false; autoDeleteChanged = false; @@ -299,7 +298,7 @@ public class FeedInfoActivity extends ActionBarActivity { @Override public void onConfirmButtonPressed(DialogInterface dialog) { - DBWriter.setFeedsItemsAutoDownload(context, feed, autoDownload); + DBWriter.setFeedsItemsAutoDownload(feed, autoDownload); } } diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index 9caa35b5b..76d657585 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -58,6 +58,10 @@ import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.menuhandler.NavDrawerActivity; import de.danoeh.antennapod.preferences.PreferenceController; import de.greenrobot.event.EventBus; +import rx.Observable; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; /** * The activity that is shown when the user launches the app. @@ -106,6 +110,8 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity private ProgressDialog pd; + private Subscription subscription; + @Override public void onCreate(Bundle savedInstanceState) { setTheme(UserPreferences.getNoTitleTheme()); @@ -478,9 +484,11 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity @Override protected void onStop() { super.onStop(); - cancelLoadTask(); EventDistributor.getInstance().unregister(contentUpdate); EventBus.getDefault().unregister(this); + if(subscription != null) { + subscription.unsubscribe(); + } if(pd != null) { pd.dismiss(); } @@ -551,10 +559,10 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset()); switch(item.getItemId()) { case R.id.mark_all_seen_item: - DBWriter.markFeedSeen(this, feed.getId()); + DBWriter.markFeedSeen(feed.getId()); return true; case R.id.mark_all_read_item: - DBWriter.markFeedRead(this, feed.getId()); + DBWriter.markFeedRead(feed.getId()); return true; case R.id.remove_item: final FeedRemover remover = new FeedRemover(this, feed) { @@ -629,33 +637,21 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity }; private void loadData() { - cancelLoadTask(); - loadTask = new AsyncTask<Void, Void, DBReader.NavDrawerData>() { - @Override - protected DBReader.NavDrawerData doInBackground(Void... params) { - return DBReader.getNavDrawerData(MainActivity.this); - } - - @Override - protected void onPostExecute(DBReader.NavDrawerData result) { - super.onPostExecute(navDrawerData); - boolean handleIntent = (navDrawerData == null); + subscription = Observable.defer(() -> Observable.just(DBReader.getNavDrawerData())) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(result -> { + boolean handleIntent = (navDrawerData == null); - navDrawerData = result; - navAdapter.notifyDataSetChanged(); + navDrawerData = result; + navAdapter.notifyDataSetChanged(); - if (handleIntent) { - handleNavIntent(); - } - } - }; - loadTask.execute(); - } - - private void cancelLoadTask() { - if (loadTask != null) { - loadTask.cancel(true); - } + if (handleIntent) { + handleNavIntent(); + } + }, error -> { + Log.e(TAG, Log.getStackTraceString(error)); + }); } public void onEvent(QueueEvent event) { diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java index 13d5e7acf..a629b8758 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java @@ -109,7 +109,7 @@ public class OnlineFeedViewActivity extends ActionBarActivity { @Override public void update(EventDistributor eventDistributor, Integer arg) { if ((arg & EventDistributor.FEED_LIST_UPDATE) != 0) { - updater = Observable.defer(() -> Observable.just(DBReader.getFeedList(OnlineFeedViewActivity.this))) + updater = Observable.defer(() -> Observable.just(DBReader.getFeedList())) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(feeds -> { @@ -263,7 +263,7 @@ public class OnlineFeedViewActivity extends ActionBarActivity { download = Observable.create(new Observable.OnSubscribe<DownloadStatus>() { @Override public void call(Subscriber<? super DownloadStatus> subscriber) { - feeds = DBReader.getFeedList(OnlineFeedViewActivity.this); + feeds = DBReader.getFeedList(); downloader = new HttpDownloader(request); downloader.call(); Log.d(TAG, "Download was completed"); |