talk-android/app/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java
Andy Scherzinger 3eabf9bb83
Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-03-29 12:55:12 +01:00

60 lines
1.8 KiB
Java

/*
* Nextcloud Talk - Android Client
*
* SPDX-FileCopyrightText: 2017-2019 Mario Danic <mario@lovelyhq.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.nextcloud.talk.utils;
import android.content.Context;
import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import androidx.annotation.NonNull;
import androidx.emoji2.viewsintegration.EmojiEditTextHelper;
import com.google.android.material.textfield.TextInputEditText;
public class EmojiTextInputEditText extends TextInputEditText {
private EmojiEditTextHelper emojiEditTextHelper;
public EmojiTextInputEditText(Context context) {
super(context);
init();
}
public EmojiTextInputEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public EmojiTextInputEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
super.setKeyListener(getEmojiEditTextHelper().getKeyListener(getKeyListener()));
}
@Override
public void setKeyListener(android.text.method.KeyListener keyListener) {
super.setKeyListener(getEmojiEditTextHelper().getKeyListener(keyListener));
}
@Override
public InputConnection onCreateInputConnection(@NonNull EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
return getEmojiEditTextHelper().onCreateInputConnection(inputConnection, outAttrs);
}
private EmojiEditTextHelper getEmojiEditTextHelper() {
if (emojiEditTextHelper == null) {
emojiEditTextHelper = new EmojiEditTextHelper(this);
}
return emojiEditTextHelper;
}
}