Emoji v0.10.0 Release Notes

Release Date: 2022-05-11 // almost 2 years ago
  • ๐Ÿš€ This release has quite a few internal and external changes. Most noticeably, everything has been converted to Kotlin. Please also have a look at the sample app for the breaking changes as well as the new features.

    โšก๏ธ Big thanks to @rubengees for updating to emojis 14.0 & @mario for reviews!

    • โšก๏ธ Update dependencies. #772 (vanniktech)
    • ๐Ÿ‘‰ Use android.namespace. #771 (vanniktech)
    • ๐Ÿ‘‰ Use Gradle's Version Catalog. #770 (vanniktech)
    • Disable PMD as we're Kotlin only now. #769 (vanniktech)
    • ๐Ÿšš Move Emoji interface to com.vanniktech.emoji #768 (vanniktech)
    • EmojiCategory now wants List<Emoji> and also ditch CategoryUtils. #767 (vanniktech)
    • ๐Ÿ‘‰ Use Kotlin's sortWith instead of java.util.Comparator. #766 (vanniktech)
    • EmojiManager#verifyInstalled is now internal. #765 (vanniktech)
    • ๐Ÿšš Move EmojiCategory interface to com.vanniktech.emoji #764 (vanniktech)
    • ๐Ÿ‘‰ Use Kotlin's Regex to search for Emojis. #763 (vanniktech)
    • Inline EmojiEditable interface and provide extension functions. #762 (vanniktech)
    • ๐Ÿšš Generate toString()/equals()/hashcode() for Emoji implementations and remove data keyword. #761 (vanniktech)
    • EmojiVariantPopup: Make scrollable. #760 (vanniktech)
    • โฌ‡๏ธ Reduce Java footprint by using Kotlin equivalents. #759 (vanniktech)
    • Emoji classes are now parcelable. #757 (vanniktech)
    • Let generated Emoji classes be data class. #756 (vanniktech)
    • Emoji generate directly unicode instead of internal code points. #755 (vanniktech)
    • Emoji shortcodes is now a List<String> #754 (vanniktech)
    • Generate GoogleCompatEmoji class. #753 (vanniktech)
    • Emoji variants is now a List<Emoji> #752 (vanniktech)
    • Emoji is now an interface. #751 (vanniktech)
    • ๐Ÿ“ฆ Recent package which contains everything for recenting. #750 (vanniktech)
    • ๐Ÿ“ฆ Variant package which contains everything for varianting. #749 (vanniktech)
    • ๐Ÿ“ฆ Search package which contains everything for searching. #748 (vanniktech)
    • โœ‚ Remove Emoji#length. #747 (vanniktech)
    • Inline Emoji#hasVariants. #746 (vanniktech)
    • Open MaterialEmojiLayoutFactory. #745 (vanniktech)
    • ๐Ÿ“ฆ Move internals into internal package. #744 (vanniktech)
    • NoVariantEmoji in case you don't want variant selection. #743 (vanniktech)
    • Emoji class is now abstract. #742 (vanniktech)
    • โœ‚ Remove Emoji#resource. #741 (vanniktech)
    • Emoji class only use one constructor. #740 (vanniktech)
    • ๐Ÿšš Emoji remove constructor with single code point. #739 (vanniktech)
    • ๐Ÿ‘‰ Use Point instead of CacheKey. #738 (vanniktech)
    • Emoji search also append whitespace and auto close after clicking an entry. #737 (vanniktech)
    • โšก๏ธ Update copyrights. #736 (vanniktech)
    • ๐Ÿ’… emoji-material: Use defStyleAttr constructor with default value. #735 (vanniktech)
    • ๐Ÿ‘ Allow subclasses from EmojiDisplayable & EmojiEditable components. #734 (vanniktech)
    • ๐Ÿ”Œ Use base plugin for publishing. #733 (vanniktech)
    • Sample: Face lift and regenerate screenshots. #732 (vanniktech)
    • ๐Ÿ— Deprecate EmojiPopup.Builder in favor of EmojiPopup constructor. #731 (vanniktech)
    • Hide more APIs in emoji module. #730 (vanniktech)
    • ๐Ÿ”จ Refactoring: Move SearchInPlaceTrait into traits package. #729 (vanniktech)
    • โฌ‡๏ธ Drop Java Support (indirectly by removing @JvmField annotations) #728 (vanniktech)
    • ๐Ÿ‘• Lint: Check everything. #727 (vanniktech)
    • ๐Ÿ— Let build fail if there are any warnings. #726 (vanniktech)
    • emoji-google is now Kotlin only. #725 (vanniktech)
    • emoji-facebook is now Kotlin only. #724 (vanniktech)
    • emoji-ios is now Kotlin only. #723 (vanniktech)
    • emoji-google-compat is now Kotlin only. #722 (vanniktech)
    • emoji-twitter is now Kotlin only. #721 (vanniktech)
    • ๐Ÿ‘‰ Use Vector Drawable for recent icon. #720 (vanniktech)
    • Avoid generating accessor method. #719 (vanniktech)
    • ๐ŸŒฒ Sample: Use Timber for logging. #718 (vanniktech)
    • โœ‚ Remove deprecated systemWindowInsetBottom usage. #717 (vanniktech)
    • Hide more APIs in each provider module. #716 (vanniktech)
    • โœจ Enhance generated code. #715 (vanniktech)
    • โœ‚ Remove deprecated stableInsetBottom usage. #714 (vanniktech)
    • ๐Ÿšš Make Utils internal and move EditText & TextView extensions into their own file. #713 (vanniktech)
    • Convert GoogleCompatEmoji class to Kotlin. #712 (vanniktech)
    • Generate CategoryChunk in Kotlin. #711 (vanniktech)
    • Generate CategoryUtils class in Kotlin. #710 (vanniktech)
    • Generate Emoji Class in Kotlin. #709 (vanniktech)
    • Generate GoogleCompatEmojiProvider as Kotlin. #708 (vanniktech)
    • Generate all EmojiProvider implementations in Kotlin. #707 (vanniktech)
    • Public TextView#init. #706 (vanniktech)
    • Generate all EmojiCategory implementations in Kotlin. #705 (vanniktech)
    • Inline Utils#asListWithoutDuplicates. #704 (vanniktech)
    • ๐Ÿ‘Œ Improve updating documentation. #703 (vanniktech)
    • ๐Ÿšš EmojiEditable remove backspace & input function and instead provide public extension functions for all EditText. #702 (vanniktech)
    • Convert GoogleCompatEmojiDrawable class to Kotlin. #701 (vanniktech)
    • EmojiReplacer fallback can be optional. #700 (vanniktech)
    • Public EditText.inputEmoji. #699 (vanniktech)
    • โœ‚ Remove EmojiPopup#setPopupWindowHeight #698 (vanniktech)
    • emoji is now Kotlin only. #697 (vanniktech)
    • ๐Ÿ‘• Unify lint.xml files. #696 (vanniktech)
    • Public EditText.dispatchBackspace. #695 (vanniktech)
    • Convert Utils class to Kotlin. #694 (vanniktech)
    • Convert EmojiPopup class to Kotlin. #693 (vanniktech)
    • โšก๏ธ Update emojis to version 14.0 #691 (rubengees)
    • Convert EmojiManager class to Kotlin. #689 (vanniktech)
    • ๐Ÿ’ป Inline EmojiInput interface into EmojiEditable so that all UI components benefit from traits. #688 (vanniktech)
    • EmojiEditable: Emoji Input is always non-null. #687 (vanniktech)
    • EmojiEditable: Consistent isEditMode handling. #686 (vanniktech)
    • Convert Emoji class to Kotlin. #685 (vanniktech)
    • ๐Ÿ”จ Refactoring: Move Kotlin functions to top level and deprecate old mechanisms. #684 (vanniktech)
    • Convert EmojiUtils class to Kotlin. #683 (vanniktech)
    • app is now Kotlin only. #682 (vanniktech)
    • emoji-material is now Kotlin only. #681 (vanniktech)
    • Convert EmojiMultiAutoCompleteTextView class to Kotlin. #679 (vanniktech)
    • Convert EmojiEditText class to Kotlin. #678 (vanniktech)
    • Convert EmojiMaterialCheckBox class to Kotlin. #677 (vanniktech)
    • Convert EmojiMaterialRadioButton class to Kotlin. #676 (vanniktech)
    • Convert EmojiTextInputEditText class to Kotlin. #675 (vanniktech)
    • Convert EmojiMaterialButton class to Kotlin. #674 (vanniktech)
    • Convert EmojiButton class to Kotlin. #673 (vanniktech)
    • Convert EmojiAutoCompleteTextView class to Kotlin. #672 (vanniktech)
    • Convert EmojiCheckbox class to Kotlin. #671 (vanniktech)
    • Convert EmojiTextView class to Kotlin. #670 (vanniktech)
    • ๐Ÿ”จ Refactoring: Replace disableKeyboardInput with installDisableKeyboardInput and handle more cases. #669 (vanniktech)
    • Convert EmojiView class to Kotlin. #668 (vanniktech)
    • โœ… ScreenshotsTest: Use DemoModeRule for better screenshots. #667 (vanniktech)
    • โœ… Convert ScreenshotsTest class to Kotlin. #666 (vanniktech)
    • ๐Ÿ”จ Refactoring: Use espresso utils, get rid of assertj & more. #665 (vanniktech)
    • Convert MainActivity class to Kotlin. #664 (vanniktech)
    • Convert MainDialog class to Kotlin. #663 (vanniktech)
    • Convert EmojiPagerAdapter class to Kotlin. #662 (vanniktech)
    • Bring back AsyncTask as Executors sometimes don't work. #661 (vanniktech)
    • Convert EmojiVariantPopup class to Kotlin. #660 (vanniktech)
    • ๐Ÿ”จ Refactoring: Use fun interface to functional interfaces. #659 (vanniktech)
    • Convert PageTransformer class to Kotlin. #658 (vanniktech)
    • Convert CustomViewActivity class to Kotlin. #657 (vanniktech)
    • Convert EmojiApplication class to Kotlin. #656 (vanniktech)
    • Convert ChatAdapter class to Kotlin. #655 (vanniktech)
    • Convert EmojiImageView class to Kotlin. #654 (vanniktech)
    • Convert RecentEmojiManager class to Kotlin. #653 (vanniktech)
    • Convert EmojiSpan class to Kotlin. #652 (vanniktech)
    • Convert GridView classes to Kotlin. #651 (vanniktech)
    • Convert MaterialEmojiLayoutFactory class to Kotlin. #650 (vanniktech)
    • ๐Ÿ”จ Refactoring: Extract inset variables. #649 (vanniktech)
    • ๐Ÿ”จ Refactoring: Move MaximalNumberOfEmojisInputFilter into inputfilters package. #648 (vanniktech)
    • โœ‚ Remove deprecated AsyncTask with Executors. #647 (vanniktech)
    • Convert MaximalNumberOfEmojisInputFilter class to Kotlin. #646 (vanniktech)
    • Convert VariantEmojiManager class to Kotlin. #645 (vanniktech)
    • Convert EmojiArrayAdapter class to Kotlin. #644 (vanniktech)
    • ๐Ÿ”จ Refactorign: Move OnlyEmojisInputFilter into inputfilters package. #643 (vanniktech)
    • ๐Ÿ’ป UI Components: Properly init them using their own StylableRes. #642 (vanniktech)
    • Convert EmojiDisplayable interface to Kotlin. #641 (vanniktech)
    • Convert EmojiEditable interface to Kotlin. #640 (vanniktech)
    • Convert EmojiResultReceiver class to Kotlin. #639 (vanniktech)
    • โœ… Convert all Tests to Kotlin. #638 (vanniktech)
    • ๐Ÿ”จ Refactoring: Start moving most of the Trait infrastructure into its own package. #637 (vanniktech)
    • ๐Ÿ“‡ Rename forceSingleEmoji() to installForceSingleEmoji() and leverage EmojiTrait mechanism. #636 (vanniktech)
    • Convert SingleEmojiTrait class to Kotlin. #635 (vanniktech)
    • SearchInPlaceTrait: Allow searching for emojis. #634 (vanniktech)
    • Search Dialog: Tint Edit Text cursor and handles correctly. #633 (vanniktech)
    • Emoji Search: Highlight which part of the shortcode matches the query. #632 (vanniktech)
    • Search RecyclerView limit height to 300dp. #631 (vanniktech)
    • In place dialog when typing : in an EditText constructed from EmojiPopup. #630 (vanniktech)
    • Sample: Showcase EmojiView on it's own without a keyboard. #629 (vanniktech)
    • ๐Ÿšš Internal: EmojiView rearrange a few things and move EmojiPopUp#dismiss behavior into EmojiView#tearDown. #628 (vanniktech)
    • Internal: EmojiView prepare for public usage. #627 (vanniktech)
    • Convert EmojiForceable interface to Kotlin. #626 (vanniktech)
    • Convert EmojiProvider interface to Kotlin. #625 (vanniktech)
    • Convert EmojiInformation class to Kotlin. #624 (vanniktech)
    • Convert EmojiLayoutFactory class to Kotlin. #623 (vanniktech)
    • Convert EmojiRange class to Kotlin. #622 (vanniktech)
    • โœ‚ Remove View parameter from OnEmojiBackspaceClickListener interface. #621 (vanniktech)
    • โœ‚ Remove EmojiImageView parameter from OnEmojiClickListener interface. #620 (vanniktech)
    • Convert OnSoftKeyboardOpenListener interface to Kotlin. #619 (vanniktech)
    • Convert OnSoftKeyboardCloseListener interface to Kotlin. #618 (vanniktech)
    • Convert OnEmojiPopupShownListener interface to Kotlin. #617 (vanniktech)
    • Convert OnEmojiPopupDismissListener interface to Kotlin. #616 (vanniktech)
    • Convert OnEmojiLongClickListener interface to Kotlin. #615 (vanniktech)
    • Convert OnEmojiClickListener interface to Kotlin. #614 (vanniktech)
    • Convert OnEmojiBackspaceClickListener interface to Kotlin. #613 (vanniktech)
    • Convert CacheKey class to Kotlin. #612 (vanniktech)
    • Convert EmojiCategory interface to Kotlin. #611 (vanniktech)
    • Convert RepeatListener class to Kotlin. #610 (vanniktech)
    • NoSearchEmoji which allows you to hide the search feature. #609 (vanniktech)
    • Convert OnlyEmojisInputFilter class to Kotlin. #608 (vanniktech)
    • Convert NoRecentEmoji class to Kotlin. #607 (vanniktech)
    • Convert EmojiReplacer interface to Kotlin. #606 (vanniktech)
    • Convert VariantEmoji interface to Kotlin. #605 (vanniktech)
    • Convert RecentEmoji interface to Kotlin. #604 (vanniktech)
    • SearchEmoji interface which allows customizing the search algorithm. #603 (vanniktech)
    • Internal: EmojiView hide backspace when EditText is null and no Backspace listener is set. #602 (vanniktech)
    • Internal: EmojiView EditText is optional. #601 (vanniktech)
    • Internal: EmojiView handles backspace on it's own. #600 (vanniktech)
    • โœ‚ Delete JaCoCo as CodeCov has been turned off for quite a while. #599 (vanniktech)
    • ๐Ÿšš Sample: Move custom view sample from Menu to Button. #598 (vanniktech)
    • ๐Ÿšš Sample: Move dialog sample from Menu to Button to also showcase MaterialEmojiLayoutFactory. #597 (vanniktech)
    • ๐Ÿšš Sample: Move option to switch between Provider from Menu to Button. #596 (vanniktech)
    • Sample: Nuke MainActivityAutoCompleteTextView & MainActivityMultiAutoCompleteTextView (unused and only differ in one XML line, the View for entering Text + Emojis) #595 (vanniktech)
    • Internal: EmojiView gets setUp method. #594 (vanniktech)
    • Internal: EmojiView handles clicking on it's own. #593 (vanniktech)
    • ๐Ÿ— Internal: EmojiView is taking each dependency instead of EmojiPopup.Builder. #592 (vanniktech)
    • Sample: Fix Custom View and explain what it's actually doing. #591 (vanniktech)
    • ๐Ÿ‘‰ Make EmojiResultReceiver private. #590 (vanniktech)
    • Internal: EmojiView is now holding the EmojiVariantPopup. #589 (vanniktech)
    • ๐Ÿ›  Fix ANR when persisting Recent-& Variant emojis. #588 (vanniktech)
    • โœ‚ Remove library config file. #587 (vanniktech)
    • โšก๏ธ Update generator for new data source version #586 (rubengees)
    • Sample: Follow system setting for dark mode & fix dialog. #585 (vanniktech)
    • ๐Ÿ’ป Unified EmojiTheming which has all of the colors for each Emoji UI component. #584 (vanniktech)
    • Rename: color/emoji_divider to color/emoji_divider_color and attr/emojiDivider to attr/emojiDividerColor. #583 (vanniktech)
    • Rename: color/emoji_background to color/emoji_background_color and attr/emojiBackground to attr/emojiBackgroundColor. #582 (vanniktech)
    • Rename: color/emoji_icons to color/emoji_primary_color and attr/emojiIcons to attr/emojiPrimaryColor. #581 (vanniktech)
    • โšก๏ธ Update ktlint to 0.45.2 & disable Detekt. #580 (vanniktech)
    • ๐Ÿšš Inline emoji-kotlin into emoji module and remove emoji-kotlin module. #579 (vanniktech)
    • โž• Add failing test for isOnlyEmojis() #578 (vanniktech)
    • Stop using Gradle's subproject. #577 (vanniktech)
    • โšก๏ธ Update LeakCanary to 2.9.1 #576 (vanniktech)
    • โšก๏ธ Update Kotlin to 1.6.21 #575 (vanniktech)
    • Editorconfig file. #574 (vanniktech)
    • โž• Add EmojiTextInputEditText. #573 (vanniktech)
    • Emoji search icon next to categories, which allows to search emoji by name (english names only) #563 (vanniktech)