- All
with*
methods of theIconicsDrawable
were replaced with properties - Raw setters are now direct (int color, string, pixel values), all other properties were moved into extension functions to clean up the
IconicsDrawable
- The
IconcisDrawable
now depends on the ressources and theme, and tries to eliminate dependency on theContext
- All according methods were refactored to take Resources and Theme
- Use
IconcisDrawable
via XML for API 24+ .apply
is specialized and will not invalidate the drawable until all changes were made
Now libray is kotlin-first
- Font files
- Font's store now based on default way to store fonts. (moved from common assets to font-specific resource assets)
Iconics
- No context from now required. We get the application context via ContentProvider
Iconics.IconicsBuilder
- Renamed to
Iconics.Builder
- Removed
ctx(Context)
method
- Renamed to
IconicsDrawable
- Replaced all
*Res(int)
,*Px(int)
,*Dp(int)
method to useIconicsSize
andIconicsColor
classes instead - Constants
TOOLBAR_ICON_SIZE
andTOOLBAR_ICON_PADDING
moved toIconicsSize
- All getters now have property-syntax
- All producer-provided methods from Android-Iconics Kt are included in class and can return nullable value (value will be set only when not null)
enableShadowSupport(View)
moved toIconicsUtils
- Replaced all
- All
utils
classes and typeface libraries now can not be instantiated ITypeface
- Method
getTypeface(Context)
replaced with fieldrawTypeface
- Automatically retrieves raw font from file by provided
fontRes
(see GenericFont.kt if You wont to use old scheme)
- Method
- With the update of the community material icons, the amount of icons exceeded the allowed length of an enum. Thus it was split up in
CommunityMaterial.Icon
andCommunityMaterial.Icon2
if you use the icons via code, please use the depending enum.- The icons were split apart by the letter
h
. All icons starting froma
tog
are in theCommunityMaterial.Icon
enum, all icons fromh
toz
are in theCommunityMaterial.Icon2
enum.
- The icons were split apart by the letter
- Upgraded the library to use
androidX
dependencies. This means your project will need to depend onandroidX
dependencies too. If you still use appcompat please consider using a version older than v3.1.x. - Further details about migrating to androidX and a overview can be found on the official docs. https://developer.android.com/topic/libraries/support-library/refactor
- the attributes for the
IconicsMenuInflaterUtil
start now withico_
instead ofiiv_
- the
IconicsMenuInflaterUtil
was moved into thecore
module to simplify code
- The library-core was split apart into iconics-core and iconics-views to slim down the iconics-core and allow more advanced UI features in the iconics-views
- the core dep stays the same:
compile "com.mikepenz:iconics-core:2.9.0@aar"
- for all UI widgets add
compile "com.mikepenz:iconics-views:2.9.0@aar"
- Dropping support for API < 14. New
MinSdkVersion
is now 14
- there is now a new prefered solution to enable the Iconics features on Android base views like ImageViews, TextViews or all views which extend those.
- instead of wrapping the
baseContext
you should now define theIconicsLayoutInflater
as defaultLayoutInflater
. This will also bring Calligraphy compatiblity (or to other libs which wrap thebaseContext
) - this requires an
Activity
extending theAppCompatActivity
or implementing theAppCompatDelegate
@Override
protected void onCreate(Bundle savedInstanceState) {
LayoutInflaterCompat.setFactory(getLayoutInflater(), new IconicsLayoutInflater(getDelegate()));
//...
super.onCreate(savedInstanceState);
//...
}
- if you do not wrap the
BaseContext
with a different lib, or do not extend fromAppCompatActivity
or do not implementAppCompatDelegate
you can still wrap thebaseContext
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(IconicsContextWrapper.wrap(newBase));
}
- there is now a core package which comes without included fonts
- provide the fonts you need. no additional steps required
- NOTE: Google's font has a bad baseline so icons are not centered within text. Drawables look fine. Use Material Design Iconic as alternative if this is an issue for you
- is now the default Google Material icon set again with the "gmd" mapping
- package name
com.mikepenz.google_material_typeface_library.GoogleMaterial
- is now the standalone Material Design Iconic icon pack with the "gmi" mapping
- package name
com.mikepenz.material_design_iconic_typeface_library.MaterialDesignIconic
- the mapping of some icons changed