Simple-Keyboard icon indicating copy to clipboard operation
Simple-Keyboard copied to clipboard

added emoji picker with the features to search emoji and get recent used emoji

Open rishabhhgupta opened this issue 1 year ago β€’ 1 comments

I used androidx emojiPicker library that have that have only features of get the recent used emoji

Changes in the androidx emojiPicker libarary

After creating a module of emojiPicker (it has license of apache 2.0)

  1. Update the emoji csv file(androidx/emoji2/emojipicker/res/raw) with search terms of each emoji example- πŸ‘‹,[πŸ‘‹πŸ»πŸ‘‹πŸΌπŸ‘‹πŸ½πŸ‘‹πŸΎπŸ‘‹πŸΏ], [hellow,hey] (first column is main emoji, second is their variants and third is their search terms)

  2. update method buildEmojiPickerItems() inside EmojiPickerView.kt file, buildEmojiPickerItems() create list like recent used emoji and search text terms matches create a emoji list

Changes in the simple keyboard app

  1. Replace com.simplemobiletools.commons.views.MyRecyclerView of id emojis_list to EmojiPickerView and create a top toolbar androidx.appcompat.widget.AppCompatAutoCompleteTextView for emoji search

  2. create a custom Inputconnection for AppCompatAutoCompleteTextView , i can also use androidx.appcompat.widget.Searchview, but then custom Input connection is not working properly I try alot

  3. I update the minSDK to 24 because some of the emoji is not working in minSDK level 23

  4. when ever user focused on AppCompatAutoCompleteTextView, a companion object of variable name "searching" of class SimpleKeyboardIME is become true and OtherInputConnection()(it used to change inputconnection) class is initilise to the AppCompatAutoCompleteTextView, so whenever any key is pressed it check the searching is true or false(happen at getMyCurrentInputConnection()), if it's true then inputconnection is change to OtherInputConnection if it is false then change to currentInputConnection, changes to searching=false happens whenonCreateInputView() is called and onbackpressed of emojiview (xml id name "emoji_palette_close" ) is called

  5. Changes in the updateShifState()- it's assign as start a text with first capitalise character, but when the inputconnection is change, updateShiftState() find that currentInputConnection is never started so it make the every character capitalise, so whenever inputconnection change to otherinputconnection it didn't check the currentInputConnection first character capitalise

  6. Added features changes background colors and text colors according to the theme(dark mode, lightmode) user set

video link to showcase all the new features

https://drive.google.com/file/d/1MxZn8iArlETBy9MdubU7w0XT9m0vKLc2/view?usp=drivesdk

rishabhhgupta avatar Sep 04 '24 09:09 rishabhhgupta

These apps have been sold to an adware company, submit your PR to https://github.com/FossifyOrg/Keyboard

tenextractor avatar Nov 12 '24 19:11 tenextractor