1
0
mirror of https://github.com/TwidereProject/Twidere-Android synced 2025-02-02 17:56:56 +01:00

fixed cursor list

This commit is contained in:
Mariotaku Lee 2016-01-03 14:44:29 +08:00
parent 94788c7c3c
commit edb3ec506b
10 changed files with 44 additions and 48 deletions

View File

@ -70,15 +70,17 @@ public final class PageableResponseList$$JsonObjectMapper<T> extends JsonMapper<
}
case "previous_cursor": {
instance.previousCursor = jsonParser.getValueAsLong();
break;
}
case "next_cursor": {
instance.nextCursor = jsonParser.getValueAsLong();
break;
}
}
}
@Override
public void serialize(PageableResponseList<T> object, JsonGenerator jsonGenerator, boolean writeStartAndEnd) throws IOException {
throw new UnsupportedOperationException();
}
}

View File

@ -29,8 +29,8 @@ import java.util.ArrayList;
*/
public class PageableResponseList<T> extends ArrayList<T> implements TwitterResponse, CursorSupport {
private int accessLevel;
private RateLimitStatus rateLimitStatus;
int accessLevel;
RateLimitStatus rateLimitStatus;
long previousCursor;
long nextCursor;
@ -53,12 +53,12 @@ public class PageableResponseList<T> extends ArrayList<T> implements TwitterResp
@Override
public long getNextCursor() {
return 0;
return nextCursor;
}
@Override
public long getPreviousCursor() {
return 0;
return previousCursor;
}
@Override

View File

@ -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<User> getCursoredUsers(Twitter twitter, Paging paging)
@NonNull
protected abstract PageableResponseList<User> getCursoredUsers(@NonNull Twitter twitter, Paging paging)
throws TwitterException;
@Override
protected final List<User> 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<User> users = getCursoredUsers(twitter, paging);
if (users == null) return null;
setCursorIds(users);
return users;
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
protected final PageableResponseList<User> getCursoredUsers(@NonNull final Twitter twitter, final Paging paging)
throws TwitterException {
if (twitter == null) return null;
return twitter.getMutesUsersList(paging);
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
protected final PageableResponseList<User> getCursoredUsers(@NonNull final Twitter twitter, final Paging paging)
throws TwitterException {
if (twitter == null) return null;
return twitter.getBlocksList(paging);
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
protected PageableResponseList<User> 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");
}
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
protected PageableResponseList<User> 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");
}
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
public PageableResponseList<User> 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");
}
}

View File

@ -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<User> getCursoredUsers(final Twitter twitter, final Paging paging)
public PageableResponseList<User> 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");
}
}

View File

@ -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);