Java
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
.idea Update the gradle plugin and gradle version Feb 7, 2018
app Releasing version 1.1 Sep 6, 2017
art Resizing image in readme Aug 30, 2017
docs Releasing version 1.1 Sep 6, 2017
emoji-scrapper Adding new android 7.0 icons Sep 6, 2017
emoticongifkeyboard Releasing version 1.1 Sep 6, 2017
emoticonpack-android7 Updated gradle files with package includes Sep 6, 2017
emoticonpack-android8 Updated gradle files with package includes Sep 6, 2017
emoticonpack-emojidex Updated gradle files with package includes Sep 6, 2017
emoticonpack-emojione Updated gradle files with package includes Sep 6, 2017
emoticonpack-facebook Updated gradle files with package includes Sep 6, 2017
emoticonpack-htc Updated gradle files with package includes Sep 6, 2017
emoticonpack-ios Updated gradle files with package includes Sep 6, 2017
emoticonpack-lg Updated gradle files with package includes Sep 6, 2017
emoticonpack-messenger Updated gradle files with package includes Sep 6, 2017
emoticonpack-samsung Updated gradle files with package includes Sep 6, 2017
emoticonpack-twitter Updated gradle files with package includes Sep 6, 2017
emoticonpack-windows10 Updated gradle files with package includes Sep 6, 2017
emoticonpack-windows8 Updated gradle files with package includes Sep 6, 2017
gifpack-giphy Releasing version 1.1 Sep 6, 2017
gifpack-tenor Releasing version 1.1 Sep 6, 2017
gradle Update the gradle plugin and gradle version Feb 7, 2018
.gitignore - Added HTC and. Android 7.0 in supported vendors. Sep 4, 2017
.travis.yml Fixing sdk 26.0.1 licences Sep 5, 2017
CONTRIBUTING.md - Adding emoticon regex Aug 29, 2017
IMPORT.md - Resolving mearge conflicts Sep 4, 2017
LICENSE Adding copyright information Aug 23, 2017
README.md Update README.md Sep 9, 2017
build.gradle Update the gradle plugin and gradle version Feb 7, 2018
gradle.properties Changing windows and android 8 module name and gradle dependency Sep 4, 2017
gradlew - Adding ios emoticons Aug 21, 2017
gradlew.bat Creating emoticons list Aug 18, 2017
proguard-rules-remove-logs.pro - Fixing TextView, EditText emoticon rendering. Aug 29, 2017
publish.sh Fixing bintray upload plugin Aug 31, 2017
settings.gradle - Adding travis integration Sep 5, 2017

README.md

EmoticonGIFKeyboard

Build Status Download API Javadoc Androidweekly AndroidDev Digest Android Arsenal

πŸ™Œ An advance Emoticons & GIF keyboard. πŸ™Œ

EmoticonGIFKeyboard is an easy to integrate, customizable and lightweight library to add support for emojis and GIFs.

Features:

  • Highly customizable.
  • Extremely lightweight πŸ‹. You only have to add the icon packs you want to use by adding extra dependency, so you don't have to add emoticon icons you don't want to use.
  • ❀ for Emoticons
    • More than 1400 emoticons. This library includes all the emoticons listed under Emoticons 6.0 standards.
    • 6 emoticons categories.
    • πŸ” Search emoticons by their name or meaning.
    • Add you favourite emoticons icon theme (e.g ios, google, samsung emoticons) by adding readily available 13 different emoticon icon packs.
  • ❀ for GIFs
    • Displays trending GIFs for batter suggestion.
    • πŸ” Search GIFs based on the content and meaning.
    • Select your favourite GIF provider (e.g. Giphy, Tenor) by adding available GIF packs.
  • Custom widgets (e.g. EmoticonTextView, EmoticonEditText and EmoticonButton) to render custom emoticon icons throughout application.
  • Easily disable emoticons or GIF functionality if you don't want.

How to import this library?

  • Gradle Dependency:

    • Add below lines to app/build.gradle file of your project.
    dependencies {
        compile 'com.kevalpatel2106:emoticongifkeyboard:1.1'
    }
  • To integrate using maven visit this page.

