Merge branch 'develop' into new_apng_lib
# Conflicts: # app/src/main/java/app/fedilab/android/client/Entities/Account.java # app/src/main/java/app/fedilab/android/client/Entities/Notification.java
This commit is contained in:
parent
0ff62abed9
commit
2203087e41
|
@ -4,7 +4,7 @@ android {
|
|||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.0"
|
||||
defaultConfig {
|
||||
minSdkVersion 18
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 29
|
||||
versionCode 301
|
||||
versionName "2.13.2"
|
||||
|
@ -120,8 +120,7 @@ dependencies {
|
|||
implementation "ch.acra:acra-notification:$acraVersion"
|
||||
implementation 'com.github.stom79:Android-WYSIWYG-Editor:3.2.1'
|
||||
implementation 'com.github.duanhong169:colorpicker:1.1.6'
|
||||
implementation 'com.github.penfeizhou.android.animation:apng:1.0.1'
|
||||
implementation 'com.github.penfeizhou.android.animation:gif:1.0.1'
|
||||
implementation 'com.linecorp:apng:1.6.0'
|
||||
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
|
||||
|
||||
}
|
||||
|
|
|
@ -44,12 +44,13 @@ import android.widget.Toast;
|
|||
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.gif.GifDrawable;
|
||||
import com.linecorp.apng.ApngDrawable;
|
||||
import com.linecorp.apng.decoder.ApngException;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
@ -952,12 +953,16 @@ public class Account implements Parcelable {
|
|||
.into(new SimpleTarget<File>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
|
||||
Drawable resource;
|
||||
if( emoji.getUrl().endsWith(".gif")){
|
||||
resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
}else{
|
||||
resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
ApngDrawable resource = null;
|
||||
try {
|
||||
resource = ApngDrawable.Companion.decode(resourceFile.getAbsolutePath(), (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
} catch (ApngException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if( resource == null)
|
||||
return;
|
||||
final String targetedEmoji = ":" + emoji.getShortcode() + ":";
|
||||
|
||||
if (noteSpan != null && noteSpan.toString().contains(targetedEmoji)) {
|
||||
|
@ -970,8 +975,8 @@ public class Account implements Parcelable {
|
|||
resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
resource.setVisible(true, true);
|
||||
imageSpan = new ImageSpan(resource);
|
||||
resource.start();
|
||||
}else{
|
||||
resource.setVisible(true, true);
|
||||
Bitmap bitmap = drawableToBitmap(resource.getCurrent());
|
||||
imageSpan = new ImageSpan(context,
|
||||
Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
|
||||
|
|
|
@ -37,10 +37,11 @@ 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.gif.GifDrawable;
|
||||
import com.linecorp.apng.ApngDrawable;
|
||||
import com.linecorp.apng.decoder.ApngException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -267,12 +268,17 @@ public class Notification implements Parcelable {
|
|||
.into(new SimpleTarget<File>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
|
||||
Drawable resource;
|
||||
if( emoji.getUrl().endsWith(".gif")){
|
||||
resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
}else{
|
||||
resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
ApngDrawable resource = null;
|
||||
try {
|
||||
resource = ApngDrawable.Companion.decode(resourceFile.getAbsolutePath(), (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
} catch (ApngException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
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
|
||||
|
@ -284,8 +290,8 @@ public class Notification implements Parcelable {
|
|||
resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
resource.setVisible(true, true);
|
||||
imageSpan = new ImageSpan(resource);
|
||||
resource.start();
|
||||
}else{
|
||||
resource.setVisible(true, true);
|
||||
Bitmap bitmap = drawableToBitmap(resource);
|
||||
imageSpan = new ImageSpan(context,
|
||||
Bitmap.createScaledBitmap(bitmap, (int) Helper.convertDpToPixel(20, context),
|
||||
|
|
|
@ -49,10 +49,12 @@ 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.gif.GifDrawable;
|
||||
import com.linecorp.apng.ApngDrawable;
|
||||
import com.linecorp.apng.decoder.ApngException;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
|
@ -1171,12 +1173,17 @@ public class Status implements Parcelable{
|
|||
.into(new SimpleTarget<File>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
|
||||
Drawable resource;
|
||||
if( emoji.getUrl().endsWith(".gif")){
|
||||
resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
}else{
|
||||
resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
|
||||
ApngDrawable resource = null;
|
||||
try {
|
||||
resource = ApngDrawable.Companion.decode(resourceFile.getAbsolutePath(), (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
} catch (ApngException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
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
|
||||
|
@ -1188,6 +1195,8 @@ public class Status implements Parcelable{
|
|||
resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
|
||||
resource.setVisible(true, true);
|
||||
imageSpan = new ImageSpan(resource);
|
||||
resource.setLoopCount(1000);
|
||||
resource.start();
|
||||
|
||||
}else{
|
||||
resource.setVisible(true, true);
|
||||
|
|
Loading…
Reference in New Issue