summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
index b92d309dd6..cc7fc505ee 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
@@ -48,6 +48,7 @@ import java.io.IOException;
import java.io.OutputStreamWriter;
import java.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
@@ -792,8 +793,28 @@ public class ExtractStyle {
}
}
+ class DrawableCache
+ {
+ public DrawableCache(JSONObject json, Object drawable)
+ {
+ object = json;
+ this.drawable = drawable;
+ }
+ JSONObject object;
+ Object drawable;
+ }
+ private HashMap<String, DrawableCache> m_drawableCache = new HashMap<String, DrawableCache>();
+
public JSONObject getDrawable(Object drawable, String filename)
{
+ DrawableCache dc = m_drawableCache.get(filename);
+ if (dc != null)
+ {
+ if (dc.drawable.equals(drawable))
+ return dc.object;
+ else
+ Log.e(QtNative.QtTAG, "Different drawable objects points to the same file name \"" + filename +"\"");
+ }
JSONObject json = new JSONObject();
Bitmap bmp;
if (drawable instanceof Bitmap)
@@ -909,6 +930,7 @@ public class ExtractStyle {
json.put("path", filename);
json.put("width", bmp.getWidth());
json.put("height", bmp.getHeight());
+ m_drawableCache.put(filename, new DrawableCache(json, drawable));
// MinistroActivity.nativeChmode(filename, 0644);
} catch (JSONException e) {
e.printStackTrace();