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

Commit a701501c authored by Satoshi Kataoka's avatar Satoshi Kataoka Committed by Android (Google) Code Review
Browse files

Merge "Reduce memory of emoji palette"

parents 92190d9a 0e01df9b
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
        ViewPager.OnPageChangeListener, View.OnClickListener,
        ScrollKeyboardView.OnKeyClickListener {
    private static final String TAG = EmojiPalettesView.class.getSimpleName();
    private static final boolean DEBUG_PAGER = false;
    private final int mKeyBackgroundId;
    private final int mEmojiFunctionalKeyBackgroundId;
    private final KeyboardLayoutSet mLayoutSet;
@@ -566,6 +567,20 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
        // TODO:
    }

    public void startEmojiPalettes() {
        if (DEBUG_PAGER) {
            Log.d(TAG, "allocate emoji palettes memory");
        }
        mEmojiPager.setAdapter(mEmojiPalettesAdapter);
    }

    public void stopEmojiPalettes() {
        if (DEBUG_PAGER) {
            Log.d(TAG, "deallocate emoji palettes memory");
        }
        mEmojiPager.setAdapter(null);
    }

    public void setKeyboardActionListener(final KeyboardActionListener listener) {
        mKeyboardActionListener = listener;
        mDeleteKeyOnTouchListener.setKeyboardActionListener(mKeyboardActionListener);
@@ -663,6 +678,9 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange

        @Override
        public Object instantiateItem(final ViewGroup container, final int position) {
            if (DEBUG_PAGER) {
                Log.d(TAG, "instantiate item: " + position);
            }
            final ScrollKeyboardView oldKeyboardView = mActiveKeyboardViews.get(position);
            if (oldKeyboardView != null) {
                oldKeyboardView.deallocateMemory();
@@ -694,6 +712,9 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
        @Override
        public void destroyItem(final ViewGroup container, final int position,
                final Object object) {
            if (DEBUG_PAGER) {
                Log.d(TAG, "destroy item: " + position + ", " + object.getClass().getSimpleName());
            }
            final ScrollKeyboardView keyboardView = mActiveKeyboardViews.get(position);
            if (keyboardView != null) {
                keyboardView.deallocateMemory();
+12 −0
Original line number Diff line number Diff line
@@ -260,12 +260,14 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
    private void setMainKeyboardFrame() {
        mMainKeyboardFrame.setVisibility(View.VISIBLE);
        mEmojiPalettesView.setVisibility(View.GONE);
        mEmojiPalettesView.stopEmojiPalettes();
    }

    // Implements {@link KeyboardState.SwitchActions}.
    @Override
    public void setEmojiKeyboard() {
        mMainKeyboardFrame.setVisibility(View.GONE);
        mEmojiPalettesView.startEmojiPalettes();
        mEmojiPalettesView.setVisibility(View.VISIBLE);
    }

@@ -336,6 +338,16 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
        return mKeyboardView;
    }

    public void deallocateMemory() {
        if (mKeyboardView != null) {
            mKeyboardView.cancelAllOngoingEvents();
            mKeyboardView.deallocateMemory();
        }
        if (mEmojiPalettesView != null) {
            mEmojiPalettesView.stopEmojiPalettes();
        }
    }

    public View onCreateInputView(final boolean isHardwareAcceleratedDrawingEnabled) {
        if (mKeyboardView != null) {
            mKeyboardView.closing();
+1 −5
Original line number Diff line number Diff line
@@ -1050,11 +1050,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    private void onFinishInputViewInternal(final boolean finishingInput) {
        super.onFinishInputView(finishingInput);
        mKeyboardSwitcher.onFinishInputView();
        final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
        if (mainKeyboardView != null) {
            mainKeyboardView.cancelAllOngoingEvents();
            mainKeyboardView.deallocateMemory();
        }
        mKeyboardSwitcher.deallocateMemory();
        // Remove pending messages related to update suggestions
        mHandler.cancelUpdateSuggestionStrip();
        // Should do the following in onFinishInputInternal but until JB MR2 it's not called :(