How to use this EmoticonGIFKeyboard?

  • Prepare emoticons configuration.

    • Create EmoticonConfig to configure emoticons.
    • Set the custom emoticon icon provider using EmoticonConfig#setEmoticonProvider(). If you don't set any icon provider here, library will render system emoticons. You can pic custom emoticon icons from here.
    • Set the EmoticonSelectListener using EmoticonConfig#setEmoticonSelectListener(). This will notify you when user selects any emoticon from list or user preses back button.
    EmoticonGIFKeyboardFragment.EmoticonConfig emoticonConfig = new EmoticonGIFKeyboardFragment.EmoticonConfig()
            .setEmoticonProvider(IosEmoticonProvider.create())
            /*
              NOTE: The process of removing last character when user preses back space will handle
              by library if your edit text is in focus.
             */
            .setEmoticonSelectListener(new EmoticonSelectListener() {
    
                @Override
                public void emoticonSelected(Emoticon emoticon) {
                    //Do something with new emoticon.
                }
    
                @Override
                public void onBackSpace() {
                    //Do something here to handle backspace event.
                    //The process of removing last character when user preses back space will handle
                    //by library if your edit text is in focus.
                }
            });
  • Prepare GIF configuration.

    • Set the desired GIF provider by passing desired GIFProvider in constructor GIFConfig(). Here is the list of supported GIF providers. It is required to set GIF provider before adding fragment into container.
    • Implement GIF select listener using GIFConfig#setGifSelectListener(). This will notify you when user selects new GIF.
    //Create GIF config
    EmoticonGIFKeyboardFragment.GIFConfig gifConfig = new EmoticonGIFKeyboardFragment
    
            /*
              Here we are using GIPHY to provide GIFs. Create Giphy GIF provider by passing your key.
              It is required to set GIF provider before adding fragment into container.
             */
            .GIFConfig(GiphyGifProvider.create(this, "564ce7370bf347f2b7c0e4746593c179"))
            .setGifSelectListener(new GifSelectListener() {
                @Override
                public void onGifSelected(@NonNull Gif gif) {
                    //Do something with the selected GIF.
                    Log.d(TAG, "onGifSelected: " + gif.getGifUrl());
                }
            });
  • Add EmoticonGIFKeyboardFragment.

    • Create new EmoticonGIFKeyboardFragment by passing EmoticonConfig and GIFConfig. If you pass null to EmoticonConfig, emoticon functionality will be disabled. Also, if you pass GIFConfig as null, GIF functionality will be disabled.
    • Add the generated fragment to the container.
    EmoticonGIFKeyboardFragment emoticonGIFKeyboardFragment = EmoticonGIFKeyboardFragment
            .getNewInstance(findViewById(R.id.keyboard_container), emoticonConfig, gifConfig);
    
    //Adding the keyboard fragment to keyboard_container.
    getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.keyboard_container, EmoticonGIFKeyboardFragment)
            .commit();
  • Open/Close the keyboard and handle back button press.

    • Open keyboard view by calling EmoticonGIFKeyboardFragment#open() and close it by calling EmoticonGIFKeyboardFragment#close().
    • Handle back button press events by using EmoticonGIFKeyboardFragment#handleBackPressed() in your activity.
      @Override
      public void onBackPressed() {
        if (!mEmoticonGIFKeyboardFragment.handleBackPressed())
            super.onBackPressed();
      }

Demo

Emoticons GIFs
Emoticon Demo GIF Demo
Only Emoticons Only GIFs
Only Emoticons Only GIFs
Search Emoticons Search GIFs
Only Emoticons Only GIFs

Emoticon icon packs

Icon Emoticon Pack Gradle Dependency Version
Grinning Emoji Apple compile 'com.kevalpatel2106:emoticonpack-ios:<latest> Download
Grinning Emoji Android 7.0 compile 'com.kevalpatel2106:emoticonpack-android7:<latest> Download
Grinning Emoji Android 8.0 compile 'com.kevalpatel2106:emoticonpack-android8:<latest> Download
Grinning Emoji Samsung compile 'com.kevalpatel2106:emoticonpack-samsung:<latest> Download
Grinning Emoji HTC compile 'com.kevalpatel2106:emoticonpack-htc:<latest> Download
Grinning Emoji LG compile 'com.kevalpatel2106:emoticonpack-lg:<latest> Download
Grinning Emoji Windows 8.1 compile 'com.kevalpatel2106:emoticonpack-windows8:<latest> Download
Grinning Emoji Windows 10 compile 'com.kevalpatel2106:emoticonpack-windows10:<latest> Download
Grinning Emoji Twitter compile 'com.kevalpatel2106:emoticonpack-twitter:<latest> Download
Grinning Emoji Facebook compile 'com.kevalpatel2106:emoticonpack-facebook:<latest> Download
Grinning Emoji Messenger compile 'com.kevalpatel2106:emoticonpack-messenger:<latest> Download
Grinning Emoji Emojidex compile 'com.kevalpatel2106:emoticonpack-emojidex:<latest> Download
Grinning Emoji EmojiOne compile 'com.kevalpatel2106:emoticonpack-emojione:<latest> Download

GIF Packs

GIF Provider Module Dependency Version
giphy.com Giphy compile 'com.kevalpatel2106:gifpack-giphy:<latest> Download
tenor.com Tenor compile 'com.kevalpatel2106:gifpack-tenor:<latest> Download

Acknowledgements

How to contribute?

Questions?πŸ€”

Hit me on twitter Twitter

License

Copyright 2017 Keval Patel

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.