From edb3ec506b2c916eec33536995b5f32f395a9832 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Sun, 3 Jan 2016 14:44:29 +0800 Subject: [PATCH] fixed cursor list --- ...PageableResponseList$$JsonObjectMapper.java | 4 +++- .../twitter/model/PageableResponseList.java | 8 ++++---- .../support/CursorSupportUsersLoader.java | 16 +++++++--------- .../loader/support/MutesUsersLoader.java | 5 +++-- .../loader/support/UserBlocksLoader.java | 5 +++-- .../loader/support/UserFollowersLoader.java | 7 ++++--- .../loader/support/UserFriendsLoader.java | 7 ++++--- .../loader/support/UserListMembersLoader.java | 7 ++++--- .../support/UserListSubscribersLoader.java | 18 +++++++++--------- .../twidere/util/TwitterAPIFactory.java | 15 +++------------ 10 files changed, 44 insertions(+), 48 deletions(-) diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList$$JsonObjectMapper.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList$$JsonObjectMapper.java index 7f8f2ca22..382303483 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList$$JsonObjectMapper.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList$$JsonObjectMapper.java @@ -70,15 +70,17 @@ public final class PageableResponseList$$JsonObjectMapper extends JsonMapper< } case "previous_cursor": { instance.previousCursor = jsonParser.getValueAsLong(); + break; } case "next_cursor": { instance.nextCursor = jsonParser.getValueAsLong(); + break; } } } @Override public void serialize(PageableResponseList object, JsonGenerator jsonGenerator, boolean writeStartAndEnd) throws IOException { - + throw new UnsupportedOperationException(); } } diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList.java index af1562021..9aa1229cc 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/PageableResponseList.java @@ -29,8 +29,8 @@ import java.util.ArrayList; */ public class PageableResponseList extends ArrayList implements TwitterResponse, CursorSupport { - private int accessLevel; - private RateLimitStatus rateLimitStatus; + int accessLevel; + RateLimitStatus rateLimitStatus; long previousCursor; long nextCursor; @@ -53,12 +53,12 @@ public class PageableResponseList extends ArrayList implements TwitterResp @Override public long getNextCursor() { - return 0; + return nextCursor; } @Override public long getPreviousCursor() { - return 0; + return previousCursor; } @Override diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/CursorSupportUsersLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/CursorSupportUsersLoader.java index 7b870ed6b..41d4a936e 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/CursorSupportUsersLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/CursorSupportUsersLoader.java @@ -22,16 +22,15 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; import android.support.annotation.NonNull; +import org.mariotaku.twidere.api.twitter.Twitter; +import org.mariotaku.twidere.api.twitter.TwitterException; +import org.mariotaku.twidere.api.twitter.model.PageableResponseList; +import org.mariotaku.twidere.api.twitter.model.Paging; +import org.mariotaku.twidere.api.twitter.model.User; import org.mariotaku.twidere.model.ParcelableUser; import java.util.List; -import org.mariotaku.twidere.api.twitter.model.PageableResponseList; -import org.mariotaku.twidere.api.twitter.model.Paging; -import org.mariotaku.twidere.api.twitter.Twitter; -import org.mariotaku.twidere.api.twitter.TwitterException; -import org.mariotaku.twidere.api.twitter.model.User; - public abstract class CursorSupportUsersLoader extends BaseCursorSupportUsersLoader { public CursorSupportUsersLoader(final Context context, final long accountId, final long cursor, @@ -39,19 +38,18 @@ public abstract class CursorSupportUsersLoader extends BaseCursorSupportUsersLoa super(context, accountId, cursor, data, fromUser); } - protected abstract PageableResponseList getCursoredUsers(Twitter twitter, Paging paging) + @NonNull + protected abstract PageableResponseList getCursoredUsers(@NonNull Twitter twitter, Paging paging) throws TwitterException; @Override protected final List getUsers(@NonNull final Twitter twitter) throws TwitterException { - if (twitter == null) return null; final Paging paging = new Paging(); paging.count(getCount()); if (getCursor() > 0) { paging.setCursor(getCursor()); } final PageableResponseList users = getCursoredUsers(twitter, paging); - if (users == null) return null; setCursorIds(users); return users; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/MutesUsersLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/MutesUsersLoader.java index 129a39758..799236970 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/MutesUsersLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/MutesUsersLoader.java @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; import org.mariotaku.twidere.model.ParcelableUser; @@ -38,10 +39,10 @@ public class MutesUsersLoader extends CursorSupportUsersLoader { super(context, accountId, cursor, data, fromUser); } + @NonNull @Override - protected final PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + protected final PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; return twitter.getMutesUsersList(paging); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserBlocksLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserBlocksLoader.java index f4a1d6a41..75039ee57 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserBlocksLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserBlocksLoader.java @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; import org.mariotaku.twidere.model.ParcelableUser; @@ -38,10 +39,10 @@ public class UserBlocksLoader extends CursorSupportUsersLoader { super(context, accountId, cursor, data, fromUser); } + @NonNull @Override - protected final PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + protected final PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; return twitter.getBlocksList(paging); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFollowersLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFollowersLoader.java index 5879e4a08..4ecd5383b 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFollowersLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFollowersLoader.java @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; import org.mariotaku.twidere.model.ParcelableUser; @@ -44,14 +45,14 @@ public class UserFollowersLoader extends CursorSupportUsersLoader { mScreenName = screenName; } + @NonNull @Override - protected PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + protected PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; if (mUserId > 0) return twitter.getFollowersList(mUserId, paging); else if (mScreenName != null) return twitter.getFollowersList(mScreenName, paging); - return null; + throw new TwitterException("user_id or screen_name required"); } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFriendsLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFriendsLoader.java index 1352313ee..e8214f395 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFriendsLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserFriendsLoader.java @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; import org.mariotaku.twidere.model.ParcelableUser; @@ -44,14 +45,14 @@ public class UserFriendsLoader extends CursorSupportUsersLoader { mScreenName = screenName; } + @NonNull @Override - protected PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + protected PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; if (mUserId > 0) return twitter.getFriendsList(mUserId, paging); else if (mScreenName != null) return twitter.getFriendsList(mScreenName, paging); - return null; + throw new TwitterException("user_id or screen_name required"); } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListMembersLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListMembersLoader.java index bcb58e610..4c8cd41f8 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListMembersLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListMembersLoader.java @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; import org.mariotaku.twidere.model.ParcelableUser; @@ -47,17 +48,17 @@ public class UserListMembersLoader extends CursorSupportUsersLoader { mListName = listName; } + @NonNull @Override - public PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + public PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; if (mListId > 0) return twitter.getUserListMembers(mListId, paging); else if (mUserId > 0) return twitter.getUserListMembers(mListName.replace(' ', '-'), mUserId, paging); else if (mScreenName != null) return twitter.getUserListMembers(mListName.replace(' ', '-'), mScreenName, paging); - return null; + throw new TwitterException("list_id or list_name and user_id (or screen_name) required"); } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListSubscribersLoader.java b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListSubscribersLoader.java index 16f74da52..1f3b9c9fc 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListSubscribersLoader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/loader/support/UserListSubscribersLoader.java @@ -20,17 +20,17 @@ package org.mariotaku.twidere.loader.support; import android.content.Context; +import android.support.annotation.NonNull; +import org.mariotaku.twidere.api.twitter.Twitter; +import org.mariotaku.twidere.api.twitter.TwitterException; +import org.mariotaku.twidere.api.twitter.model.PageableResponseList; +import org.mariotaku.twidere.api.twitter.model.Paging; +import org.mariotaku.twidere.api.twitter.model.User; import org.mariotaku.twidere.model.ParcelableUser; import java.util.List; -import org.mariotaku.twidere.api.twitter.model.PageableResponseList; -import org.mariotaku.twidere.api.twitter.model.Paging; -import org.mariotaku.twidere.api.twitter.Twitter; -import org.mariotaku.twidere.api.twitter.TwitterException; -import org.mariotaku.twidere.api.twitter.model.User; - public class UserListSubscribersLoader extends CursorSupportUsersLoader { private final long mListId; @@ -47,17 +47,17 @@ public class UserListSubscribersLoader extends CursorSupportUsersLoader { mListName = listName; } + @NonNull @Override - public PageableResponseList getCursoredUsers(final Twitter twitter, final Paging paging) + public PageableResponseList getCursoredUsers(@NonNull final Twitter twitter, final Paging paging) throws TwitterException { - if (twitter == null) return null; if (mListId > 0) return twitter.getUserListSubscribers(mListId, paging); else if (mUserId > 0) return twitter.getUserListSubscribers(mListName.replace(' ', '-'), mUserId, paging); else if (mScreenName != null) return twitter.getUserListSubscribers(mListName.replace(' ', '-'), mScreenName, paging); - return null; + throw new TwitterException("list_id or list_name and user_id (or screen_name) required"); } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java b/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java index 33303c0b0..3eaa11210 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java @@ -61,7 +61,6 @@ import org.mariotaku.twidere.model.ParcelableCredentials; import org.mariotaku.twidere.model.RequestType; import org.mariotaku.twidere.provider.TwidereDataStore; import org.mariotaku.twidere.util.dagger.DependencyHolder; -import org.mariotaku.twidere.util.net.InetAddressUtils; import org.mariotaku.twidere.util.net.NetworkUsageUtils; import org.mariotaku.twidere.util.net.TwidereProxySelector; @@ -171,17 +170,9 @@ public class TwitterAPIFactory implements TwidereConstants { final String proxyHost = prefs.getString(KEY_PROXY_HOST, null); final int proxyPort = NumberUtils.toInt(prefs.getString(KEY_PROXY_PORT, null), -1); if (!isEmpty(proxyHost) && TwidereMathUtils.inRangeInclusiveInclusive(proxyPort, 0, 65535)) { - // If proxy host is an IP address, use proxy directly - if (InetAddressUtils.getInetAddressType(proxyHost) != 0) { - client.setProxySelector(null); - client.setProxy(new Proxy(getProxyType(proxyType), - InetSocketAddress.createUnresolved(proxyHost, proxyPort))); - } else { - // ... otherwise use proxy selector to prevent proxy address from dns poisoning - client.setProxy(null); - client.setProxySelector(new TwidereProxySelector(context, getProxyType(proxyType), - proxyHost, proxyPort)); - } + client.setProxy(null); + client.setProxySelector(new TwidereProxySelector(context, getProxyType(proxyType), + proxyHost, proxyPort)); } final String username = prefs.getString(KEY_PROXY_USERNAME, null); final String password = prefs.getString(KEY_PROXY_PASSWORD, null);