From 5aa6496d1eef82cb499ba5cb93016206fbb69251 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Sun, 10 Mar 2019 22:17:51 +0100 Subject: [PATCH] put parseUrl logic in the viewModel --- .../app/activities/AddFeedActivity.java | 15 ++----------- .../app/viewmodels/AddFeedsViewModel.java | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/readrops/app/activities/AddFeedActivity.java b/app/src/main/java/com/readrops/app/activities/AddFeedActivity.java index cb555ed7..22e5eaa9 100644 --- a/app/src/main/java/com/readrops/app/activities/AddFeedActivity.java +++ b/app/src/main/java/com/readrops/app/activities/AddFeedActivity.java @@ -147,19 +147,8 @@ public class AddFeedActivity extends AppCompatActivity implements View.OnClickLi else finalUrl = url; - Single.create((SingleOnSubscribe>) emitter -> { - RSSNetwork rssApi = new RSSNetwork(); - List results = new ArrayList<>(); - - if (rssApi.isUrlFeedLink(finalUrl)) { - ParsingResult parsingResult = new ParsingResult(finalUrl, null); - results.add(parsingResult); - - } else - results.addAll(HtmlParser.getFeedLink(finalUrl)); - - emitter.onSuccess(results); - }).subscribeOn(Schedulers.io()) + viewModel.parseUrl(finalUrl) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleObserver>() { @Override diff --git a/app/src/main/java/com/readrops/app/viewmodels/AddFeedsViewModel.java b/app/src/main/java/com/readrops/app/viewmodels/AddFeedsViewModel.java index 260e2d59..8efd8414 100644 --- a/app/src/main/java/com/readrops/app/viewmodels/AddFeedsViewModel.java +++ b/app/src/main/java/com/readrops/app/viewmodels/AddFeedsViewModel.java @@ -5,11 +5,16 @@ import android.arch.lifecycle.AndroidViewModel; import android.support.annotation.NonNull; import com.readrops.app.repositories.LocalFeedRepository; +import com.readrops.app.utils.HtmlParser; import com.readrops.app.utils.ParsingResult; +import com.readrops.readropslibrary.localfeed.RSSNetwork; +import java.util.ArrayList; import java.util.List; import io.reactivex.Completable; +import io.reactivex.Single; +import io.reactivex.SingleOnSubscribe; public class AddFeedsViewModel extends AndroidViewModel { @@ -24,4 +29,20 @@ public class AddFeedsViewModel extends AndroidViewModel { public Completable addFeeds(List results) { return repository.addFeeds(results); } + + public Single> parseUrl(String url) { + return Single.create(emitter -> { + RSSNetwork rssApi = new RSSNetwork(); + List results = new ArrayList<>(); + + if (rssApi.isUrlFeedLink(url)) { + ParsingResult parsingResult = new ParsingResult(url, null); + results.add(parsingResult); + + } else + results.addAll(HtmlParser.getFeedLink(url)); + + emitter.onSuccess(results); + }); + } }