ankushsachdeva / emojicon

Android library to show emojicon dialog box over soft keyboard
283 stars 149 forks source link

How to integrate into actual softkeyboard. #25

Open mrfanatic opened 9 years ago

mrfanatic commented 9 years ago

Does anyone knows how to integrate this project into the actual softkeyboard? I mean not the stock keyboard (AOSP), but the custom softkeyboard sample provided in the legacy android sdk.

giorgiaditom commented 8 years ago

try this in onKey method

if (primaryCode == 32) {
        LayoutInflater layoutInflater = (LayoutInflater)     getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
        View popupView = layoutInflater.inflate(R.layout.popup, null);
        popupWindow = new EmojiconsPopup(popupView, this);
        // final PopupWindow popupWindow = new PopupWindow();
        popupWindow.setSizeForSoftKeyboard();
        popupWindow.setSize(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        popupWindow.showAtLocation(mInputView.getRootView(), Gravity.BOTTOM, 0, 0);
        // Bring soft keyboard up : NOT WORKING
        final InputMethodManager mInputMethodManager = (InputMethodManager) getBaseContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);

        mInputMethodManager.showSoftInput(popupView, 0);
 // If the text keyboard closes, also dismiss the emoji popup
        popupWindow.setOnSoftKeyboardOpenCloseListener(new OnSoftKeyboardOpenCloseListener() {

            @Override
            public void onKeyboardOpen(int keyBoardHeight) {

            }

            @Override
            public void onKeyboardClose() {
                if (popupWindow.isShowing())
                    popupWindow.dismiss();
            }
        });

        popupWindow.setOnEmojiconClickedListener(new OnEmojiconClickedListener() {

            @Override
            public void onEmojiconClicked(Emojicon emojicon) {
                mComposing.append(emojicon.getEmoji());
                commitTyped(getCurrentInputConnection());

                customToast("" + emojicon.getEmoji());
            }
        });

        popupWindow.setOnEmojiconBackspaceClickedListener(new OnEmojiconBackspaceClickedListener() {

            @Override
            public void onEmojiconBackspaceClicked(View v) {
                KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
                customToast(" " + event);
                handleBackspace();
            }
        });