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

bug fixes

This commit is contained in:
Mariotaku Lee 2016-02-27 14:52:16 +08:00
parent 43af801b6c
commit ca20ca865e
8 changed files with 30 additions and 67 deletions

View File

@ -0,0 +1,7 @@
package org.mariotaku.twidere.api.statusnet.api;
/**
* Created by mariotaku on 16/2/27.
*/
public interface StatusNetResources {
}

View File

@ -19,6 +19,7 @@
package org.mariotaku.twidere.api.twitter; package org.mariotaku.twidere.api.twitter;
import org.mariotaku.twidere.api.statusnet.api.StatusNetResources;
import org.mariotaku.twidere.api.twitter.api.DirectMessagesResources; import org.mariotaku.twidere.api.twitter.api.DirectMessagesResources;
import org.mariotaku.twidere.api.twitter.api.FavoritesResources; import org.mariotaku.twidere.api.twitter.api.FavoritesResources;
import org.mariotaku.twidere.api.twitter.api.FriendsFollowersResources; import org.mariotaku.twidere.api.twitter.api.FriendsFollowersResources;
@ -39,13 +40,10 @@ import org.mariotaku.twidere.api.twitter.api.TrendsResources;
import org.mariotaku.twidere.api.twitter.api.TweetResources; import org.mariotaku.twidere.api.twitter.api.TweetResources;
import org.mariotaku.twidere.api.twitter.api.UsersResources; import org.mariotaku.twidere.api.twitter.api.UsersResources;
/**
* @author Yusuke Yamamoto - yusuke at mac.com
* @since Twitter4J 2.2.0
*/
public interface Twitter extends SearchResource, TimelineResources, public interface Twitter extends SearchResource, TimelineResources,
TweetResources, UsersResources, ListsResources, DirectMessagesResources, FriendsFollowersResources, TweetResources, UsersResources, ListsResources, DirectMessagesResources, FriendsFollowersResources,
FavoritesResources, SpamReportingResources, SavedSearchesResources, TrendsResources, PlacesGeoResources, FavoritesResources, SpamReportingResources, SavedSearchesResources, TrendsResources, PlacesGeoResources,
HelpResources, PrivateActivityResources, PrivateTweetResources, PrivateTimelinesResources, HelpResources, StatusNetResources, PrivateActivityResources, PrivateTweetResources,
PrivateFriendsFollowersResources, PrivateDirectMessagesResources, PrivateScheduleResources { PrivateTimelinesResources, PrivateFriendsFollowersResources, PrivateDirectMessagesResources,
PrivateScheduleResources {
} }

View File

@ -47,9 +47,6 @@ public interface PrivateActivityResources extends PrivateResources {
@GET("/activity/about_me.json") @GET("/activity/about_me.json")
ResponseList<Activity> getActivitiesAboutMe(@Query Paging paging) throws TwitterException; ResponseList<Activity> getActivitiesAboutMe(@Query Paging paging) throws TwitterException;
@GET("/activity/by_friends.json")
ResponseList<Activity> getActivitiesByFriends(@Query Paging paging) throws TwitterException;
@Queries({}) @Queries({})
@GET("/activity/about_me/unread.json") @GET("/activity/about_me/unread.json")
CursorTimestampResponse getActivitiesAboutMeUnread(@Query("cursor") boolean cursor) throws TwitterException; CursorTimestampResponse getActivitiesAboutMeUnread(@Query("cursor") boolean cursor) throws TwitterException;

View File

@ -568,7 +568,13 @@ public abstract class AbsActivitiesFragment<Data> extends AbsContentListRecycler
} }
private boolean shouldUseDividerFor(int itemViewType) { private boolean shouldUseDividerFor(int itemViewType) {
return itemViewType == AbsActivitiesAdapter.ITEM_VIEW_TYPE_TITLE_SUMMARY; switch (itemViewType) {
case AbsActivitiesAdapter.ITEM_VIEW_TYPE_TITLE_SUMMARY:
case AbsActivitiesAdapter.ITEM_VIEW_TYPE_GAP:
return true;
default:
return false;
}
} }
}); });
} }

View File

