Comprehensive memory deallocation
Change-Id: I4673543c96eb342c3c977e00d44772a0d719a23e
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 07bd7a6..e1c841d 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -1228,6 +1228,6 @@
@Override
public void deallocateMemory() {
super.deallocateMemory();
- mGestureTrailsDrawingPreview.deallocateMemory();
+ mDrawingPreviewPlacerView.deallocateMemory();
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
index 32352ce..cd7dd6f 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
@@ -50,9 +50,7 @@
// Default implementation is empty.
}
- public void onDetachFromWindow() {
- // Default implementation is empty.
- }
+ public abstract void onDeallocateMemory();
/**
* Draws the preview
diff --git a/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java b/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
index 14baf35..606addc 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
@@ -59,13 +59,17 @@
}
}
+ public void deallocateMemory() {
+ final int count = mPreviews.size();
+ for (int i = 0; i < count; i++) {
+ mPreviews.get(i).onDeallocateMemory();
+ }
+ }
+
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
- final int count = mPreviews.size();
- for (int i = 0; i < count; i++) {
- mPreviews.get(i).onDetachFromWindow();
- }
+ deallocateMemory();
}
@Override
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
index 1790313..2fa7030 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
@@ -105,6 +105,11 @@
mParams = new GesturePreviewTextParams(typedArray);
}
+ @Override
+ public void onDeallocateMemory() {
+ // Nothing to do here.
+ }
+
public void setSuggetedWords(final SuggestedWords suggestedWords) {
if (!isPreviewEnabled()) {
return;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview.java
index 2d23ddb..13f2b60 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview.java
@@ -103,11 +103,7 @@
}
@Override
- public void onDetachFromWindow() {
- freeOffscreenBuffer();
- }
-
- public void deallocateMemory() {
+ public void onDeallocateMemory() {
freeOffscreenBuffer();
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
index aaa4072..76cb891 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
@@ -62,6 +62,11 @@
mPaint.setColor(previewColor);
}
+ @Override
+ public void onDeallocateMemory() {
+ // Nothing to do here.
+ }
+
public void dismissSlidingKeyInputPreview() {
mShowsSlidingKeyInputPreview = false;
getDrawingView().invalidate();