How can I display/run the DirectMessagesList Twitter4J code on my App with a button on Android Studio?

60 views Asked by At

I am trying to build an app on Android Studio that allows me to get my DMs but when I run the code it doesn't show anything.

I am using the following code:

public class HandlerActivity extends AppCompatActivity {

private static final String TAG = "DirectMessagesClass";


private static final TwitterFactory factory = new TwitterFactory(

        new ConfigurationBuilder()
                .setDebugEnabled(true)
                .setOAuthConsumerKey("api-key")
                .setOAuthConsumerSecret("api-secret")
                .setOAuthAccessToken("acces-token")
                .setOAuthAccessTokenSecret("access-token-secret")
                .setTweetModeExtended(true)
                .build());

public DirectMessageList getLastXDirectMessages(int count, String nextCursor) {
    if (count < 1 || count > 50) {
        Log.e(TAG, "Invalid input - count must be between 1 and 50.");
        return null;
    }
    Twitter twitter = factory.getInstance();
    DirectMessageList messages;
    try {
        if (nextCursor == null) {
            messages = twitter.getDirectMessages(count);
        } else {
            messages = twitter.getDirectMessages(count, nextCursor);
        }
    } catch (TwitterException e) {
        Log.e(TAG, "Failed to retrieve direct messages from Twitter API", e);
        // You can implement specific error handling for some Twitter error codes here, since e.g. server overload you could
        // wait and try again instead of returning null
        return null;
    }
    return messages;
}

public DirectMessageList getAllAvailableDirectMessages() {
    int maxCount = 50;
    DirectMessageList messages = getLastXDirectMessages(maxCount, null);
    if (messages == null) {
        return messages;
    }
    String nextCursor = messages.getNextCursor();
    while (nextCursor != null && !nextCursor.equals("")) {
        try {
            Thread.sleep(60 * 1000);
        } catch (Exception e) {
            Log.e(TAG, "Interrupted", e);
            return null;
        }
        DirectMessageList nextList = getLastXDirectMessages(maxCount, nextCursor);
        if (nextList == null) {
            return messages;
        }
        nextCursor = nextList.getNextCursor();
        messages.addAll(nextList);
    }
    return messages;
}

}

What am I doing wrong? Do I have to add another function for it to show me my DMs?

Thanks in advance.

0

There are 0 answers