fix avatars

This commit is contained in:
tom79 2019-08-01 11:17:51 +02:00
parent e51392c0fc
commit 5d1a5f6de9
5 changed files with 31 additions and 37 deletions

View File

@ -17,6 +17,7 @@ package app.fedilab.android.asynctasks;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.util.Log;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@ -29,6 +30,7 @@ import app.fedilab.android.client.Entities.Conversation;
import app.fedilab.android.client.Entities.ManageTimelines;
import app.fedilab.android.client.Entities.TagTimeline;
import app.fedilab.android.client.GNUAPI;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.sqlite.SearchDAO;
import app.fedilab.android.sqlite.Sqlite;
import app.fedilab.android.sqlite.TimelinesDAO;
@ -117,10 +119,8 @@ public class RetrieveMissingFeedsAsyncTask extends AsyncTask<Void, Void, Void> {
if (conversations != null && conversations.size() > 0) {
for (Conversation conversation : conversations) {
app.fedilab.android.client.Entities.Status status = conversation.getLast_status();
List<String> ppConversation = new ArrayList<>();
for (Account account : conversation.getAccounts())
ppConversation.add(account.getAvatar());
status.setConversationProfilePicture(ppConversation);
List<Account> ppConversation = new ArrayList<>(conversation.getAccounts());
status.setConversationAccounts(ppConversation);
status.setConversationId(conversation.getId());
tempStatus.add(status);
}
@ -166,10 +166,8 @@ public class RetrieveMissingFeedsAsyncTask extends AsyncTask<Void, Void, Void> {
if (conversations != null && conversations.size() > 0) {
for (Conversation conversation : conversations) {
app.fedilab.android.client.Entities.Status status = conversation.getLast_status();
List<String> ppConversation = new ArrayList<>();
for (Account account : conversation.getAccounts())
ppConversation.add(account.getAvatar());
status.setConversationProfilePicture(ppConversation);
List<Account> ppConversation = new ArrayList<>(conversation.getAccounts());
status.setConversationAccounts(ppConversation);
status.setConversationId(conversation.getId());
tempStatus.add(status);
}

View File

@ -19,6 +19,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;

View File

@ -133,7 +133,7 @@ public class Status implements Parcelable{
private boolean showSpoiler = false;
public Status(){}
private List<String> conversationProfilePicture;
private List<Account> conversationAccounts;
private String webviewURL = null;
private boolean isBoostAnimated = false, isFavAnimated = false;
@ -199,7 +199,7 @@ public class Status implements Parcelable{
dest.writeString(this.conversationId);
dest.writeByte(this.isExpanded ? (byte) 1 : (byte) 0);
dest.writeInt(this.numberLines);
dest.writeStringList(this.conversationProfilePicture);
dest.writeTypedList(this.conversationAccounts);
dest.writeString(this.webviewURL);
dest.writeByte(this.isBoostAnimated ? (byte) 1 : (byte) 0);
dest.writeByte(this.isFavAnimated ? (byte) 1 : (byte) 0);
@ -265,7 +265,7 @@ public class Status implements Parcelable{
this.conversationId = in.readString();
this.isExpanded = in.readByte() != 0;
this.numberLines = in.readInt();
this.conversationProfilePicture = in.createStringArrayList();
this.conversationAccounts = in.createTypedArrayList(Account.CREATOR);
this.webviewURL = in.readString();
this.isBoostAnimated = in.readByte() != 0;
this.isFavAnimated = in.readByte() != 0;
@ -1437,12 +1437,12 @@ public class Status implements Parcelable{
this.type = type;
}
public List<String> getConversationProfilePicture() {
return conversationProfilePicture;
public List<Account> getConversationAccounts() {
return conversationAccounts;
}
public void setConversationProfilePicture(List<String> conversationProfilePicture) {
this.conversationProfilePicture = conversationProfilePicture;
public void setConversationAccounts(List<Account> conversationAccounts) {
this.conversationAccounts = conversationAccounts;
}
public String getWebviewURL() {

View File

@ -2020,10 +2020,10 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_account_profile_boost_by.setVisibility(View.GONE);
holder.status_account_profile.setVisibility(View.VISIBLE);
}
if (type == RetrieveFeedsAsyncTask.Type.CONVERSATION && status.getConversationProfilePicture() != null) {
if (type == RetrieveFeedsAsyncTask.Type.CONVERSATION && status.getConversationAccounts() != null) {
holder.status_account_profile.setVisibility(View.GONE);
holder.conversation_pp.setVisibility(View.VISIBLE);
if (status.getConversationProfilePicture().size() == 1) {
if (status.getConversationAccounts().size() == 1) {
holder.conversation_pp_1.setVisibility(View.VISIBLE);
holder.conversation_pp_1.setScaleType(ImageView.ScaleType.CENTER_CROP);
holder.conversation_pp_2_container.setVisibility(View.GONE);
@ -2031,20 +2031,17 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.conversation_pp_2.setVisibility(View.GONE);
holder.conversation_pp_3.setVisibility(View.GONE);
holder.conversation_pp_4.setVisibility(View.GONE);
Glide.with(context)
.load(status.getConversationProfilePicture().get(0))
.apply(new RequestOptions().transforms(new FitCenter(), new RoundedCorners(10)))
.into(holder.conversation_pp_1);
} else if (status.getConversationProfilePicture().size() == 2) {
Helper.loadGiF(context, status.getConversationAccounts().get(0), holder.conversation_pp_1);
} else if (status.getConversationAccounts().size() == 2) {
holder.conversation_pp_2_container.setVisibility(View.VISIBLE);
holder.conversation_pp_3_container.setVisibility(View.GONE);
holder.conversation_pp_1.setVisibility(View.VISIBLE);
holder.conversation_pp_2.setVisibility(View.VISIBLE);
holder.conversation_pp_3.setVisibility(View.GONE);
holder.conversation_pp_4.setVisibility(View.GONE);
Helper.loadGiF(context, status.getConversationProfilePicture().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationProfilePicture().get(1), holder.conversation_pp_2);
} else if (status.getConversationProfilePicture().size() == 3) {
Helper.loadGiF(context, status.getConversationAccounts().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationAccounts().get(1), holder.conversation_pp_2);
} else if (status.getConversationAccounts().size() == 3) {
holder.conversation_pp_4.setVisibility(View.GONE);
holder.conversation_pp_1.setVisibility(View.VISIBLE);
holder.conversation_pp_2.setVisibility(View.VISIBLE);
@ -2052,20 +2049,20 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.conversation_pp_4.setVisibility(View.GONE);
holder.conversation_pp_2_container.setVisibility(View.VISIBLE);
holder.conversation_pp_3_container.setVisibility(View.VISIBLE);
Helper.loadGiF(context, status.getConversationProfilePicture().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationProfilePicture().get(1), holder.conversation_pp_2);
Helper.loadGiF(context, status.getConversationProfilePicture().get(2), holder.conversation_pp_3);
} else if (status.getConversationProfilePicture().size() == 4) {
Helper.loadGiF(context, status.getConversationAccounts().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationAccounts().get(1), holder.conversation_pp_2);
Helper.loadGiF(context, status.getConversationAccounts().get(2), holder.conversation_pp_3);
} else if (status.getConversationAccounts().size() == 4) {
holder.conversation_pp_1.setVisibility(View.VISIBLE);
holder.conversation_pp_2.setVisibility(View.VISIBLE);
holder.conversation_pp_3.setVisibility(View.VISIBLE);
holder.conversation_pp_4.setVisibility(View.VISIBLE);
holder.conversation_pp_2_container.setVisibility(View.VISIBLE);
holder.conversation_pp_3_container.setVisibility(View.VISIBLE);
Helper.loadGiF(context, status.getConversationProfilePicture().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationProfilePicture().get(1), holder.conversation_pp_2);
Helper.loadGiF(context, status.getConversationProfilePicture().get(2), holder.conversation_pp_3);
Helper.loadGiF(context, status.getConversationProfilePicture().get(3), holder.conversation_pp_4);
Helper.loadGiF(context, status.getConversationAccounts().get(0), holder.conversation_pp_1);
Helper.loadGiF(context, status.getConversationAccounts().get(1), holder.conversation_pp_2);
Helper.loadGiF(context, status.getConversationAccounts().get(2), holder.conversation_pp_3);
Helper.loadGiF(context, status.getConversationAccounts().get(3), holder.conversation_pp_4);
}
}

View File

@ -506,10 +506,8 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
Status status = conversation.getLast_status();
if (status != null) {
status.setConversationId(conversation.getId());
List<String> ppConversation = new ArrayList<>();
for (Account account : conversation.getAccounts())
ppConversation.add(account.getAvatar());
status.setConversationProfilePicture(ppConversation);
List<Account> ppConversation = new ArrayList<>(conversation.getAccounts());
status.setConversationAccounts(ppConversation);
}
statusesConversations.add(status);
}