package net.lacolaco.smileessence.twitter.task; import net.lacolaco.smileessence.data.Account; import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.IDs; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.auth.AccessToken; import twitter4j.auth.RequestToken; import java.util.ArrayList; import java.util.List; public class Accounts { public static class AccessTokenTask extends BackgroundTask { private final Twitter twitter; private final RequestToken requestToken; private final String pinCode; public AccessTokenTask(Twitter twitter, RequestToken requestToken, String pinCode) { this.twitter = twitter; this.requestToken = requestToken; this.pinCode = pinCode; } @Override protected AccessToken doInBackground() throws TwitterException { return twitter.getOAuthAccessToken(requestToken, pinCode); } } public static class RequestTokenTask extends BackgroundTask { private final Twitter twitter; public RequestTokenTask(Twitter twitter) { this.twitter = twitter; } @Override protected RequestToken doInBackground() throws TwitterException { return twitter.getOAuthRequestToken("oob"); } } public static class BlockIDsTask extends BackgroundTask, Void> { private final Account account; public BlockIDsTask(Account account) { this.account = account; } @Override protected List doInBackground() throws TwitterException { List idList = new ArrayList<>(); long cursor = -1; while (cursor != 0) { IDs blocksIDs = account.getTwitter().getBlocksIDs(cursor); cursor = blocksIDs.getNextCursor(); for (long id : blocksIDs.getIDs()) { idList.add(id); } } return idList; } } public static class MutesIDsTask extends BackgroundTask, Void> { private final Account account; public MutesIDsTask(Account account) { this.account = account; } @Override protected List doInBackground() throws TwitterException { List idList = new ArrayList<>(); long cursor = -1; while (cursor != 0) { IDs mutesIDs = account.getTwitter().getMutesIDs(cursor); cursor = mutesIDs.getNextCursor(); for (long id : mutesIDs.getIDs()) { idList.add(id); } } return idList; } } }