Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8814e20 authored by Ken Wakasa's avatar Ken Wakasa
Browse files

Deallocate gesture trail bitmap when unneeded

This frees up 1.7MB on Nexus 4 (occam), and 900KB on occam_svelte while
LatinIME goes to background.
The keyboard bring-up speed feels acceptable on both devices.

bug: 8967766
Change-Id: I5bc980c4dc41bc304be3c190934c1f7c55c9d244
parent 2d7e9273
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1370,4 +1370,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
            drawIcon(canvas, mSpaceIcon, x, y, iconWidth, iconHeight);
        }
    }

    public void deallocateMemory() {
        mGestureTrailsPreview.deallocateMemory();
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -104,7 +104,12 @@ public final class GestureTrailsPreview extends AbstractDrawingPreview {
        freeOffscreenBuffer();
    }

    public void deallocateMemory() {
        freeOffscreenBuffer();
    }

    private void freeOffscreenBuffer() {
        mOffscreenCanvas.setBitmap(null);
        if (mOffscreenBuffer != null) {
            mOffscreenBuffer.recycle();
            mOffscreenBuffer = null;
+1 −0
Original line number Diff line number Diff line
@@ -894,6 +894,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
        if (mainKeyboardView != null) {
            mainKeyboardView.cancelAllOngoingEvents();
            mainKeyboardView.deallocateMemory();
        }
        // Remove pending messages related to update suggestions
        mHandler.cancelUpdateSuggestionStrip();