Created
April 29, 2019 13:01
-
-
Save Marchuck/c1c55038823cd122e5083f7fcb82fac4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Parser parser = new Parser(); | |
parser.execute(UrlConstant.SECOND_FEED_URL); | |
parser.onFinish(new OnTaskCompleted() { | |
@Override | |
public void onTaskCompleted(@NotNull final List<Article> list) { | |
final List<Article> filtered = new ArrayList<>(); | |
for (int i = 0; i < list.size(); i++) { | |
Article article = list.get(i); | |
if (!TextUtils.isEmpty(article.getImage())) { | |
filtered.add(list.get(i)); | |
} | |
} | |
getActivity().runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
secondFeedAdatper.setArticles(filtered); | |
} | |
}); | |
} | |
@Override | |
public void onError(@NotNull Exception e) { | |
} | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Handler handler = new Handler(Looper.getMainLooper()); | |
FeedProvider feedProvider = new FeedProvider(new Parser(), handler); | |
void setupFeed(){ | |
feedProvider.provideFeed(new FeedProvider.OnCompleteListener() { | |
@Override | |
public void onComplete(List<Article> articles) { | |
secondFeedAdatper.setArticles(articles); | |
} | |
},new FeedProvider.OnCompleteListener() { | |
@Override | |
public void onError(String message) { | |
//todo: show error message to the user | |
} | |
}); | |
} | |
@Override | |
public void onDestroyView() { | |
super.onDestroyView(); | |
handler.removeCallbacksAndMessages(null); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class FeedProvider { | |
public interface OnCompleteListener { | |
void onComplete(List<Article> articles); | |
} | |
public interface OnErrorListener { | |
void onError(String errorMessage); | |
} | |
private Parser parser; | |
private Handler handler; | |
public FeedProvider(Parser parser, Handler handler) { | |
this.parser = parser; | |
this.handler = handler; | |
} | |
void provideFeed(final OnCompleteListener completeListener,final OnErrorListener errorListener) { | |
parser.execute(UrlConstant.SECOND_FEED_URL); | |
parser.onFinish(new OnTaskCompleted() { | |
@Override | |
public void onTaskCompleted(@NotNull final List<Article> list) { | |
final List<Article> filtered = new ArrayList<>(); | |
for (int i = 0; i < list.size(); i++) { | |
Article article = list.get(i); | |
if (!TextUtils.isEmpty(article.getImage())) { | |
filtered.add(list.get(i)); | |
} | |
} | |
handler.post(new Runnable() { | |
@Override | |
public void run() { | |
if (completeListener != null) { | |
completeListener.onComplete(filtered); | |
} | |
} | |
}); | |
} | |
@Override | |
public void onError(@NotNull Exception e) { | |
handler.post(new Runnable() { | |
@Override | |
public void run() { | |
if(errorListener!=null){ | |
errorListener.onError(e.getMessage()); | |
} | |
} | |
}); | |
} | |
void cancel() { | |
handler.removeCallbacksAndMessages(null); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment