package com.manuelmaly.hn.task; import android.app.Activity; import android.content.Context; import com.manuelmaly.hn.model.HNFeed; public class HNFeedTaskLoadMore extends HNFeedTaskBase { private HNFeed mFeedToAttachResultsTo; private static HNFeedTaskLoadMore instance; public static final String BROADCAST_INTENT_ID = "HNFeedLoadMore"; private static HNFeedTaskLoadMore getInstance(int taskCode) { synchronized (HNFeedTaskLoadMore.class) { if (instance == null) instance = new HNFeedTaskLoadMore(taskCode); } return instance; } private HNFeedTaskLoadMore(int taskCode) { super(BROADCAST_INTENT_ID, taskCode); } @Override protected String getFeedURL() { return mFeedToAttachResultsTo.getNextPageURL(); } public static void start(Activity activity, ITaskFinishedHandler<HNFeed> finishedHandler, HNFeed feedToAttachResultsTo, int taskCode) { HNFeedTaskLoadMore task = getInstance(taskCode); task.setOnFinishedHandler(activity, finishedHandler, HNFeed.class); task.setFeedToAttachResultsTo(feedToAttachResultsTo); if (task.isRunning()) task.cancel(); task.startInBackground(); } public static void stopCurrent(Context applicationContext, int taskCode) { getInstance(taskCode).cancel(); } public static boolean isRunning(Context applicationContext, int taskCode) { return getInstance(taskCode).isRunning(); } public void setFeedToAttachResultsTo(HNFeed feedToAttachResultsTo) { mFeedToAttachResultsTo = feedToAttachResultsTo; } }