From 4130e252cc323224908b860f460d4721796994b8 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sun, 8 Oct 2023 22:50:28 +0200 Subject: [PATCH] fixes to make Picasso Image Loader work This library is used by newer NewPipe versions --- src/api-impl/android/graphics/Bitmap.java | 5 +++-- src/api-impl/android/graphics/BitmapFactory.java | 15 ++++----------- src/api-impl/android/net/Uri.java | 4 ++++ .../net/http/X509TrustManagerExtensions.java | 9 +++++++++ src/api-impl/android/widget/ImageView.java | 6 +++++- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/api-impl/android/graphics/Bitmap.java b/src/api-impl/android/graphics/Bitmap.java index e062db27..fbe7e89f 100644 --- a/src/api-impl/android/graphics/Bitmap.java +++ b/src/api-impl/android/graphics/Bitmap.java @@ -1208,7 +1208,7 @@ public final class Bitmap { * @return number of bytes between rows of the native bitmap pixels. */ public final int getRowBytes() { - return nativeRowBytes(mNativeBitmap); + return nativeRowBytes(pixbuf); } /** @@ -1574,7 +1574,8 @@ public final class Bitmap { * and therefore is harmless. */ public void prepareToDraw() { - nativePrepareToDraw(mNativeBitmap); + // nativePrepareToDraw(mNativeBitmap); + System.out.println("Bitmap.prepareToDraw() called"); } private static class BitmapFinalizer { diff --git a/src/api-impl/android/graphics/BitmapFactory.java b/src/api-impl/android/graphics/BitmapFactory.java index 8c31c86b..350290af 100644 --- a/src/api-impl/android/graphics/BitmapFactory.java +++ b/src/api-impl/android/graphics/BitmapFactory.java @@ -22,6 +22,8 @@ import android.os.Trace; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; + +import java.io.ByteArrayInputStream; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.IOException; @@ -478,17 +480,8 @@ public class BitmapFactory { Bitmap bm; - Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "decodeBitmap"); - try { - bm = nativeDecodeByteArray(data, offset, length, opts); - - if (bm == null && opts != null && opts.inBitmap != null) { - throw new IllegalArgumentException("Problem decoding into existing bitmap"); - } - setDensityFromOptions(bm, opts); - } finally { - Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS); - } + InputStream stream = new ByteArrayInputStream(data, offset, length); + bm = decodeStream(stream, null, opts); return bm; } diff --git a/src/api-impl/android/net/Uri.java b/src/api-impl/android/net/Uri.java index 38fc0da6..39431459 100644 --- a/src/api-impl/android/net/Uri.java +++ b/src/api-impl/android/net/Uri.java @@ -152,6 +152,10 @@ public class Uri { return uri.getScheme(); } + public String getPath() { + return uri.getPath(); + } + @Override public String toString() { return String.valueOf(uri); diff --git a/src/api-impl/android/net/http/X509TrustManagerExtensions.java b/src/api-impl/android/net/http/X509TrustManagerExtensions.java index 7ed2573a..317b71df 100644 --- a/src/api-impl/android/net/http/X509TrustManagerExtensions.java +++ b/src/api-impl/android/net/http/X509TrustManagerExtensions.java @@ -1,8 +1,17 @@ package android.net.http; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; + import javax.net.ssl.X509TrustManager; public class X509TrustManagerExtensions { public X509TrustManagerExtensions(X509TrustManager tm) {} + + public List checkServerTrusted (X509Certificate[] chain, + String authType, String host) { + return new ArrayList<>(); + } } diff --git a/src/api-impl/android/widget/ImageView.java b/src/api-impl/android/widget/ImageView.java index 6a4cd49c..6938c11c 100644 --- a/src/api-impl/android/widget/ImageView.java +++ b/src/api-impl/android/widget/ImageView.java @@ -63,7 +63,11 @@ public class ImageView extends View { return new BitmapDrawable(getContext().getResources(), bitmap); } - public void setImageDrawable(Drawable drawable) {} + public void setImageDrawable(Drawable drawable) { + if (drawable instanceof BitmapDrawable) { + setImageBitmap(((BitmapDrawable) drawable).getBitmap()); + } + } public void setImageMatrix(Matrix matrix) {}