diff options
author | BogDan Vatra <bogdan@kde.org> | 2014-07-30 12:18:13 +0300 |
---|---|---|
committer | BogDan Vatra <bogdan@kde.org> | 2014-07-30 16:32:22 +0200 |
commit | a64da3fbd252ba7a7d9ddc554b051dd644ffdae7 (patch) | |
tree | db1fd24d66e555dcdaf46a4371206ecc6d455737 /src/android | |
parent | 5b0be0c2173e365b2484844ffd0b23ead5f9a48a (diff) |
Cache the parsed drawables.
Change-Id: I4a386c644505ac84a5ddd15a898c3e9c58e682b3
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java | 22 |
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(); |