summaryrefslogtreecommitdiffstats
path: root/app/src
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2020-03-28 10:54:18 +0100
committertom79 <tschneider.ac@gmail.com>2020-03-28 10:54:18 +0100
commitaf2aa0d1d2666bef378c99d8133369b0ca1c1dcb (patch)
treee37a6ecfcd7b042b89a5bee8fa739a466822aafd /app/src
parent507a58b0240514e7302a4e9f17f7565aecc94f8f (diff)
Update lib change the way to load animated emoji
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java4
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/TootActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Account.java104
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java101
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/AccountsAdminListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/AccountsInAListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/PeertubeAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/ReportsListAdapter.java4
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/ScheduledTootsListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java6
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java56
24 files changed, 130 insertions, 181 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java b/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java
index 7afec1655..eb7ba06ae 100644
--- a/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java
@@ -119,7 +119,7 @@ public class BookmarkActivity extends BaseActivity implements OnRetrieveFeedsInt
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null);
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
lv_status = findViewById(R.id.lv_status);
diff --git a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java
index 92ae1fdbf..17a0c9fbb 100644
--- a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java
@@ -116,7 +116,7 @@ public class CustomSharingActivity extends BaseActivity implements OnCustomShari
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null);
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
Bundle b = getIntent().getExtras();
Status status = null;
if (b != null) {
diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java
index 2eaa67142..a1bd4d905 100644
--- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java
@@ -144,7 +144,7 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
LinearLayout custom_fields_container = findViewById(R.id.custom_fields_container);
set_profile_name = findViewById(R.id.set_profile_name);
set_profile_description = findViewById(R.id.set_profile_description);
diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java
index 717837d4d..ed1ecc196 100644
--- a/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java
@@ -149,7 +149,7 @@ public class OwnerChartsActivity extends BaseActivity implements OnRetrieveChart
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null);
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
if (account != null) {
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
}
toolbar_close.setOnClickListener(v -> finish());
diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java
index a1fbafe69..5647c1a7b 100644
--- a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java
@@ -212,7 +212,7 @@ public class OwnerNotificationActivity extends BaseActivity implements OnRetriev
SQLiteDatabase db = Sqlite.getInstance(OwnerNotificationActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
Account account = new AccountDAO(OwnerNotificationActivity.this, db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
swipeRefreshLayout = findViewById(R.id.swipeContainer);
int c1 = getResources().getColor(R.color.cyanea_accent);
diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java
index d1794278e..adb4cfd24 100644
--- a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java
@@ -156,7 +156,7 @@ public class OwnerNotificationChartsActivity extends BaseActivity implements OnR
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null);
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
if (account != null) {
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
}
toolbar_close.setOnClickListener(v -> finish());
diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java
index c2050b486..2269a3a11 100644
--- a/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java
@@ -221,7 +221,7 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds
SQLiteDatabase db = Sqlite.getInstance(OwnerStatusActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
Account account = new AccountDAO(OwnerStatusActivity.this, db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
swipeRefreshLayout = findViewById(R.id.swipeContainer);
int c1 = getResources().getColor(R.color.cyanea_accent);
diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
index ce0fbd615..e79949bfa 100644
--- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
@@ -232,7 +232,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(getApplicationContext()));
Account account = new AccountDAO(getApplicationContext(), db).getUniqAccount(userId, instance);
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), my_pp);
+ Helper.loadGiF(getApplicationContext(), account, my_pp);
Bundle b = getIntent().getExtras();
if (b != null) {
peertubeInstance = b.getString("peertube_instance", null);
diff --git a/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java b/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java
index b1cc61a61..8936d472b 100644
--- a/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java
@@ -750,7 +750,7 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu
toot_content.requestFocus();
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
if (visibility == null) {
diff --git a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
index 8b1992ffc..5be9cde31 100644
--- a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
@@ -352,7 +352,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
actionbar_title.setText(account.getAcct());
ImageView pp_actionBar = findViewById(R.id.pp_actionBar);
if (account.getAvatar() != null) {
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
}
final AppBarLayout appBar = findViewById(R.id.appBar);
@@ -717,7 +717,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
}
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), account_pp);
+ Helper.loadGiF(getApplicationContext(), account, account_pp);
account_pp.setOnClickListener(v -> {
Intent intent = new Intent(ShowAccountActivity.this, SlideMediaActivity.class);
Bundle b = new Bundle();
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 df5f27bbc..33184b1df 100644
--- a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java
@@ -218,7 +218,7 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
Toasty.error(getApplicationContext(), getString(R.string.toast_error), Toast.LENGTH_LONG).show();
finish();
}
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
swipeRefreshLayout = findViewById(R.id.swipeContainer);
diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java
index 317995004..e545964f7 100644
--- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java
@@ -1070,7 +1070,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
initialContent = displayWYSIWYG() ? wysiwyg.getContentAsHTML() : toot_content.getText().toString();
- Helper.loadGiF(getApplicationContext(), account.getAvatar(), pp_actionBar);
+ Helper.loadGiF(getApplicationContext(), account, pp_actionBar);
if (sharedContent != null) { //Shared content
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 3b121e4dd..eecd06e03 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
@@ -45,20 +45,16 @@ import androidx.preference.PreferenceManager;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
-import com.github.penfeizhou.animation.apng.APNGDrawable;
-import com.github.penfeizhou.animation.apng.decode.APNGParser;
-import com.github.penfeizhou.animation.gif.GifDrawable;
-import com.github.penfeizhou.animation.gif.decode.GifParser;
import org.jetbrains.annotations.NotNull;
-import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -81,6 +77,7 @@ import static app.fedilab.android.helper.Helper.hashtagPattern;
* Manage accounts
*/
+@SuppressWarnings("unused")
public class Account implements Parcelable {
public static final Creator<Account> CREATOR = new Creator<Account>() {
@@ -368,7 +365,7 @@ public class Account implements Parcelable {
return fieldsSpan;
}
- public void setFieldsSpan(LinkedHashMap<SpannableString, SpannableString> fieldsSpan) {
+ private void setFieldsSpan(LinkedHashMap<SpannableString, SpannableString> fieldsSpan) {
this.fieldsSpan = fieldsSpan;
}
@@ -771,20 +768,17 @@ public class Account implements Parcelable {
}
final int link_color = l_c;
if (account.getFields() != null && account.getFields().size() > 0) {
- Iterator it = account.getFields().entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry pair = (Map.Entry) it.next();
+ for (Map.Entry<String, String> stringStringEntry : account.getFields().entrySet()) {
SpannableString fieldSpan;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
- fieldSpan = new SpannableString(Html.fromHtml((String) pair.getValue(), FROM_HTML_MODE_LEGACY));
+ fieldSpan = new SpannableString(Html.fromHtml((String) ((Map.Entry) stringStringEntry).getValue(), FROM_HTML_MODE_LEGACY));
else
- //noinspection deprecation
- fieldSpan = new SpannableString(Html.fromHtml((String) pair.getValue()));
- fieldsSpan.put(new SpannableString((String) pair.getKey()), fieldSpan);
- Pattern aLink = Pattern.compile("(<\\s?a\\s?href=\"https?:\\/\\/([\\da-z\\.-]+\\.[a-z\\.]{2,10})\\/(@[\\/\\w._-]*)\"\\s?[^.]*<\\s?\\/\\s?a\\s?>)");
- Matcher matcherALink = aLink.matcher((String) pair.getValue());
+ fieldSpan = new SpannableString(Html.fromHtml((String) ((Map.Entry) stringStringEntry).getValue()));
+ fieldsSpan.put(new SpannableString((String) ((Map.Entry) stringStringEntry).getKey()), fieldSpan);
+ Pattern aLink = Pattern.compile("(<\\s?a\\s?href=\"https?://([\\da-z.-]+\\.[a-z.]{2,10})/(@[/\\w._-]*)\"\\s?[^.]*<\\s?/\\s?a\\s?>)");
+ Matcher matcherALink = aLink.matcher((String) ((Map.Entry) stringStringEntry).getValue());
while (matcherALink.find()) {
- String acct = matcherALink.group(3).replace("@", "");
+ String acct = Objects.requireNonNull(matcherALink.group(3)).replace("@", "");
String instance = matcherALink.group(2);
Account accountMention = new Account();
accountMention.setAcct(acct);
@@ -804,7 +798,6 @@ public class Account implements Parcelable {
SpannableString keySpan = (SpannableString) pair.getKey();
Matcher matcher = Helper.xmppPattern.matcher(fieldSpan);
- int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
while (matcher.find()) {
URLSpan[] urls = fieldSpan.getSpans(0, fieldSpan.length(), URLSpan.class);
for (URLSpan span : urls)
@@ -947,7 +940,6 @@ public class Account implements Parcelable {
int matchEnd = matcher.end();
final String url = fieldSpan.toString().substring(matchStart, matchEnd);
if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
- int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
fieldSpan.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -968,9 +960,8 @@ public class Account implements Parcelable {
}
}
-
- final List<Emojis> emojis = account.getEmojis();
boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
+ final List<Emojis> emojis = account.getEmojis();
if (emojis != null && emojis.size() > 0) {
final int[] i = {0};
@@ -978,41 +969,21 @@ public class Account implements Parcelable {
fields = account.getFields();
try {
Glide.with(context)
- .asFile()
- .load(emoji.getUrl())
- .into(new SimpleTarget<File>() {
+ .asDrawable()
+ .load(disableAnimatedEmoji?emoji.getStatic_url():emoji.getUrl())
+ .into(new SimpleTarget<Drawable>() {
@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;
- }
+ public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
final String targetedEmoji = ":" + emoji.getShortcode() + ":";
-
if (noteSpan != null && noteSpan.toString().contains(targetedEmoji)) {
//emojis can be used several times so we have to loop
for (int startPosition = -1; (startPosition = noteSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
final int endPosition = startPosition + targetedEmoji.length();
if (endPosition <= noteSpan.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.getCurrent());
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
+ resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
+ resource.setVisible(true, true);
+ imageSpan = new ImageSpan(resource);
noteSpan.setSpan(
imageSpan, startPosition,
endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
@@ -1025,55 +996,36 @@ public class Account implements Parcelable {
final int endPosition = startPosition + targetedEmoji.length();
if (endPosition <= displayNameSpan.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.getCurrent());
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
+ resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
+ resource.setVisible(true, true);
+ imageSpan = new ImageSpan(resource);
displayNameSpan.setSpan(
imageSpan, startPosition,
endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
}
}
- Iterator it = fieldsSpan.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry pair = (Map.Entry) it.next();
- SpannableString fieldSpan = (SpannableString) pair.getValue();
- SpannableString keySpan = (SpannableString) pair.getKey();
+ for (Map.Entry<SpannableString, SpannableString> spannableStringSpannableStringEntry : fieldsSpan.entrySet()) {
+ SpannableString fieldSpan = (SpannableString) ((Map.Entry) spannableStringSpannableStringEntry).getValue();
+ SpannableString keySpan = (SpannableString) ((Map.Entry) spannableStringSpannableStringEntry).getKey();
if (fieldSpan.toString().contains(targetedEmoji)) {
//emojis can be used several times so we have to loop
for (int startPosition = -1; (startPosition = fieldSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
final int endPosition = startPosition + targetedEmoji.length();
if (endPosition <= fieldSpan.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.getCurrent());
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
+ resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
+ resource.setVisible(true, true);
+ imageSpan = new ImageSpan(resource);
fieldSpan.setSpan(
imageSpan, startPosition,
endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
}
- fieldsSpan.put((SpannableString) pair.getKey(), fieldSpan);
+ fieldsSpan.put((SpannableString) ((Map.Entry) spannableStringSpannableStringEntry).getKey(), fieldSpan);
} else
fieldsSpan.put(keySpan, fieldSpan);
}
-
i[0]++;
if (i[0] == (emojis.size())) {
if (noteSpan != null)
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 41e9fafaa..e4ca83dbe 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
@@ -58,12 +58,6 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
-import com.github.penfeizhou.animation.apng.APNGDrawable;
-import com.github.penfeizhou.animation.apng.decode.APNGParser;
-import com.github.penfeizhou.animation.gif.GifDrawable;
-import com.github.penfeizhou.animation.gif.decode.GifParser;
-
-import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
@@ -942,11 +936,11 @@ public class Status implements Parcelable {
final int[] i = {0};
for (final Emojis emoji : emojis) {
Glide.with(context)
- .asFile()
- .load(emoji.getUrl())
- .listener(new RequestListener<File>() {
+ .asDrawable()
+ .load(disableAnimatedEmoji?emoji.getStatic_url():emoji.getUrl())
+ .listener(new RequestListener<Drawable>() {
@Override
- public boolean onResourceReady(File resource, Object model, Target<File> target, DataSource dataSource, boolean isFirstResource) {
+ public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
@@ -959,20 +953,9 @@ public class Status implements Parcelable {
return false;
}
})
- .into(new SimpleTarget<File>() {
+ .into(new SimpleTarget<Drawable>() {
@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;
- }
+ public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
final String targetedEmoji = ":" + emoji.getShortcode() + ":";
if (contentSpan != null && contentSpan.toString().contains(targetedEmoji)) {
//emojis can be used several times so we have to loop
@@ -980,24 +963,9 @@ public class Status implements Parcelable {
final int endPosition = startPosition + targetedEmoji.length();
if (endPosition <= contentSpan.toString().length() && endPosition >= startPosition) {
ImageSpan imageSpan;
- if (!disableAnimatedEmoji) {
- try {
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- imageSpan = new ImageSpan(resource);
- } catch (Exception e) {
- Bitmap bitmap = drawableToBitmap(resource.getCurrent());
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
-
- } else {
- Bitmap bitmap = drawableToBitmap(resource.getCurrent());
- imageSpan = new ImageSpan(context,
- Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
- (int) Helper.convertDpToPixel(20, context), false));
- }
+ resource.setBounds(0, 0, (int) Helper.conv