Account timelines

This commit is contained in:
Grishka
2022-01-18 22:49:14 +03:00
parent ba75aa6d91
commit dc836b58f8
11 changed files with 107 additions and 10 deletions

View File

@@ -21,14 +21,12 @@ import me.grishka.appkit.Nav;
import me.grishka.appkit.api.SimpleCallback;
public class HomeTimelineFragment extends StatusListFragment{
private String accountID;
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
setTitle(R.string.app_name);
setHasOptionsMenu(true);
accountID=getArguments().getString("account");
loadData();
}

View File

@@ -0,0 +1,44 @@
package org.joinmastodon.android.fragments;
import android.app.Activity;
import android.os.Bundle;
import org.joinmastodon.android.api.requests.accounts.GetAccountStatuses;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Status;
import org.parceler.Parcels;
import java.util.List;
import me.grishka.appkit.api.SimpleCallback;
public class ProfileFragment extends StatusListFragment{
private Account user;
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
user=Parcels.unwrap(getArguments().getParcelable("profileAccount"));
setTitle("@"+user.acct);
loadData();
}
@Override
protected void doLoadData(int offset, int count){
String maxID;
if(offset>0 && !preloadedData.isEmpty())
maxID=preloadedData.get(preloadedData.size()-1).id;
else if(offset>0 && !data.isEmpty())
maxID=data.get(data.size()-1).id;
else
maxID=null;
currentRequest=new GetAccountStatuses(user.id, maxID, null, count)
.setCallback(new SimpleCallback<>(this){
@Override
public void onSuccess(List<Status> result){
onDataLoaded(result, !result.isEmpty());
}
})
.exec(accountID);
}
}

View File

@@ -1,5 +1,6 @@
package org.joinmastodon.android.fragments;
import android.app.Activity;
import android.view.ViewGroup;
import org.joinmastodon.android.model.Status;
@@ -19,7 +20,8 @@ import me.grishka.appkit.views.UsableRecyclerView;
public abstract class StatusListFragment extends BaseRecyclerFragment<Status>{
protected ArrayList<StatusDisplayItem> displayItems=new ArrayList<>();
private DisplayItemsAdapter adapter;
protected DisplayItemsAdapter adapter;
protected String accountID;
public StatusListFragment(){
super(20);
@@ -30,11 +32,17 @@ public abstract class StatusListFragment extends BaseRecyclerFragment<Status>{
return adapter=new DisplayItemsAdapter();
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
accountID=getArguments().getString("account");
}
@Override
public void onAppendItems(List<Status> items){
super.onAppendItems(items);
for(Status s:items){
displayItems.addAll(StatusDisplayItem.buildItems(this, s));
displayItems.addAll(StatusDisplayItem.buildItems(this, s, accountID));
}
}
@@ -48,7 +56,7 @@ public abstract class StatusListFragment extends BaseRecyclerFragment<Status>{
data.addAll(0, items);
int offset=0;
for(Status s:items){
List<StatusDisplayItem> toAdd=StatusDisplayItem.buildItems(this, s);
List<StatusDisplayItem> toAdd=StatusDisplayItem.buildItems(this, s, accountID);
displayItems.addAll(offset, toAdd);
offset+=toAdd.size();
}