date-android
:- Fixed package name in the manifest to avoid
BuildConfig
clash with thedate
library
- Fixed package name in the manifest to avoid
date-android
:- Fixed package name for classes in this module to avoid a clash with the
date
library
- Fixed package name for classes in this module to avoid a clash with the
date-android
:- Added a method to get a date and time String from an
Instant
- Added a method to get a date and time String from an
- Updated all dependencies to their latest versions
- Separated the
date
module intodate
anddate-android
in preparation for KMP - Switched the
prefs
module to besettings
to use theMultiplatformSettings
library in preparation for KMP
- Fix bug with resolving Firebase Analytics
- Updated all dependencies to their latest versions
- Restructured the Gradle scripts (using Kotlin DSL and
buildSrc
) - Updated the publishing action for all of the modules
- Added function to display a toast (It was removed from AndroidX)
- Updated all dependencies to their latest versions
ui
:- Added extension function to
ImageView
to set an image resource using the Compat functions - Added extension to
EditText
to set the IME action button and listener - Added extension to
TextView
to set the text color using the Compat functions and a color Id
- Added extension function to
util
:- Added extension function to convert a dp value to pixels
- Added fallback on opening a Chrome custom tab to use the opening of a normal Url
prefs
:- Pulled out the
SharedPrefLiveData
into a separate class to be used by others - Made the
liveData()
function on theBasePref
open
- Pulled out the
prefs
:- Added a
liveData()
method on the prefs objects to make them observable.
- Added a
ui
:- Removed the
RecyclerView
adapter implementation from v5.0.0 as it wasn't working out
- Removed the
dialog
:- Added extension functions to quickly add "Ok" and "Cancel" buttons to a dialog
analytics
:- Added interface for Analytics related functions
- Removed old GA stuff
dialog
:- Updated to Material Dialogs v2.0
ui
:- Added new
RecyclerView
adapter implementation for easier instantiation
- Added new
coroutines
:- Changed default job to
SupervisorJob
- Changed default job to
- Updated dependencies
- Added Spotless
- Started using Codacy
log
:- Add the
TimberTag
interface, which allows you to easily add tags to every Timber log that implements that class
- Add the
coroutines
:- Renamed the
CoroutineActivity
- Renamed the
analytics
:- Deprecated
GAManager
in favor of Firebase
- Deprecated
coroutines
:- Added the
BetterCoroutineScope
, which is aCoroutineScope
with a cancel method - Renamed the
MainScope
- Changed the
ViewModel
classes to use the newMainScope
- Added the
CoroutinesActivity
that uses theMainScope
- Added the
ui
:- Removed pre-21 compatibility when setting the
Drawable
tint
- Removed pre-21 compatibility when setting the
util
:- Cleaned up the
Device
object: Switched to API numbers instead of names, switched functions to variables
- Cleaned up the
coroutines
:- Fixed the coroutine dependency used (Android specific)
coroutines
:- Move the
bind()
method into theLifeycleOwnerUIScope
- Move the
util
:- Add explicit
ActivityNotFoundException
throwing for when opening a url or custom tab
- Add explicit
coroutines
:- New module, with useful extension functions and classes to use with Kotlin coroutines
firebase-analytics
:- New module, with useful extension functions to use Google Analytics for Firebase within your app
io
:- Further bug fixes for v4.5.1, including a method name change for
getFileUri()
- Further bug fixes for v4.5.1, including a method name change for
io
:- Bug fix for v4.5.0
io
:- Added
Context
extension to get theUri
for a file - Added
Context
extension to create and write contents to a file - Changed order of parameters on
getFile()
- Added a provider paths Xml to cover the default case
- Added
room
:- Added
TypeConverter
s forMutableList<T>
, with convenience converters for String and Int - Added convenience method to log an
AppUpdate
based on its name and code
- Added
room
:- Added the
AppUpdate
class and its Db/Dao to keep track of when the app is updated
- Added the
log
:- Added a logger for
Koin
- Added a logger for
log
:- Added the logging of the
priority
- Added the logging of the
- Updated to Kotlin 1.3
- Changed min SDK version to 21
room
:- Moved the
Dao
s and theTypeConverter
s to separate packages - Added the
BaseUpdateDao
and theBaseInsertDao
if you just need one subcategory of default methods - Changed the conflict strategy of the
INSERT
functions to beREPLACE
- Moved the
room
:- Added the
BaseDao
for basic functions on one model type - Added the
BaseConverter
for a basicTypeConverter
implementation - Added the
BaseListConverter
for a basic listTypeConverter
implementation - Added a
TypeConverter
forLocalTime
s
- Added the
util
:- Minor updates to the new
BaseUpdateManager
- Minor updates to the new
util
:- Minor updates to the new
BaseUpdateManager
- Minor updates to the new
util
:- Added the new
BaseUpdateManager
that works off ofMigration
classes - Renamed old
BaseUpdateManager
toOldBaseUpdateManager
(breaking) - Switched to Kotlin folder conventions for this module
- Added the new
- Updated all libraries, including switching over to AndroidX
lifecycle
:- Added module for the Android Lifecycle components, with an extension to observe on a LifecycleOwner.
room
:- Added module for Android Room, with some common
TypeConverter
s
- Added module for Android Room, with some common
util
:- Removed the connection info from the debug info, moved it from an extension to a static method
dialog
:- Changed the order of the params in the list dialog functions to have all defaulted params at the end.
dialog
- Changed all the interfaces to lambdas
- Moved all lambdas to be the last parameter in the functions
- Removed the
db
module completely date
:- Added option to specify the locale on all formatters
- Changed
isPast
,isFuture
, andrfc1123String
methods to be variables instead of functions - Added
isToday
variables - Removed the old setter and getter methods on the
Pref
classes. You should access thedate
property directly
dialog
:- Removed all previously deprecated classes/methods
- For the list dialogs, all params are now taken directly instead of having a separate interface to implement
io
:- Removed all previously deprecated classes/methods
log
:- Added the
tag
value to the function that logs a message
- Added the
prefs
- Removed the old setter and getter methods on the
Pref
classes. You should access thevalue
property directly
- Removed the old setter and getter methods on the
ui
:- Removed all previously deprecated classes/methods
- Added function to set an
ImageView
tint using a color resource Id - Added function to set a
TextView
's compoundDrawable
tint using a color resource Id
util
:- Removed all previously deprecated classes/methods
- Changed device measurement functions to be extensions
ui
:- Big fix of v2.6.9
ui
:- Added methods to set the drawables on a
TextView
as named parameters
- Added methods to set the drawables on a
- Library updates
ui
:- Added method to simplify watching an
EditText
- Added method to simplify watching an
util
:- Made
showEmptyView()
methods on the adaptersopen
- Made
util
:- Added a method to wrap a
Context
with aLocale
to change the app language
- Added a method to wrap a
util
:- Added option to add custom info to the debug info
util
:- Added extension to get the color from a
Context
in a backwards compatible manner
- Added extension to get the color from a
util
:- Added method to get debug info for feedback/bug reports
date
:- Changed the
Temporal
extensions to be forTemporalAccessor
s instead
- Changed the
ui
:- Fix wrong call to get the
TextView
's compound drawables when tinting
- Fix wrong call to get the
prefs
&date
:- Created nullable and non-nullable variations of every preference helper class
- Breaking:
StringPref
,DatePref
, andLocalDatePref
are no longer nullable. In order to continue using them as nullable, use theirNullXPref
equivalents
- Breaking:
- Created nullable and non-nullable variations of every preference helper class
analytics
:- Convert
isDisabled
inGAManager
to a property
- Convert
dialog
:- Made all
DialogUtil
methods extensions and deprecated the old one
- Made all
util
:- Added a default name for the version pref name in the
BaseUpdateManager
- Added a method that is called when an update is finished in the
BaseUpdateManager
- Added a default file type (null) for
context.getFile()
- Added a default name for the version pref name in the
ui
:- Added extension to set a
View
's padding with a dimension Id - Added extension to set a
TextView
's text size with a dimension Id
- Added extension to set a
io
:- Deprecated the
IOUtils
, replacing it with extensions
- Deprecated the
prefs
/date
:- Removed a bunch of redundant code within the pref classes
- Added backing properties to the pref classes
util
:- Made connectivity methods extensions
- Moved folder operations to extensions
- Moved permission operations to extensions /
Util
class
- Removed methods that are now part of Android KTX
- Updated all dependencies
- Switched min SDK to 17, target SDK to 27
date
:- Made all date formatting methods extensions
- Added code to allow ranges of dates
ui
:- Added a
BaseListAdapter
- Made all tinting methods extensions
- Breaking:
TextView
drawable tinting now uses relative positioning
- Added a
util
:- Added a String extension to get a
Spanned
from an Html String - Made all
Context
util methods extensions
- Added a String extension to get a
util
:- Made the
BaseUpdateManager
methodsopen
- Made the
- Updated Kotlin
util
:- Added the
BaseUpdateManager
class, to serve as a base for running update code
- Added the
- Updated all of the dependencies (notably support library)
- Bumped target to 26
util
:- Added a method to check if a Permission has been granted
dialog
:- Fixed the multi list dialog button type
analytics
- Switched
isDisabled()
to be a method instead of a variable
- Switched
analytics
- Added the Analytics module for Google Analytics helper methods
date
:- Added missing static annotation
date
:- Switched some of the formatting Strings to take in
TemporalAccessor
s instead ofTemporal
s - Added formatting method to return the full date String
- Switched some of the formatting Strings to take in
util
:- Fixed bug where opening a Url in a Chrome custom tab would crash the app if the scheme was missing from the Url
util
:- Added method to open a Url within a Chrome custom tab
log
:- Made the abstract methods protected within the
ProductionTree
- Made the abstract methods protected within the
ui
:- Made the utility methods static in Java
util
:- Overloaded some methods in the
Utils
class for Java
- Overloaded some methods in the
dialog
:- Fixed order parameters to work better in Java
date
:- Changed all of the
XXXPref
methods to open
- Changed all of the
dialog
:- Added some
@JvmOverloads
to the right methods inDialogUtils
- Added some
prefs
:- Changed all of the
XXXPref
methods to open
- Changed all of the
- Converted everything to Kotlin!
- Renamed the repo
- Broke everything out into separate modules (see the README for more info)
- Dependencies now come bundled in instead of expecting them to be included by the different projects
- Added method to get a randomly generated UUID
- Added the
RecyclerViewBaseAdapter
, a base adapter for aRecyclerView
with a built-in ViewHolder and empty view support
- Fixed the opening of the PDF for Nougat +
- New: Added method to check if we are on Nougat or higher
- Renamed the OS version check method names to be clearer
- New: Added method to check if a given version is more recent than the current version
- New: Added a LocalDatePreference to store LocalDates in SharedPreferences
- New: Added method to put the logs into a given file (used for bug reports)
- New: Added helper methods to get device screen height and width
- New: Added helper method to tint an ImageView
- New: Added helper method to tint the icon of a menu item
- Update: Fixed bug where the tint was not getting correctly applied on a drawable in pre-Lollipop
- New: Added method to check the user's internet connection based on the context
- New: Added method to an attribute's resource Id to set it programmatically
- New: Added new helper method to create a 2-choice AlertDialog
- New: Added method to quickly generate a multi-choice dialog
- New: Added method to open PDFs
- New: Added method to get the device manufacturer and model
- Added check for
http://
orhttps://
on a URL before trying to open it
- Removed the need for Timber for some utility classes
- Removed Dagger dependency
- New: Added method to display a neutral AlertDialog with a message String and an OnClickListener for the button
- New: Added method to display a toast with a message String
- New: Added method to open the current app in the Play Store using the package name from the passed Context
- Fix: Fixed the loadObject() method in the StorageUtils to work with a list of objects
- New: CustomDurationViewPager is a ViewPager instance that has a custom scroll animation speed
- New: Date/Time formatter methods can now take null parameters (they will return null in this case)
- Fix: Fixed short date formatter not being correctly initialized
- New: Added methods to load and save objects to internal storage
- Added method to get a BufferedSource for a raw resource
- Added method to open an app on the Play Store
- Added method to get the short String for a date
- Fixed method name in DateUtils
- Added method to get the short String for a time
- Added methods to check the future and past of a ZoneDateTime
- Added some date utility methods
- Added a SharedPreferences helper class for dates
- Added method to read a String from a file in the raw resource folder
- Added Device class, with helper methods to determine the device's OS
- Added method to check connectivity
- Set up a base class for all preference utility classes
- Added method to check if the preference is set
- Added clear methods for the SharedPreferences utility classes
- Fixed bug with the scopes of the constructors of the Preference classes
- Added more AlertDialog helper methods
- Switched the Gradle dependencies to "provided"
- Now returning the created AlertDialog in the DialogUtils static helper methods.
- Added option to not specify a title and message for any type of Alert Dialog
- Renamed the Utils class
- Renamed the DialogUtil class
- Added the non swipeable ViewPager
- Initial Release. Includes:
- Timber tree for production builds
- Shared Preferences helpers
- Dialog helpers
- Static utility class