From 22ed9653ec777578bed012f9f238894b1adcd8c2 Mon Sep 17 00:00:00 2001
From: Emux <devemux86@gmail.com>
Date: Fri, 29 Jan 2021 16:51:31 +0200
Subject: [PATCH] AndroidBitmap: convert unsupported bitmap formats (#805)

---
 .../src/org/oscim/android/canvas/AndroidBitmap.java        | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidBitmap.java b/vtm-android/src/org/oscim/android/canvas/AndroidBitmap.java
index f24f70f3..b41e3235 100644
--- a/vtm-android/src/org/oscim/android/canvas/AndroidBitmap.java
+++ b/vtm-android/src/org/oscim/android/canvas/AndroidBitmap.java
@@ -1,7 +1,7 @@
 /*
  * Copyright 2013 Hannes Janetzek
  * Copyright 2016 Longri
- * Copyright 2016-2018 devemux86
+ * Copyright 2016-2021 devemux86
  *
  * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
  *
@@ -22,7 +22,6 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.opengl.GLES20;
 import android.opengl.GLUtils;
-
 import org.oscim.backend.CanvasAdapter;
 import org.oscim.utils.GraphicUtils;
 import org.oscim.utils.IOUtils;
@@ -39,6 +38,7 @@ public class AndroidBitmap implements org.oscim.backend.canvas.Bitmap {
         Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
         try {
             GLUtils.getType(bitmap);
+            GLUtils.getInternalFormat(bitmap);
         } catch (IllegalArgumentException e) {
             bitmap = bitmap.copy(ARGB_8888, false);
         }
@@ -95,6 +95,9 @@ public class AndroidBitmap implements org.oscim.backend.canvas.Bitmap {
 
     @Override
     public void uploadToTexture(boolean replace) {
+        if (mBitmap.isRecycled())
+            return;
+
         int format = GLUtils.getInternalFormat(mBitmap);
         int type = GLUtils.getType(mBitmap);