Fix issue #672 - Support pagination for search / trending
This commit is contained in:
parent
e91a2f7984
commit
70e8756974
|
@ -62,7 +62,9 @@ public interface MastodonTimelinesService {
|
||||||
|
|
||||||
|
|
||||||
@GET("trends/tags")
|
@GET("trends/tags")
|
||||||
Call<List<Tag>> getTagTrends(@Header("Authorization") String token);
|
Call<List<Tag>> getTagTrends(@Header("Authorization") String token,
|
||||||
|
@Query("offset") Integer offset,
|
||||||
|
@Query("limit") Integer limit);
|
||||||
|
|
||||||
//Public Tags timelines
|
//Public Tags timelines
|
||||||
@GET("timelines/tag/{hashtag}")
|
@GET("timelines/tag/{hashtag}")
|
||||||
|
|
|
@ -86,6 +86,10 @@ public class FragmentMastodonAccount extends Fragment {
|
||||||
accountsVM = new ViewModelProvider(FragmentMastodonAccount.this).get(viewModelKey, AccountsVM.class);
|
accountsVM = new ViewModelProvider(FragmentMastodonAccount.this).get(viewModelKey, AccountsVM.class);
|
||||||
max_id = null;
|
max_id = null;
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
if (search != null) {
|
||||||
|
binding.swipeContainer.setRefreshing(false);
|
||||||
|
binding.swipeContainer.setEnabled(false);
|
||||||
|
}
|
||||||
router(true);
|
router(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -266,7 +266,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
}
|
}
|
||||||
|
|
||||||
public void scrollToTop() {
|
public void scrollToTop() {
|
||||||
if (binding != null) {
|
if (binding != null && search == null) {
|
||||||
binding.swipeContainer.setRefreshing(true);
|
binding.swipeContainer.setRefreshing(true);
|
||||||
flagLoading = false;
|
flagLoading = false;
|
||||||
route(DIRECTION.SCROLL_TOP, true);
|
route(DIRECTION.SCROLL_TOP, true);
|
||||||
|
@ -290,6 +290,10 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
if (max_id == null && !isViewInitialized && rememberPosition) {
|
if (max_id == null && !isViewInitialized && rememberPosition) {
|
||||||
max_id = sharedpreferences.getString(getString(R.string.SET_INNER_MARKER) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance + slug, null);
|
max_id = sharedpreferences.getString(getString(R.string.SET_INNER_MARKER) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance + slug, null);
|
||||||
}
|
}
|
||||||
|
if (search != null) {
|
||||||
|
binding.swipeContainer.setRefreshing(false);
|
||||||
|
binding.swipeContainer.setEnabled(false);
|
||||||
|
}
|
||||||
//Only fragment in main view pager should not have the view initialized
|
//Only fragment in main view pager should not have the view initialized
|
||||||
//AND Only the first fragment will initialize its view
|
//AND Only the first fragment will initialize its view
|
||||||
flagLoading = false;
|
flagLoading = false;
|
||||||
|
@ -507,6 +511,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.loader.setVisibility(View.GONE);
|
binding.loader.setVisibility(View.GONE);
|
||||||
binding.noAction.setVisibility(View.GONE);
|
binding.noAction.setVisibility(View.GONE);
|
||||||
binding.swipeContainer.setRefreshing(false);
|
binding.swipeContainer.setRefreshing(false);
|
||||||
|
|
|
@ -123,7 +123,6 @@ public class SearchVM extends AndroidViewModel {
|
||||||
if (results.hashtags == null) {
|
if (results.hashtags == null) {
|
||||||
results.hashtags = new ArrayList<>();
|
results.hashtags = new ArrayList<>();
|
||||||
}
|
}
|
||||||
results.pagination.offset = finalLimit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
Loading…
Reference in New Issue