/Emoji

A simple library to add Emoji support to your Android Application

Primary LanguageJavaApache License 2.0Apache-2.0

Emoji

Build Status Codecov Android Arsenal License

A simple library to add Emoji support to your Android app. In a PopupWindow Emojis can be chosen. In order to edit and display text with Emojis this library provides public APIs: EmojiEditText & EmojiTextView.

Normal Keyboard

Emoji Keyboard

Recent Emojis

Setup

build.gradle

compile 'com.vanniktech:emoji:0.3.0'
compile 'com.vanniktech:emoji:0.4.0-SNAPSHOT'

Modules are located on Maven Central.

In order to use the SNAPSHOT version please add:

repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}

Example

Declare your EmojiEditText in your layout xml file.

<com.vanniktech.emoji.EmojiEditText
    android:id="@+id/emojiEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionSend"
    android:inputType="textCapSentences|textMultiLine"
    android:maxLines="3"
    app:emojiSize="26sp"/>

To open the EmojiPopup execute the code above:

final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(rootView).build(emojiEditText);
emojiPopup.toggle(); // Toggles visibility of the Popup
emojiPopup.dismiss(); // Dismisses the Popup
emojiPopup.isShowing(); // Returns true when Popup is showing

The rootView is the rootView of your layout xml file which will be used for calculating the height of the keyboard. emojiEditText is the EmojiEditText that you declared in your layout xml file.

Displaying Emojis

<com.vanniktech.emoji.EmojiTextView
    android:id="@+id/emojiTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Just use the EmojiTextView and call setText with the String you got from EmojiEditText and you're done.

Listeners

On the builder for the EmojiPopup you are able to declare several listeners.

setOnSoftKeyboardCloseListener(final OnSoftKeyboardCloseListener listener);
setOnEmojiClickedListener(final OnEmojiClickedListener listener);
setOnSoftKeyboardOpenListener(final OnSoftKeyboardOpenListener listener);
setOnEmojiPopupShownListener(final OnEmojiPopupShownListener listener);
setOnEmojiPopupDismissListener(final OnEmojiPopupDismissListener listener);
setOnEmojiBackspaceClickListener(final OnEmojiBackspaceClickListener listener);

Custom recent Emoji implementation

You can pass your own implementation of the recent Emojis. Just let one of your classes implement the RecentEmoji interface and pass it when you're building the EmojiPopup:

setRecentEmoji(yourClassThatImplementsRecentEmoji)

If no instance or a null instance is set the default implementation will be used.

Check out the sample project to get more information.

Proguard

No configuration needed.

License

Copyright (C) 2016 Vanniktech - Niklas Baudy

Licensed under the Apache License, Version 2.0