- Icon image view now recognizes the
android:state_checked
state attribute, allowing the user to specify state-dependant attributes withicdIconStyle
. As such, icon tint is now specified withtint
internally, buticdIconColor
andicdSelectedIconColor
were kept for backward compatibility. icdIconColor
now only works on API 23 if the referenced value is a ColorStateList (i.e.<selector>
). This is due to a probable bug with nested color state lists (they weren't nested before so they was no issue), see this issue.- Added
icdIconForegroundStyle
used to show the ripple on top of the icon image view. It was previously shown using the ImageView's background, so now icons can have a custom background as well as the ripple. String.normalize()
extension function now has internal visibility.
- Fixed crash when using raw color value for
icdIconColor
andicdSelectedIconColor
. - Fixed search EditText state sometimes lost when dialog is recreated.
- Updated Kotlin version to 1.3.72.
- Added
src
attribute to the<icon>
tag to allow specifying an external drawable resource ID instead of path data. (#29) - Fixed NPE in icon dialog when icon pack contained icons without a category.
- Fixed icon drawable sharing mutable state with all drawables of the same icon. This caused problems where tinting one drawable would tint all of them.
- Updated material components version to stable 1.0.0.
- Added progress bar in dialog for when icon pack is not loaded yet.
- Fixed
IconDialogSettings.dialogTitle
having no effect.
- Complete rewrite in Kotlin with MVP architecture.
- Now based on Google's Material Components with out of the box support for dark theme.
- Added support for API 14.
- Icon packs
- Icons are no longer part of the library, they are contained in icon packs, which can
be downloaded as separate artifacts. Available icon packs:
- Default: contains the icons from previous version.
- Font Awesome: https://fontawesome.com/icons, solid variant only.
- Material Design Icons: https://github.com/Templarian/MaterialDesign, minus brand and outline icons.
- Icon packs loading is delegated to the user of the library.
IconHelper
was replaced withIconPackLoader
which loads icon packs from XML. User must load icon packs appropriatedly (for example on application start, asynchronously) and store them. - Overriding icons is now done by specifying a parent icon pack and defining icons or categories with existing IDs.
- Icons are no longer part of the library, they are contained in icon packs, which can
be downloaded as separate artifacts. Available icon packs:
- Icons
- XML root element for tags is now
<icons>
instead of<list>
. - Icon viewport dimensions can be defined per icon pack or on individual icons.
- XML root element for tags is now
- Tags ("labels" previously)
- Tags no longer have a value or aliases, they only have a list of values.
- Tag references in XML are no longer supported.
- XML root element for tags is now
<tags>
instead of<list>
.
- Dialog no longer uses deprecated
setRetainInstance(true)
. - Added
IconDialogSettings
class to configure the dialog appearance and behavior. - Removed a few attributes for customization, like dialog button texts.
- Various icon filter changes. Sorting by category is now delegated to icon dialog.
- Replaced all IntDefs with enums.
- Added support for API 16.
- Added a parameter with the dialog instance to the callback method.
- Spanish translation, thanks to hieudev.
- Added a parameter with the instance of the IconHelper in
LoadCallback.onDataLoaded
.
- Prevented AAPT bug where category string references weren't changed to an ID.
- Added dismiss listener.
- Improved nullity annotations for Kotlin.
- Updated 1 icon: wind-turbine (251).
- Support for API 19
- German translation
-
Migrated to AndroidX
-
Selecting an icon with keyboard open after search now closes it.
-
Updated 8 icons: emoticon-tongue (15), network-access (187), home-insurance (298), bread-slice (407), bullhorn (577), tortoise (616), turtle (617), link (827).
-
Added 18 icons: barn, basketball-hoop, parachute, bulldozer, seatbelt, chat-round, crystal-ball, emoticon-angry, emoticon-cry, emoticon-kiss, emoticon-wink, shoe-formal, shoe-heel, fountain-pen, maple-leaf, sheep, measuring-tape, telescope.
-
Added 19 labels.
dataChanged
field is now updated asynchronously in IconHelper
- Fixed library dependencies not being added to the project
- Removed unused dependencies
-
Breaking change: IconHelper data is now loaded asynchronously (was previously loaded on the UI thread and it took 200 - 600 ms). If trying to get icon, label or category before data is loaded, null will be returned. When data is loaded (after the initial call to
getInstance
,addExtraIcons
orreloadLabels
), allLoadCallback
s attached withaddLoadCallback
will be called. If a callback is attached when data is already loaded, it is automatically called. A callback is removed after being called once. To avoid NPEs, do not use anyget
method if you are unsure whether data is loaded or not. -
Icon dialog shows ProgressBar if data isn't loaded
-
Prefixed all IDs of the library's views with
icd_
-
Added 17 icons: ampersand, balloon, bank-in, bank-out, bank-transfer, dishwasher, doctor, egg, easter-egg, helicopter, label, safe, smog, solar-power, spray, t-shirt, import
-
Updated 2 icons: router (218), file-download (980)
-
Added 22 labels: ampersand, balloon, bottle, deposit, dishwasher, doctor, easter, egg, import, label, nurse, pollution, power_state, programming_language, renewable_energy, safe, smog, smoke, solar_power, tshirt, wind_power, withdraw
-
Removed 1 label: tag
- Fixed crash on API 21-22 when opening dialog
- Fixed search terms not getting normalized
- Search query is now whitespace trimmed
- Added 21 icons (1010 icons total): ballot, braille, brain, cassette, currency-php, current-ac, current-dc, desk-lamp, dog, dog-side, tulip, fountain, hand, horseshoe, lighthouse, lighthouse-on, pirate, subtitles, toggle-switch, camera-vintage, vote
- Updated 11 icons: medal (60), tumble dryer (92), silverware (452), angle (666), plus-minus (672), exponent (676), not-equal (678), knife-1 (758), knife-2 (760), arrow-unmerge (864), table-search (975)
- Added 21 labels: accessibility, ballot, braille, brain, cassette, curr_php, current_ac, current_dc, election, form, fountain, horseshoe, lighthouse, park, pirate, subtitles, switch, toggle, tulip, vote, wheelchair
- Added
IconHelper.getIconCount()
- Added Portuguese translation
- Added IconView, wrapper around ImageView to set icons by XML
- Fixed
IconHelper.reloadLabels()
not working
- Added 12 icons, updated 4 icons.,
- Added convenience method `setSelectedIcon(int iconId)`` for selecting a single icon
- Change
setAllowMultipleSelection
tosetMaxSelection
- Removed BroadcastReceiver for language change, it was not unregistered
- Search bar now has search action and keyboard is hidden on enter.
- Synchronized some methods
- Initial release
- Customizable styles for almost every part of the dialog
- Many available options
- Single or multiple selection
- Enable search and search language
- Show category headers, sticky headers
- Show clear selection button
- Disable speicific categories and icons
- Ability to customize search algorithm and icon sorting
- Ability to add extra categories and icons with labes, can overwrite default ones
- Dialog is automatically restored on configuration change