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:
tom79 2019-08-13 18:18:08 +02:00
parent 0ff62abed9
commit 2203087e41
4 changed files with 45 additions and 26 deletions

View File

@ -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'
}

View File

@ -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),

View File

@ -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),

View File

@ -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);