summaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2020-04-08 17:42:28 +0200
committertom79 <tschneider.ac@gmail.com>2020-04-08 17:42:28 +0200
commit6912a798d5681ee0c27f03deb70f0148aa8d7df3 (patch)
treebfc380225c5cc35021d8a761e6d92e2d7958dffb /app/src/main/java
parentf588edd39ed7999304aac68c4ccf84f66a087cef (diff)
Improve the way to refresh elements
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java122
-rw-r--r--app/src/main/java/app/fedilab/android/client/API.java17
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Account.java8
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Notification.java201
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Poll.java11
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java129
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/AccountsAdminListAdapter.java1
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java4
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java5
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java12
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java4
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/ReportsListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java18
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java3
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java2
16 files changed, 85 insertions, 456 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java
index 16abb9ba9..53227f075 100644
--- a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java
@@ -129,7 +129,7 @@ public class InstanceHealthActivity extends BaseActivity {
parameters.put("name", instance.trim());
final String response = new HttpsConnection(InstanceHealthActivity.this, instance).get("https://instances.social/api/1.0/instances/show", 5, parameters, Helper.THEKINRAR_SECRET_TOKEN);
if (response != null) {
- instanceSocial = API.parseInstanceSocialResponse(InstanceHealthActivity.this, new JSONObject(response));
+ instanceSocial = API.parseInstanceSocialResponse(new JSONObject(response));
}
runOnUiThread(() -> {
if (instanceSocial.getThumbnail() != null && !instanceSocial.getThumbnail().equals("null"))
diff --git a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java
index 8b151a5d6..9b9e3800b 100644
--- a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java
@@ -141,73 +141,56 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
action_expand.setImageResource(R.drawable.ic_expand_less);
else
action_expand.setImageResource(R.drawable.ic_expand_more);
- title.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (lv_status != null) {
- lv_status.setAdapter(statusListAdapter);
- }
+ title.setOnClickListener(view -> {
+ if (lv_status != null) {
+ lv_status.setAdapter(statusListAdapter);
}
});
if (close_conversation != null) {
- close_conversation.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
+ close_conversation.setOnClickListener(v -> finish());
}
- action_refresh.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
- Bundle b = new Bundle();
- b.putParcelable("status", detailsStatus);
- b.putBoolean("expanded", expanded);
- if (expanded && statuses != null && statuses.size() > 0)
- b.putParcelable("initialStatus", statuses.get(0));
- intent.putExtras(b);
- finish();
- startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
- }
+ action_refresh.setOnClickListener(view -> {
+ Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
+ Bundle b1 = new Bundle();
+ b1.putParcelable("status", detailsStatus);
+ b1.putBoolean("expanded", expanded);
+ if (expanded && statuses != null && statuses.size() > 0)
+ b1.putParcelable("initialStatus", statuses.get(0));
+ intent.putExtras(b1);
+ finish();
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
});
- action_unhide.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (statuses != null && statuses.size() > 0) {
- spoilerShown = !spoilerShown;
- for (Status status : statuses) {
- if (spoilerBehaviour && !status.isSpoilerShown()) {
- status.setAutoHiddenCW(true);
- } else {
- status.setAutoHiddenCW(false);
- }
- status.setSpoilerShown(spoilerShown);
- status.setShowSpoiler(spoilerShown);
+ action_unhide.setOnClickListener(v -> {
+ if (statuses != null && statuses.size() > 0) {
+ spoilerShown = !spoilerShown;
+ for (Status status : statuses) {
+ if (spoilerBehaviour && !status.isSpoilerShown()) {
+ status.setAutoHiddenCW(true);
+ } else {
+ status.setAutoHiddenCW(false);
}
- statusListAdapter.notifyItemRangeChanged(0, statuses.size());
+ status.setSpoilerShown(spoilerShown);
+ status.setShowSpoiler(spoilerShown);
}
-
+ statusListAdapter.notifyItemRangeChanged(0, statuses.size());
}
+
});
- action_expand.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- expanded = !expanded;
- Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
- Bundle b = new Bundle();
- b.putParcelable("status", detailsStatus);
- b.putBoolean("expanded", expanded);
- if (expanded && statuses != null && statuses.size() > 0)
- b.putParcelable("initialStatus", statuses.get(0));
- intent.putExtras(b);
- finish();
- startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ action_expand.setOnClickListener(v -> {
+ expanded = !expanded;
+ Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
+ Bundle b12 = new Bundle();
+ b12.putParcelable("status", detailsStatus);
+ b12.putBoolean("expanded", expanded);
+ if (expanded && statuses != null && statuses.size() > 0)
+ b12.putParcelable("initialStatus", statuses.get(0));
+ intent.putExtras(b12);
+ finish();
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
- }
});
SQLiteDatabase db = Sqlite.getInstance(ShowConversationActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
@@ -259,21 +242,18 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
new RetrieveContextAsyncTask(ShowConversationActivity.this, expanded, detailsStatus.getVisibility().equals("direct"), statusIdToFetch, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
swipeRefreshLayout.setDistanceToTriggerSync(500);
- swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
- @Override
- public void onRefresh() {
- Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
- Bundle b = new Bundle();
- b.putParcelable("status", detailsStatus);
- b.putBoolean("expanded", expanded);
- if (expanded && statuses != null && statuses.size() > 0)
- b.putParcelable("initialStatus", statuses.get(0));
- b.putParcelable("status", detailsStatus);
- intent.putExtras(b);
- finish();
- startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
- }
+ swipeRefreshLayout.setOnRefreshListener(() -> {
+ Intent intent = new Intent(ShowConversationActivity.this, ShowConversationActivity.class);
+ Bundle b13 = new Bundle();
+ b13.putParcelable("status", detailsStatus);
+ b13.putBoolean("expanded", expanded);
+ if (expanded && statuses != null && statuses.size() > 0)
+ b13.putParcelable("initialStatus", statuses.get(0));
+ b13.putParcelable("status", detailsStatus);
+ intent.putExtras(b13);
+ finish();
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
});
diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java
index ef5f22726..5459367d8 100644
--- a/app/src/main/java/app/fedilab/android/client/API.java
+++ b/app/src/main/java/app/fedilab/android/client/API.java
@@ -249,7 +249,7 @@ public class API {
* @param resobj JSONObject
* @return InstanceSocial
*/
- public static InstanceSocial parseInstanceSocialResponse(Context context, JSONObject resobj) {
+ public static InstanceSocial parseInstanceSocialResponse(JSONObject resobj) {
InstanceSocial instanceSocial = new InstanceSocial();
try {
@@ -308,7 +308,7 @@ public class API {
peertube.setEmbedPath(resobj.get("embedPath").toString());
peertube.setPreviewPath(resobj.get("previewPath").toString());
peertube.setThumbnailPath(resobj.get("thumbnailPath").toString());
- peertube.setAccount(parseAccountResponsePeertube(context, instance, resobj.getJSONObject("account")));
+ peertube.setAccount(parseAccountResponsePeertube(instance, resobj.getJSONObject("account")));
peertube.setInstance(instance);
peertube.setView(Integer.parseInt(resobj.get("views").toString()));
peertube.setLike(Integer.parseInt(resobj.get("likes").toString()));
@@ -350,7 +350,7 @@ public class API {
peertube.setCommentsEnabled(Boolean.parseBoolean(resobj.get("commentsEnabled").toString()));
peertube.setDislike(Integer.parseInt(resobj.get("dislikes").toString()));
peertube.setDuration(Integer.parseInt(resobj.get("duration").toString()));
- peertube.setAccount(parseAccountResponsePeertube(context, instance, resobj.getJSONObject("account")));
+ peertube.setAccount(parseAccountResponsePeertube(instance, resobj.getJSONObject("account")));
try {
peertube.setCreated_at(Helper.mstStringToDate(resobj.get("createdAt").toString()));
} catch (ParseException e) {
@@ -405,7 +405,7 @@ public class API {
status.setSpoiler_text("");
status.setContent(context, comment.get("text").toString());
status.setIn_reply_to_id(comment.get("inReplyToCommentId").toString());
- status.setAccount(parseAccountResponsePeertube(context, instance, comment.getJSONObject("account")));
+ status.setAccount(parseAccountResponsePeertube(instance, comment.getJSONObject("account")));
status.setCreated_at(Helper.mstStringToDate(comment.get("createdAt").toString()));
status.setMentions(new ArrayList<>());
status.setEmojis(new ArrayList<>());
@@ -708,6 +708,7 @@ public class API {
} catch (JSONException | ParseException e) {
e.printStackTrace();
}
+ Status.makeEmojiPoll(context, poll);
return poll;
}
@@ -916,6 +917,9 @@ public class API {
e.printStackTrace();
}
status.setViewType(context);
+ Status.transform(context, status);
+ Status.makeEmojis(context, status);
+ Status.makeImage(context, status);
return status;
}
@@ -1164,7 +1168,7 @@ public class API {
* @param resobj JSONObject
* @return Account
*/
- private static Account parseAccountResponsePeertube(Context context, String instance, JSONObject resobj) {
+ private static Account parseAccountResponsePeertube(String instance, JSONObject resobj) {
Account account = new Account();
try {
account.setId(resobj.get("id").toString());
@@ -1483,6 +1487,7 @@ public class API {
} catch (JSONException | ParseException e) {
e.printStackTrace();
}
+ Account.makeAccountNameEmoji(context, account);
return account;
}
@@ -5903,7 +5908,7 @@ public class API {
int i = 0;
while (i < jsonArray.length()) {
JSONObject resobj = jsonArray.getJSONObject(i);
- Account account = parseAccountResponsePeertube(context, instance, resobj);
+ Account account = parseAccountResponsePeertube(instance, resobj);
accounts.add(account);
i++;
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Account.java b/app/src/main/java/app/fedilab/android/client/Entities/Account.java
index 9c722715f..4b82c9e8e 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Account.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Account.java
@@ -201,7 +201,7 @@ public class Account implements Parcelable {
this.invited_by_account_id = in.readString();
}
- public static void makeAccountNameEmoji(final Context context, final OnRetrieveEmojiAccountInterface listener, Account account) {
+ public static void makeAccountNameEmoji(final Context context, Account account) {
if (((Activity) context).isFinishing())
return;
@@ -245,12 +245,6 @@ public class Account implements Parcelable {
}
}
}
- i[0]++;
- if (i[0] == (emojis.size())) {
- account.setdisplayNameSpan(displayNameSpan);
- if (listener != null)
- listener.onRetrieveEmojiAccount(account);
- }
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java
index 6b9f9473f..75ce599e1 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java
@@ -86,207 +86,6 @@ public class Notification implements Parcelable {
public Notification() {
}
- public static void makeEmojis(final Context context, final OnRetrieveEmojiInterface listener, Notification notification) {
-
- if (((Activity) context).isFinishing())
- return;
- Status status = notification.getStatus();
-
- java.util.List<Emojis> emojis = null;
- if (status != null) {
- emojis = status.getEmojis();
- }
- List<Emojis> emojisAccounts = notification.getAccount().getEmojis();
-
- String typeString = "";
- switch (notification.getType()) {
- case "mention":
- if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0)
- typeString = String.format("%s %s", notification.getAccount().getDisplay_name(), context.getString(R.string.notif_mention));
- else
- typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_mention));
- break;
- case "poll":
- typeString = context.getString(R.string.notif_poll);
- break;
- case "reblog":
- if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0)
- typeString = String.format("%s %s", notification.getAccount().getDisplay_name(), context.getString(R.string.notif_reblog));
- else
- typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_reblog));
- break;
- case "favourite":
- if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0)
- typeString = String.format("%s %s", notification.getAccount().getDisplay_name(), context.getString(R.string.notif_favourite));
- else
- typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_favourite));
- break;
- case "follow":
- if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0)
- typeString = String.format("%s %s", notification.getAccount().getDisplay_name(), context.getString(R.string.notif_follow));
- else
- typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_follow));
- break;
- case "follow_request":
- if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0)
- typeString = String.format("%s %s", notification.getAccount().getDisplay_name(), context.getString(R.string.notif_follow_request));
- else
- typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_follow_request));
- break;
- }
- SpannableString displayNameSpan = new SpannableString(typeString);
- SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
- boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
-
- if (emojisAccounts != null && emojisAccounts.size() > 0) {
- final int[] j = {0};
- for (final Emojis emoji : emojisAccounts) {
- Glide.with(context)
- .asDrawable()
- .load(emoji.getUrl())
- .listener(new RequestListener<Drawable>() {
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- return false;
- }
-
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
- j[0]++;
- if (j[0] == (emojisAccounts.size())) {
- listener.onRetrieveEmoji(notification);
- }
- return false;
- }
- })
- .into(new SimpleTarget<Drawable>() {
- @Override
- public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
- final String targetedEmoji = ":" + emoji.getShortcode() + ":";
- if (displayNameSpan.toString().contains(targetedEmoji)) {
- //emojis can be used several times so we have to loop
- for (int startPosition = -1; (startPosition = displayNameSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
- final int endPosition = startPosition + targetedEmoji.length();
- if (endPosition <= displayNameSpan.toString().length() && endPosition >= startPosition) {
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- ImageSpan imageSpan = new ImageSpan(resource);
- displayNameSpan.setSpan(
- imageSpan, startPosition,
- endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- }
- }
- }
- j[0]++;
- if (j[0] == (emojisAccounts.size())) {
- notification.getAccount().setdisplayNameSpan(displayNameSpan);
- listener.onRetrieveEmoji(notification);
- }
- }
- });
- }
- }
-
- if (status != null && emojis != null && emojis.size() > 0) {
- SpannableString contentSpan = status.getContentSpan();
- SpannableString contentSpanCW = status.getContentSpanCW();
- final int[] i = {0};
- for (final Emojis emoji : emojis) {
- List<Emojis> finalEmojis = emojis;
- Glide.with(context)
- .asFile()
- .load(emoji.getUrl())
- .listener(new RequestListener<File>() {
- @Override
- public boolean onResourceReady(File resource, Object model, Target<File> target, DataSource dataSource, boolean isFirstResource) {
- return false;
- }
-
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
- i[0]++;
- if (i[0] == (finalEmojis.size())) {
- listener.onRetrieveEmoji(status, false);
- }
- return false;
- }
- })
- .into(new SimpleTarget<File>() {
- @Override
- public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
- Drawable resource;
- if (GifParser.isGif(resourceFile.getAbsolutePath())) {
- resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
- } else if (APNGParser.isAPNG(resourceFile.getAbsolutePath())) {
- resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
- } else {
- resource = Drawable.createFromPath(resourceFile.getAbsolutePath());
- }
- if (resource == null) {
- return;
- }
- final String targetedEmoji = ":" + emoji.getShortcode() + ":";
- if (contentSpan != null && contentSpan.toString().contains(targetedEmoji)) {
- //emojis can be used several times so we have to loop
- for (int startPosition = -1; (startPosition = contentSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
- final int endPosition = startPosition + targetedEmoji.length();
- if (endPosition <= contentSpan.toString().length() && endPosition >= startPosition) {
- try {
- ImageSpan imageSpan;
- if (!disableAnimatedEmoji) {
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- imageSpan = new ImageSpan(resource);
- } else {
- Bitmap bitmap = drawableToBitmap(resource);
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
- contentSpan.setSpan(
- imageSpan, startPosition,
- endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- } catch (Exception ignored) {
- }
- }
- }
- }
- if (contentSpanCW != null && contentSpanCW.toString().contains(targetedEmoji)) {
- //emojis can be used several times so we have to loop
- for (int startPosition = -1; (startPosition = contentSpanCW.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
- final int endPosition = startPosition + targetedEmoji.length();
- if (endPosition <= contentSpanCW.toString().length() && endPosition >= startPosition) {
- ImageSpan imageSpan;
- if (!disableAnimatedEmoji) {
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- imageSpan = new ImageSpan(resource);
- } else {
- resource.setVisible(true, true);
- Bitmap bitmap = drawableToBitmap(resource);
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
- contentSpanCW.setSpan(
- imageSpan, startPosition,
- endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- }
- }
- }
- i[0]++;
- if (i[0] == (finalEmojis.size())) {
- status.setContentSpan(contentSpan);
- status.setContentSpanCW(contentSpanCW);
- status.setEmojiFound(true);
- listener.onRetrieveEmoji(notification);
- }
- }
- });
-
- }
- }
- }
public String getId() {
return id;
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Poll.java b/app/src/main/java/app/fedilab/android/client/Entities/Poll.java
index 54969e893..85ba55b60 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Poll.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Poll.java
@@ -43,6 +43,7 @@ public class Poll implements Parcelable {
private int voters_count;
private boolean voted;
private List<PollOptions> optionsList;
+ private List<Emojis> emojis;
public Poll() {
}
@@ -58,6 +59,7 @@ public class Poll implements Parcelable {
this.voters_count = in.readInt();
this.voted = in.readByte() != 0;
this.optionsList = in.createTypedArrayList(PollOptions.CREATOR);
+ this.emojis = in.createTypedArrayList(Emojis.CREATOR);
}
public String getId() {
@@ -140,6 +142,7 @@ public class Poll implements Parcelable {
dest.writeInt(this.voters_count);
dest.writeByte(this.voted ? (byte) 1 : (byte) 0);
dest.writeTypedList(this.optionsList);
+ dest.writeTypedList(this.emojis);
}
public int getVoters_count() {
@@ -149,4 +152,12 @@ public class Poll implements Parcelable {
public void setVoters_count(int voters_count) {
this.voters_count = voters_count;
}
+
+ public List<Emojis> getEmojis() {
+ return emojis;
+ }
+
+ public void setEmojis(List<Emojis> emojis) {
+ this.emojis = emojis;
+ }
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
index 28cff22e4..4a549b9f7 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
@@ -87,14 +87,13 @@ import app.fedilab.android.helper.Helper;
import app.fedilab.android.helper.LongClickableSpan;
import app.fedilab.android.helper.ThemeHelper;
import app.fedilab.android.interfaces.OnRetrieveEmojiInterface;
-import app.fedilab.android.interfaces.OnRetrieveImageInterface;
import es.dmoral.toasty.Toasty;
import static android.content.Context.MODE_PRIVATE;
import static app.fedilab.android.drawers.StatusListAdapter.COMPACT_STATUS;
import static app.fedilab.android.drawers.StatusListAdapter.CONSOLE_STATUS;
import static app.fedilab.android.drawers.StatusListAdapter.DISPLAYED_STATUS;
-import static app.fedilab.android.helper.Helper.drawableToBitmap;
+
/**
* Created by Thomas on 23/04/2017.
@@ -149,7 +148,6 @@ public class Status implements Parcelable {
private boolean isPollEmojiFound = false;
private boolean isImageFound = false;
private boolean isEmojiTranslateFound = false;
- private boolean isClickable = false;
private boolean isTranslationShown = false;
private boolean isNew = false;
private boolean isVisible = true;
@@ -854,20 +852,16 @@ public class Status implements Parcelable {
status.setDisplayNameSpan(displayNameSpan);
}
- public static void makeEmojis(final Context context, final OnRetrieveEmojiInterface listener, Status status) {
+ public static void makeEmojis(final Context context, Status status) {
if (((Activity) context).isFinishing())
return;
- if (status.getAccount() == null)
- return;
if (status.getReblog() != null && status.getReblog().getEmojis() == null)
return;
if (status.getReblog() == null && status.getEmojis() == null)
return;
final List<Emojis> emojis = status.getReblog() != null ? status.getReblog().getEmojis() : status.getEmojis();
- final List<Emojis> emojisAccounts = status.getReblog() != null ? status.getReblog().getAccount().getEmojis() : status.getAccount().getEmojis();
- Account.makeAccountNameEmoji(context, null, status.getAccount());
SpannableString displayNameSpan = status.getDisplayNameSpan();
SpannableString contentSpan = status.getContentSpan();
@@ -875,66 +869,7 @@ public class Status implements Parcelable {
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
- if (emojisAccounts != null && emojisAccounts.size() > 0) {
- final int[] i = {0};
- for (final Emojis emoji : emojisAccounts) {
- Glide.with(context)
- .asDrawable()
- .load(emoji.getUrl())
- .listener(new RequestListener<Drawable>() {
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- return false;
- }
-
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
- i[0]++;
- if (i[0] == (emojisAccounts.size())) {
- listener.onRetrieveEmoji(status, false);
- }
- return false;
- }
- })
- .into(new SimpleTarget<Drawable>() {
- @Override
-