aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-10-14 12:21:17 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-10-14 12:21:17 -0700
commit75c4b5fe1bbc7736d05abd7940825a30339c65fc (patch)
tree87a942daf73a472cd7c75190a2ab0b97c2c8401e /java/src
parentc1981eb83b8be28752ff9d9ca27fa856074e83c8 (diff)
parent5ad37baf1e09416b197da76881a30e79ac2032c7 (diff)
downloadlatinime-75c4b5fe1bbc7736d05abd7940825a30339c65fc.tar.gz
latinime-75c4b5fe1bbc7736d05abd7940825a30339c65fc.tar.xz
latinime-75c4b5fe1bbc7736d05abd7940825a30339c65fc.zip
am 5ad37baf: Merge "Release bitmap buffer when KeyboardView is detached from Window" into ics-mr0
* commit '5ad37baf1e09416b197da76881a30e79ac2032c7': Release bitmap buffer when KeyboardView is detached from Window
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboard.java16
2 files changed, 12 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 6af4123c9..e69dc581b 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -974,5 +974,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
if (mPreviewPlacer != null) {
mPreviewPlacer.removeAllViews();
}
+ if (mBuffer != null) {
+ mBuffer.recycle();
+ mBuffer = null;
+ }
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
index 345272044..c51f1849b 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
@@ -59,8 +59,8 @@ public class LatinKeyboard extends Keyboard {
private final int mSpacebarTextColor;
private final int mSpacebarTextShadowColor;
private float mSpacebarTextFadeFactor = 0.0f;
- private final HashMap<Integer, SoftReference<BitmapDrawable>> mSpaceDrawableCache =
- new HashMap<Integer, SoftReference<BitmapDrawable>>();
+ private final HashMap<Integer, BitmapDrawable> mSpaceDrawableCache =
+ new HashMap<Integer, BitmapDrawable>();
private final boolean mIsSpacebarTriggeringPopupByLongPress;
/* Shortcut key and its icons if available */
@@ -249,13 +249,13 @@ public class LatinKeyboard extends Keyboard {
private BitmapDrawable getSpaceDrawable(Locale locale, boolean isAutoCorrection) {
final Integer hashCode = Arrays.hashCode(
new Object[] { locale, isAutoCorrection, mSpacebarTextFadeFactor });
- final SoftReference<BitmapDrawable> ref = mSpaceDrawableCache.get(hashCode);
- BitmapDrawable drawable = (ref == null) ? null : ref.get();
- if (drawable == null) {
- drawable = new BitmapDrawable(mRes, drawSpacebar(
- locale, isAutoCorrection, mSpacebarTextFadeFactor));
- mSpaceDrawableCache.put(hashCode, new SoftReference<BitmapDrawable>(drawable));
+ final BitmapDrawable cached = mSpaceDrawableCache.get(hashCode);
+ if (cached != null) {
+ return cached;
}
+ final BitmapDrawable drawable = new BitmapDrawable(mRes, drawSpacebar(
+ locale, isAutoCorrection, mSpacebarTextFadeFactor));
+ mSpaceDrawableCache.put(hashCode, drawable);
return drawable;
}