Loading java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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(); Loading java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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(); Loading java/src/com/android/inputmethod/latin/LatinIME.java +1 −5 Original line number Diff line number Diff line Loading @@ -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 :( Loading Loading
java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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(); Loading
java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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(); Loading
java/src/com/android/inputmethod/latin/LatinIME.java +1 −5 Original line number Diff line number Diff line Loading @@ -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 :( Loading