Account timelines
This commit is contained in:
@@ -1,19 +1,24 @@
|
||||
package org.joinmastodon.android.ui.displayitems;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Bitmap;
|
||||
import android.app.Fragment;
|
||||
import android.graphics.drawable.Animatable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.fragments.ProfileFragment;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
|
||||
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
|
||||
import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
|
||||
@@ -23,12 +28,16 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
private Account user;
|
||||
private Instant createdAt;
|
||||
private ImageLoaderRequest avaRequest;
|
||||
private Fragment parentFragment;
|
||||
private String accountID;
|
||||
|
||||
public HeaderStatusDisplayItem(Status status, Account user, Instant createdAt){
|
||||
public HeaderStatusDisplayItem(Status status, Account user, Instant createdAt, Fragment parentFragment, String accountID){
|
||||
super(status);
|
||||
this.user=user;
|
||||
this.createdAt=createdAt;
|
||||
avaRequest=new UrlImageLoaderRequest(user.avatar);
|
||||
this.parentFragment=parentFragment;
|
||||
this.accountID=accountID;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,6 +63,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
name=findViewById(R.id.name);
|
||||
subtitle=findViewById(R.id.subtitle);
|
||||
avatar=findViewById(R.id.avatar);
|
||||
avatar.setOnClickListener(this::onAvaClick);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,5 +83,12 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
public void clearImage(int index){
|
||||
avatar.setImageBitmap(null);
|
||||
}
|
||||
|
||||
private void onAvaClick(View v){
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", item.accountID);
|
||||
args.putParcelable("profileAccount", Parcels.wrap(item.user));
|
||||
Nav.go(item.parentFragment.getActivity(), ProfileFragment.class, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,13 +42,13 @@ public abstract class StatusDisplayItem{
|
||||
};
|
||||
}
|
||||
|
||||
public static List<StatusDisplayItem> buildItems(Fragment fragment, Status status){
|
||||
public static List<StatusDisplayItem> buildItems(Fragment fragment, Status status, String accountID){
|
||||
ArrayList<StatusDisplayItem> items=new ArrayList<>();
|
||||
Status statusForContent=status.reblog==null ? status : status.reblog;
|
||||
if(status.reblog!=null){
|
||||
items.add(new ReblogOrReplyLineStatusDisplayItem(status));
|
||||
}
|
||||
items.add(new HeaderStatusDisplayItem(status, statusForContent.account, statusForContent.createdAt));
|
||||
items.add(new HeaderStatusDisplayItem(status, statusForContent.account, statusForContent.createdAt, fragment, accountID));
|
||||
if(!TextUtils.isEmpty(statusForContent.content))
|
||||
items.add(new TextStatusDisplayItem(status, HtmlParser.parse(statusForContent.content, statusForContent.emojis), fragment));
|
||||
for(Attachment attachment:statusForContent.mediaAttachments){
|
||||
|
||||
Reference in New Issue
Block a user