@ -205,7 +205,7 @@ public abstract class CursorStatusesFragment extends AbsStatusesFragment<List<Pa
} }
protected void reloadStatuses() { protected void reloadStatuses() {
if (getActivity() == null || isDetached()) return; if (getContext() == null || isDetached()) return;
final Bundle args = new Bundle(), fragmentArgs = getArguments(); final Bundle args = new Bundle(), fragmentArgs = getArguments();
if (fragmentArgs != null) { if (fragmentArgs != null) {
args.putAll(fragmentArgs); args.putAll(fragmentArgs);
@ -246,6 +246,7 @@ public abstract class CursorStatusesFragment extends AbsStatusesFragment<List<Pa
TaskStarter.execute(new AbstractTask<Object, long[][], CursorStatusesFragment>() { TaskStarter.execute(new AbstractTask<Object, long[][], CursorStatusesFragment>() {
@Override @Override
public long[][] doLongOperation(Object o) { public long[][] doLongOperation(Object o) {
if (getContext() == null) return null;
final long[][] result = new long[3][]; final long[][] result = new long[3][];
result[0] = getAccountIds(); result[0] = getAccountIds();
result[1] = getOldestStatusIds(result[0]); result[1] = getOldestStatusIds(result[0]);
@ -254,6 +255,7 @@ public abstract class CursorStatusesFragment extends AbsStatusesFragment<List<Pa
@Override @Override
public void afterExecute(CursorStatusesFragment fragment, long[][] result) { public void afterExecute(CursorStatusesFragment fragment, long[][] result) {
if (result == null) return;
fragment.getStatuses(result[0], result[1], result[2]); fragment.getStatuses(result[0], result[1], result[2]);
} }
}.setResultHandler(this)); }.setResultHandler(this));
@ -285,7 +287,9 @@ public abstract class CursorStatusesFragment extends AbsStatusesFragment<List<Pa
} }
protected long[] getNewestStatusIds(long[] accountIds) { protected long[] getNewestStatusIds(long[] accountIds) {
return DataStoreUtils.getNewestStatusIds(getActivity(), getContentUri(), accountIds); final Context context = getContext();
if (context == null) return null;
return DataStoreUtils.getNewestStatusIds(context, getContentUri(), accountIds);
} }
protected abstract int getNotificationType(); protected abstract int getNotificationType();
@ -301,7 +305,9 @@ public abstract class CursorStatusesFragment extends AbsStatusesFragment<List<Pa
} }
protected long[] getOldestStatusIds(long[] accountIds) { protected long[] getOldestStatusIds(long[] accountIds) {
return DataStoreUtils.getOldestStatusIds(getActivity(), getContentUri(), accountIds); final Context context = getContext();
if (context == null) return null;
return DataStoreUtils.getOldestStatusIds(context, getContentUri(), accountIds);
} }
protected abstract boolean isFilterEnabled(); protected abstract boolean isFilterEnabled();

View File

@ -1,45 +0,0 @@
package org.mariotaku.twidere.task;
import android.content.Context;
import android.net.Uri;
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.Activity;
import org.mariotaku.twidere.api.twitter.model.Paging;
import org.mariotaku.twidere.api.twitter.model.ResponseList;
import org.mariotaku.twidere.provider.TwidereDataStore.Activities;
import org.mariotaku.twidere.task.twitter.GetActivitiesTask;
import org.mariotaku.twidere.util.ErrorInfoStore;
/**
* Created by mariotaku on 16/2/11.
*/
public class GetActivitiesByFriendsTask extends GetActivitiesTask {
public GetActivitiesByFriendsTask(Context context) {
super(context);
}
@NonNull
@Override
protected String getErrorInfoKey() {
return ErrorInfoStore.KEY_ACTIVITIES_BY_FRIENDS;
}
@Override
protected void saveReadPosition(long accountId, Twitter twitter) {
}
@Override
protected ResponseList<Activity> getActivities(@NonNull Twitter twitter, long accountId, Paging paging) throws TwitterException {
return twitter.getActivitiesByFriends(paging);
}
@Override
protected Uri getContentUri() {
return Activities.ByFriends.CONTENT_URI;
}
}

View File

@ -85,7 +85,6 @@ import org.mariotaku.twidere.provider.TwidereDataStore.Statuses;
import org.mariotaku.twidere.service.BackgroundOperationService; import org.mariotaku.twidere.service.BackgroundOperationService;
import org.mariotaku.twidere.task.AbstractTask; import org.mariotaku.twidere.task.AbstractTask;
import org.mariotaku.twidere.task.GetActivitiesAboutMeTask; import org.mariotaku.twidere.task.GetActivitiesAboutMeTask;
import org.mariotaku.twidere.task.GetActivitiesByFriendsTask;
import org.mariotaku.twidere.task.GetDirectMessagesTask; import org.mariotaku.twidere.task.GetDirectMessagesTask;
import org.mariotaku.twidere.task.GetHomeTimelineTask; import org.mariotaku.twidere.task.GetHomeTimelineTask;
import org.mariotaku.twidere.task.GetLocalTrendsTask; import org.mariotaku.twidere.task.GetLocalTrendsTask;
@ -521,12 +520,6 @@ public class AsyncTwitterWrapper extends TwitterWrapper {
TaskStarter.execute(task); TaskStarter.execute(task);
} }
public void getActivitiesByFriendsAsync(long[] accountIds, long[] maxIds, long[] sinceIds) {
final GetActivitiesTask task = new GetActivitiesByFriendsTask(getContext());
task.setParams(new BaseRefreshTaskParam(accountIds, maxIds, sinceIds));
TaskStarter.execute(task);
}
public void setActivitiesAboutMeUnreadAsync(final long[] accountIds, final long cursor) { public void setActivitiesAboutMeUnreadAsync(final long[] accountIds, final long cursor) {
AbstractTask<Object, Object, AsyncTwitterWrapper> task = new AbstractTask<Object, Object, AsyncTwitterWrapper>() { AbstractTask<Object, Object, AsyncTwitterWrapper> task = new AbstractTask<Object, Object, AsyncTwitterWrapper>() {

View File

@ -55,7 +55,8 @@ public class HttpClientFactory implements Constants {
final ConnectionPool connectionPool) { final ConnectionPool connectionPool) {
final boolean enableProxy = prefs.getBoolean(KEY_ENABLE_PROXY, false); final boolean enableProxy = prefs.getBoolean(KEY_ENABLE_PROXY, false);
builder.connectTimeout(prefs.getInt(KEY_CONNECTION_TIMEOUT, 10), TimeUnit.SECONDS); builder.connectTimeout(prefs.getInt(KEY_CONNECTION_TIMEOUT, 10), TimeUnit.SECONDS);
builder.retryOnConnectionFailure(prefs.getBoolean(KEY_RETRY_ON_NETWORK_ISSUE)); final boolean retryOnConnectionFailure = prefs.getBoolean(KEY_RETRY_ON_NETWORK_ISSUE);
builder.retryOnConnectionFailure(retryOnConnectionFailure);
builder.connectionPool(connectionPool); builder.connectionPool(connectionPool);
if (enableProxy) { if (enableProxy) {
final String proxyType = prefs.getString(KEY_PROXY_TYPE, null); final String proxyType = prefs.getString(KEY_PROXY_TYPE, null);
@ -65,7 +66,7 @@ public class HttpClientFactory implements Constants {
TwidereMathUtils.RANGE_INCLUSIVE_INCLUSIVE)) { TwidereMathUtils.RANGE_INCLUSIVE_INCLUSIVE)) {
final Proxy.Type type = getProxyType(proxyType); final Proxy.Type type = getProxyType(proxyType);
if (type != Proxy.Type.DIRECT) { if (type != Proxy.Type.DIRECT) {
if (TwidereDns.isValidIpAddress(proxyHost)) { if (TwidereDns.isValidIpAddress(proxyHost) && !retryOnConnectionFailure) {
builder.proxy(new Proxy(type, InetSocketAddress.createUnresolved(proxyHost, proxyPort))); builder.proxy(new Proxy(type, InetSocketAddress.createUnresolved(proxyHost, proxyPort)));
} else { } else {
builder.proxySelector(new TwidereProxySelector(context, type, proxyHost, proxyPort)); builder.proxySelector(new TwidereProxySelector(context, type, proxyHost, proxyPort));