Changelog
The version update history of
BetterAndroidis recorded here.
Pay Attention
We will only maintain the latest dependencies. If you are using outdated dependencies, you voluntarily renounce any possibility of maintenance.
Notice
To avoid translation time consumption, Changelog will use Google Translation from Chinese to English, please refer to the original text for actual reference.
Time zone of version release date: UTC+8
ui-component
1.0.9 | 2025.12.14 latest
- Breaking change: Migrate Insets related functions to ui-extension
1.0.8 | 2025.08.03 stale
- Remove adapter-related functions and merge them into ui-component-adapter
- Migrate Java reflection-related behavior from YukiReflection to KavaRef
1.0.7 | 2025.03.08 stale
- Removed Material dependencies and refactored into corresponding dependencies
- Extensively refactored adapter (Adapter) underlying APIs
- Removed unreasonable
Viewinstance loading methods in adapters - Added
ViewHolderDelegateto adapters to support custom layout inflaters AdapterPositionnow supportslayoutandabsoluteindexes- Other known adapter-related issues fixed
1.0.6 | 2025.01.25 stale
- Added
onPrepareContentViewmethod inAppBindingActivityto customize operations before loading the layout - Fixed the issue of out-of-bounds index when the data set is empty in the adapter builder
- Added
AdapterPositioninRecyclerAdapterBuilderto implement dynamic index functionality - Fixed a critical error caused by the parent layout being loaded prematurely when using layout ID in the adapter builder
- Added a custom
RecyclerViewlayout manager and modified the default layout manager to correctly handle indexes when custom header and footer layouts are added - Added
wrapperextension method forRecyclerView.Adapterto correctly handle indexes when custom header and footer layouts are added by wrapping instances - Fixed a critical error where the footer layout was added as a header layout in
RecyclerAdapterBuilder
1.0.5 | 2024.03.08 stale
- Removed
Factorysuffix from all extension methodktfiles - Removed deprecated files in the previous version
- Fixed the problem of incorrect subscripts and item positions returned by
onItemViewsClickandonItemViewsLongClickinCommonAdapterBuilder - Adjust the entry record object added in the adapter to
LinkedHashSetto prevent repeated additions - Open
DEFAULT_VIEW_TYPEinRecyclerAdapterBuilder - Added
onBindItemIdmethod in the adapter to customize the behavior ofgetItemId - The adapter now allows direct use of
onBindViewsto bind item layouts without callbacks - Added
onBindHeaderViewandonBindFooterViewmethods inRecyclerAdapterBuilder - If the
triggermethod is called inOnBackPressedCallbackand is not removed, the callback event will be re-enabled
1.0.4 | 2024.01.02 stale
SystemBarsControllerhas been fully migrated to window insets API, please refer to the documentation to start using the new usage- Reconstructed
SystemBarsControllerand modified the initialization method, please refer to the documentation to get started using the new method - Window insets has been completely separated from the system bars into
WindowInsetsWrapper,InsetsWrapper,InsetsFactory - Deprecated all related usages of window insets in the system bars, please start using the new window insets API now
- Reconstructed
BackPressedControllerand connected it toBackPressedDispatcher, please refer to the documentation to start using the new usage AppViewsFragmentadds a new loading layout method using the constructor method to pass inlayoutResId- Renamed
RecyclerCosmeticMacckertoRecyclerCosmeticand made related functions generic - Opened preset decorators for
RecyclerView, now you can create them manually - Refactored a lot of functions related to adapters. Now you can create them manually using the method of the same name for each adapter (
BaseAdapterisCommonAdapter) - Reconstructed notification related functions, please refer to the documentation to start using the new usage
- Renamed and modified some other functions
1.0.3 | 2023.12.03 stale
- The
initmethod ofSystemBarsControlleradds thedefaultPaddingsparameter, which can configure whether to automatically add the corresponding system bars padding during initialization - When using the
showorhidemethod inSystemBarsController, it will automatically determine whether the system bars padding has been added to determine whether to add the corresponding padding - Added
AppComponentActivity, inherited fromComponentActivity, applicable to Jetpack Compose without setting AppCompat theme - When using
AppBindingActivity,AppViewsActivity,AppComponentActivity, the added layout background color will be automatically filled into the parent layout
1.0.2 | 2023.11.24 stale
- Refactor the System Insets function in
SystemBarsControllerto fix the problem that the maximum layout size cannot be calculated on Compose View - Added
SystemInsets.PaddingsandsetBaseBackgroundResource,isVisiblefunctions toSystemBarsController SystemBarsViewis obsolete, please start using the new way to customize the System Insets function- Added
View.applySystemInsets,View.appendSystemInsets,View.removeSystemInsetsmethods
1.0.1 | 2023.11.18 stale
- Fix the loading exception catching problem in
SystemBarsController
1.0.0 | 2023.11.02 stale
- The first version is submitted to Maven
ui-component-adapter
1.0.0 | 2025.08.03 latest
- The first version is submitted to Maven
ui-extension
1.0.8 | 2025.12.14 latest
- Added Insets related functions from ui-component
- Insets extension
handleOnWindowInsetsChangedmethod addsrequestApplyOnLayoutparameter - Added Lint functionality (experimental)
1.0.7 | 2025.08.03 stale
- Remove the
Adapterrelated extension and merge it into ui-component-adapter - Migrate Java reflection-related behavior from YukiReflection to KavaRef
Resourcesadjustment in the extensionisUiInNightModethe underlying logic is connected to theisNightModeActivemethodmethod in theobtainStyledAttributesResourcesextension is now recommended to migrate to Jetpack'swithStyledAttributesViewextension addsupdateMarginsRelativemethod- The
method in thezoomBitmapextension is invalid. It is now recommended to migrate to Jetpack'sscalemethod - Added
backgroundColorparameter toroundin theBitmapextension in thecompressBitmapextension, please use theshrinkmethod instead
1.0.6 | 2025.03.04 stale
- Adjusted the default behavior of the
inflatemethod andattachToParentparameter in theLayoutInflaterextension - Corrected the
updateMarginmethod in theViewextension toupdateMarginsand added thesetMarginsmethod - Completely removed the old
ViewLayoutParamsclass, now please use theViewLayoutParamsmethod instead - Fixed the logic related to
ViewLayoutParams, now it can create any object based onViewGroup.LayoutParams - Overloaded the
ViewLayoutParamsmethod to support directly passing in thelpClassparameter
1.0.5 | 2025.01.25 stale
- Fixed the issue where the
updateTextmethod in theTextViewextension could cause an out-of-bounds cursor index after overriding thesetTextmethod - Modified the
setDigitsmethod in theTextViewextension to read theinputTypeparameter from theTextViewitself by default - Modified the
updateTypefacemethod in theTextViewextension to set thetfparameter tonullby default to prevent setting unexpected font styles - Added
textToStringandhintToStringmethods in theTextViewextension - Fixed the issue where
Toastmight not pop up in non-main threads in theToastextension - Added a generic
parentFragmentmethod in theFragmentextension - Added an
optionsparameter to thestartActivitymethod in theActivityextension - Added
LifecycleOwnerextension - Added
Coroutinescoroutine-related extensions - Added
setIntervalOnClickListenermethod in theViewextension - Added non-generic implementations of
child,childOrNull,firstChild,firstChildOrNull,lastChild,lastChildOrNullmethods in theViewextension - Corrected the method name
isThemeAttrsIdsValueEqualstoareThemeAttrsIdsValueEqualsinResources - Added a large number of extension methods for
TypedArrayin theResourcesextension - ⚠️ Breaking Change, extensively refactored methods in the
Fragmentextension and separatedFragmentTransactionmethods, migration may require effort - Added
FileDescriptor.decodeToBitmapandFileDescriptor.decodeToBitmapOrNullmethods in theBitmapextension - Added
RecyclerViewextension - Added
tag,setTag, andanimatemethods in theViewextension - Added
tooltipTextCompatmethod in theViewextension - The
toStringmethod inViewBindingBuildernow returns the full object name held byViewBinding - Added
Adapterextension
1.0.4 | 2024.05.05 stale
- Integrate the parameters of the entry and exit animation methods in the
Fragmentextension - Remove the default transition animation in the
Fragmentextension and delete the related resource files - Added the
Fragment.viewBindingmethod in theViewBindingextension - Fix the problem that the layout inflate by
viewBindingin theViewBindingextension will not be automatically cached - Fix the problem that the
inflatemethod in theViewBindingextension cannot be loaded correctly when encountering<merge>and<include>type layouts - Adjust the
inflatemethod in theViewBindingextension to ignore theattachToParentparameter when encountering<merge>and<include>type layouts - Remove all deprecated methods in the old version of the
ViewBindingextension
1.0.3 | 2024.03.08 stale
- Removed
Factorysuffix from all extension methodktfiles - Removed deprecated files in the previous version
- The
ViewLayoutParamsmethod ofViewFactorynow supports theAbsListView.LayoutParamstype - Added
updateCompoundDrawablesandupdateCompoundDrawablesWithIntrinsicBoundsmethods inViewFactory - Added
parentandparentOrNullmethods inViewFactory - Added
walkToRoot,walkThroughChildren,indexOfInParentmethods inViewFactory - Added
child,childOrNull,firstChild,lastChild,firstChildOrNull,lastChildOrNullmethods inViewFactory - Merge the
inflatemethod inViewFactoryintoLayoutInflaterFactoryand deprecated the original method - Added
addToBackStackparameter to the add methods inFragmentFactory - The
commitTransactionmethod is deprecated inFragmentFactoryand is now migrate to the officialfragment-ktxdependency - Added
themeResIdmethod inResourcesFactory - Added new
ViewBindingsolution and deprecated the old solution
1.0.2 | 2024.01.02 stale
- Some package names that are not classified according to the standard have been moved, if you encounter an error, please re-import these calling methods
- Modified related names for Java calls
- Added
updatePaddingmethod inViewFactorythat can set horizontal and vertical directions - The
inflatemethod inViewFactorywill automatically useActivity.getLayoutInflater - Renamed
ColorsFactorytoColorFactory - Renamed
toMixColorinColorFactorytomixColorOf - Some methods in
ColorFactorywill now no longer throw exceptions - Added
GradientDrawableCompat, you can use it to createGradientDrawablefor versions below Android 10 - Added
updatePaddingmethod inDrawableFactorythat can set horizontal and vertical directions asDp,asPxand its usage inDimensionFactoryare obsolete because of its design error, and are now connected to the new usagetoDp,toPx- Added
DisplayDensity, you can easily usedp,pxto convert units - Deprecated
getDimensionPxinResourcesFactory, please usetoPxto calculate manually - Deprecated
isSpecialWindowingModeinResourcesFactoryandActivityFactory, please do not use it again - Added
getFontCompatmethod inResourcesFactory - Fix the usage error of
commtrelated functions inFragmentFactory - A large number of related usages in
FragmentFactoryhave been modified, now please refer to the documentation to start using the new usages - Added
compressBitmapmethod inBitmapFactory - Added
Window.toastmethod inToastFactory - The
toastmethod inToastFactoryhas a newallowBackgroudparameter, you can now allowToastto show in non-main threads - Some methods in
WindowFactorywill now no longer throw exceptions - A new method in
WindowFactorycan be used to set the screen brightness using theFloattype - Use
WindowInsetsControllerinViewFactoryto show or hide the input method and rename the methods toshowIme,hideIme - Deprecated
ViewLayoutParamclass, please use theViewLayoutParamsmethod instead - Added
durationparameter toperformKeyPressedinViewFactory - Added
updateMarginmethod inViewFactorythat can set horizontal and vertical directions - Methods in
ActivityFactorywereinlineprocessed - Added each
startActivityOrElsemethod inActivityFactory - The
roundmethod inBimapFactorynow supports setting the corner radius in each direction
1.0.1 | 2023.11.18 stale
- Fix the problem of incorrect return value of
getColorandgetColorStateListmethods in ResourcesFactory
1.0.0 | 2023.11.02 stale
- The first version is submitted to Maven
system-extension
1.0.3 | 2025.08.03 latest
- Migrate Java reflection-related behavior from YukiReflection to KavaRef
renamed toSystemVersionAndroidVersionand added Android 15, 16 and 1-4.3 version constants, and functional adjustments are made at the same timerename it toSystemKindRomTypeand make functional adjustments- Added the
optionsparameter of thesendBroadcastmethod to theoptionsextension
1.0.2 | 2025.01.25 stale
- Added
BroadcastReceivermethod inBroadcastextension and modified the return value ofregisterReceivermethod to itself
1.0.1 | 2024.01.02 stale
- Renamed some incorrectly named methods in
SystemVersion - Added
nameattribute inSystemVersion - Caching
SystemKinddetection results to prevent repeated creation of reflection objects - Deprecated
getinSystemKind, now please use thecurrentproperty to get the current system type. - Renamed some incorrectly named methods and classes in
ApplicationFactoy - Removed
FLAGprefix inAplicationInfoFlagsWrapper - Modified the related usage in
BroadcastFactory, now please refer to the documentation to use the new usage to create runtime broadcasts - Modified the relevant usage in
ClipboardFactory, now please refer to the document to use the new usage to use the clipboard function - Methods in
ServiceFactorywereinlineprocessed - Added
startServiceOrElseandstartForegroundServiceOrElsemethods inServiceFactory
1.0.0 | 2023.11.02 stale
- The first version is submitted to Maven
permission-extension
Not yet released.
compose-extension
1.0.2 | 2024.01.16 latest
- Added
HapticFeedbackmethod, you can set it to any click or touch event ComponentPaddingadds aNonemethod, you can use it to directly getComponentPadding(0.dp)- Modified
onDismissRequestinDialogto make it mandatory to exist, matching the usage in the officialfoundation - Optimize some code styles
1.0.1 | 2024.01.08 stale
- Removed some useless
@Stableannotations - Added
borderOrElsemethod with the same name and new usage - Added
AdaptiveRow,AdaptiveColumn
1.0.0 | 2024.01.02 stale
- The first version is submitted to Maven
compose-multiplatform
0.1.0 | 2024.01.02 latest
- The first version is submitted to Maven
