Add emojicon in between text when required; fixes#19

This commit is contained in:
Ankush Sachdeva 2015-05-09 01:07:49 +05:30
parent 5854534419
commit 7284b7d423

View file

@ -39,26 +39,6 @@ public class MainActivity extends Activity {
//Will automatically set size according to the soft keyboard size
popup.setSizeForSoftKeyboard();
//Set on emojicon click listener
popup.setOnEmojiconClickedListener(new OnEmojiconClickedListener() {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
emojiconEditText.append(emojicon.getEmoji());
}
});
//Set on backspace click listener
popup.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);
emojiconEditText.dispatchKeyEvent(event);
}
});
//If the emoji popup is dismissed, change emojiButton to smiley icon
popup.setOnDismissListener(new OnDismissListener() {
@ -88,7 +68,19 @@ public class MainActivity extends Activity {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
emojiconEditText.append(emojicon.getEmoji());
if (emojiconEditText == null || emojicon == null) {
return;
}
int start = emojiconEditText.getSelectionStart();
int end = emojiconEditText.getSelectionEnd();
if (start < 0) {
emojiconEditText.append(emojicon.getEmoji());
} else {
emojiconEditText.getText().replace(Math.min(start, end),
Math.max(start, end), emojicon.getEmoji(), 0,
emojicon.getEmoji().length());
}
}
});
@ -98,7 +90,7 @@ public class MainActivity extends Activity {
@Override
public void onEmojiconBackspaceClicked(View v) {
KeyEvent event = new KeyEvent(
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
emojiconEditText.dispatchKeyEvent(event);
}
});
@ -137,21 +129,21 @@ public class MainActivity extends Activity {
});
//On submit, add the edittext text to listview and clear the edittext
submitButton.setOnClickListener(new OnClickListener() {
submitButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String newText = emojiconEditText.getText().toString();
emojiconEditText.getText().clear();
mAdapter.add(newText);
mAdapter.notifyDataSetChanged();
@Override
public void onClick(View v) {
String newText = emojiconEditText.getText().toString();
emojiconEditText.getText().clear();
mAdapter.add(newText);
mAdapter.notifyDataSetChanged();
}
});
}
});
}
private void changeEmojiKeyboardIcon(ImageView iconToBeChanged, int drawableResourceId){
iconToBeChanged.setImageResource(drawableResourceId);
}
private void changeEmojiKeyboardIcon(ImageView iconToBeChanged, int drawableResourceId){
iconToBeChanged.setImageResource(drawableResourceId);
}
}