From 46a329244db12b6f7afc3c9a6409d420241a1058 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Fri, 7 Jan 2011 18:16:43 -0800 Subject: [PATCH] LayoutLib: finish Typeface and unload them in dispose. Change-Id: I3a48f84678f62d669d303fc73b041bb3fe5f333b --- .../bridge/src/android/graphics/Typeface_Delegate.java | 10 +++++----- .../src/com/android/layoutlib/bridge/Bridge.java | 5 +++++ .../layoutlib/bridge/impl/RenderSessionImpl.java | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java index c7362c0ebd34d..11e1ca786b3f1 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java @@ -16,6 +16,7 @@ package android.graphics; +import com.android.layoutlib.bridge.Bridge; import com.android.layoutlib.bridge.impl.DelegateManager; import com.android.layoutlib.bridge.impl.FontLoader; @@ -84,7 +85,6 @@ public final class Typeface_Delegate { return delegate.mFonts; } - // ---- native methods ---- /*package*/ static synchronized int nativeCreate(String familyName, int style) { @@ -125,13 +125,13 @@ public final class Typeface_Delegate { } /*package*/ static synchronized int nativeCreateFromAsset(AssetManager mgr, String path) { - // FIXME - throw new UnsupportedOperationException("Native delegate needed: Typeface_Delegate.nativeCreateFromAsset"); + Bridge.getLog().fidelityWarning(null, "Typeface.createFromAsset() is not supported.", null); + return 0; } /*package*/ static synchronized int nativeCreateFromFile(String path) { - // FIXME - throw new UnsupportedOperationException("Native delegate needed: Typeface_Delegate.nativeCreateFromFile"); + Bridge.getLog().fidelityWarning(null, "Typeface.createFromFile() is not supported.", null); + return 0; } /*package*/ static void nativeUnref(int native_instance) { diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java index 7a95c09988664..e1bf9251e0b14 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java @@ -32,6 +32,7 @@ import com.android.tools.layoutlib.create.MethodAdapter; import com.android.tools.layoutlib.create.OverrideMethod; import android.graphics.Bitmap; +import android.graphics.Typeface; import android.graphics.Typeface_Delegate; import android.os.Looper; @@ -283,6 +284,10 @@ public final class Bridge extends com.android.ide.common.rendering.api.Bridge { @Override public boolean dispose() { BridgeAssetManager.clearSystem(); + + // dispose of the default typeface. + Typeface.sDefaults = null; + return true; } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java index 0003a74c1ea4e..025a318f0e57f 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java @@ -344,6 +344,7 @@ public class RenderSessionImpl { info.mHasWindowFocus = true; info.mWindowVisibility = View.VISIBLE; info.mInTouchMode = false; // this is so that we can display selections. + info.mHardwareAccelerated = false; mViewRoot.dispatchAttachedToWindow(info, 0); // get the background drawable