aboutsummaryrefslogtreecommitdiffstats
path: root/example/src
diff options
context:
space:
mode:
authorAnkush Sachdeva <sankush@yahoo.co.in>2015-01-09 20:01:46 +0530
committerAnkush Sachdeva <sankush@yahoo.co.in>2015-01-09 20:01:46 +0530
commit58545344199e6b291595bbd8fc3ab9169b4fcd62 (patch)
tree48b2e1bda70f5d681ce69325ae7e3a3a8790bcec /example/src
parent0f5fefe35b5b15338034a9f1928680b2d1ac3f66 (diff)
Added sample project
Diffstat (limited to 'example/src')
-rw-r--r--example/src/com/example/emojiconsample/MainActivity.java157
1 files changed, 157 insertions, 0 deletions
diff --git a/example/src/com/example/emojiconsample/MainActivity.java b/example/src/com/example/emojiconsample/MainActivity.java
new file mode 100644
index 0000000..247eb30
--- /dev/null
+++ b/example/src/com/example/emojiconsample/MainActivity.java
@@ -0,0 +1,157 @@
+package com.example.emojiconsample;
+
+import github.ankushsachdeva.emojicon.EmojiconEditText;
+import github.ankushsachdeva.emojicon.EmojiconGridView.OnEmojiconClickedListener;
+import github.ankushsachdeva.emojicon.EmojiconsPopup;
+import github.ankushsachdeva.emojicon.EmojiconsPopup.OnEmojiconBackspaceClickedListener;
+import github.ankushsachdeva.emojicon.EmojiconsPopup.OnSoftKeyboardOpenCloseListener;
+import github.ankushsachdeva.emojicon.emoji.Emojicon;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.PopupWindow.OnDismissListener;
+
+public class MainActivity extends Activity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ ListView lv = (ListView) findViewById(R.id.lv);
+ final ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this, R.layout.listview_row_layout);
+ lv.setAdapter(mAdapter);
+ final EmojiconEditText emojiconEditText = (EmojiconEditText) findViewById(R.id.emojicon_edit_text);
+ final View rootView = findViewById(R.id.root_view);
+ final ImageView emojiButton = (ImageView) findViewById(R.id.emoji_btn);
+ final ImageView submitButton = (ImageView) findViewById(R.id.submit_btn);
+
+ // Give the topmost view of your activity layout hierarchy. This will be used to measure soft keyboard height
+ final EmojiconsPopup popup = new EmojiconsPopup(rootView, this);
+
+ //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() {
+
+ @Override
+ public void onDismiss() {
+ changeEmojiKeyboardIcon(emojiButton, R.drawable.smiley);
+ }
+ });
+
+ //If the text keyboard closes, also dismiss the emoji popup
+ popup.setOnSoftKeyboardOpenCloseListener(new OnSoftKeyboardOpenCloseListener() {
+
+ @Override
+ public void onKeyboardOpen(int keyBoardHeight) {
+
+ }
+
+ @Override
+ public void onKeyboardClose() {
+ if(popup.isShowing())
+ popup.dismiss();
+ }
+ });
+
+ //On emoji clicked, add it to edittext
+ popup.setOnEmojiconClickedListener(new OnEmojiconClickedListener() {
+
+ @Override
+ public void onEmojiconClicked(Emojicon emojicon) {
+ emojiconEditText.append(emojicon.getEmoji());
+ }
+ });
+
+ //On backspace clicked, emulate the KEYCODE_DEL key event
+ 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);
+ }
+ });
+
+ // To toggle between text keyboard and emoji keyboard keyboard(Popup)
+ emojiButton.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+
+ //If popup is not showing => emoji keyboard is not visible, we need to show it
+ if(!popup.isShowing()){
+
+ //If keyboard is visible, simply show the emoji popup
+ if(popup.isKeyBoardOpen()){
+ popup.showAtBottom();
+ changeEmojiKeyboardIcon(emojiButton, R.drawable.ic_action_keyboard);
+ }
+
+ //else, open the text keyboard first and immediately after that show the emoji popup
+ else{
+ emojiconEditText.setFocusableInTouchMode(true);
+ emojiconEditText.requestFocus();
+ popup.showAtBottomPending();
+ final InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputMethodManager.showSoftInput(emojiconEditText, InputMethodManager.SHOW_IMPLICIT);
+ changeEmojiKeyboardIcon(emojiButton, R.drawable.ic_action_keyboard);
+ }
+ }
+
+ //If popup is showing, simply dismiss it to show the undelying text keyboard
+ else{
+ popup.dismiss();
+ }
+ }
+ });
+
+ //On submit, add the edittext text to listview and clear the edittext
+ submitButton.setOnClickListener(new OnClickListener() {
+
+ @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);
+ }
+
+}