diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BookmarkedStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BookmarkedStatusListFragment.java new file mode 100644 index 000000000..3831bb4e4 --- /dev/null +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BookmarkedStatusListFragment.java @@ -0,0 +1,56 @@ +package org.joinmastodon.android.fragments; + +import android.app.Activity; +import android.net.Uri; + +import org.joinmastodon.android.R; +import org.joinmastodon.android.api.requests.statuses.GetBookmarkedStatuses; +import org.joinmastodon.android.events.RemoveAccountPostsEvent; +import org.joinmastodon.android.model.FilterContext; +import org.joinmastodon.android.model.HeaderPaginationList; +import org.joinmastodon.android.model.Status; + +import me.grishka.appkit.api.SimpleCallback; + +public class BookmarkedStatusListFragment extends StatusListFragment{ + private String nextMaxID; + + @Override + public void onAttach(Activity activity){ + super.onAttach(activity); + setTitle(R.string.bookmarks); + loadData(); + } + + @Override + protected void doLoadData(int offset, int count){ + currentRequest=new GetBookmarkedStatuses(offset==0 ? null : nextMaxID, count) + .setCallback(new SimpleCallback<>(this){ + @Override + public void onSuccess(HeaderPaginationList result){ + if(getActivity()==null) return; + if(result.nextPageUri!=null) + nextMaxID=result.nextPageUri.getQueryParameter("max_id"); + else + nextMaxID=null; + onDataLoaded(result, nextMaxID!=null); + } + }) + .exec(accountID); + } + + @Override + protected void onRemoveAccountPostsEvent(RemoveAccountPostsEvent ev){ + // no-op + } + + @Override + protected FilterContext getFilterContext() { + return FilterContext.ACCOUNT; + } + + @Override + public Uri getWebUri(Uri.Builder base) { + return base.path("/bookmarks").build(); + } +}