- #244 Migrated to Maven Central (New group id: com.github.thejuki)
- Still need to migrate older builds from Bintray/JCenter
- Also, need to use new io.github.gradle-nexus.publish-plugin when Android support is added to fix publishing on release
- #239 Add back displayNewValue to FormSegmentedElement as this caused more issues
- #236 Add new SegmentedInlineTitle for a radio group with an inline title (Needed a new layout file and did not want breaking existing segmented usages that have a lot of buttons to display or a long title)
- #228 Removed call to notifyDataSetChanged() in setItems() as this is not needed
- #231 Updated imagepicker dependency to rename strings to avoid conflicts
- #243, #241 Add displayValueFor to FormPickerMultiCheckBoxElement
- FormPickerMultiCheckBoxElement now needs generic for inner class: multiCheckBox<ListItem, List>
- Remove kotlin-android-extensions gradle plugin. Use Jetpack View Binding for Test and Examples.
- #196 InlineDatePickerElement: https://thejuki.github.io/KFormMaster/element/inlineDatePicker/
- #197 Removed disabling FormTextViewElement
- #201 Setting backgroundColor for the main view for the Header and Label elements
- #205 Fixed remaining issue with displayNewValue
- #214 Upgraded to ViewRenderers
- #220 Moved FormActivityTest to main form folder
- #194 Added editViewGravity. The button element's default gravity is CENTER.
- #195 Added editViewPaintFlags. Set the value to Paint.UNDERLINE_TEXT_FLAG to underline all text, for example.
- #179 Moved imagepicker dependency to JCenter since JitPack was not working for everyone.
- editViewGravity replaces both rightToLeft and centerText. Set value to Gravity.START, Gravity.END, Gravity.CENTER, etc.
- #191, #192 Add dialogTitleCustomView to dropDown element
- #163 Fix segmented radio buttons height when text wraps to next line
- #187, #188 Add valueAsStringOverride to FormPickerMultiCheckBoxElement
- #185 Add new properties for FormImageElement:
- displayImageWidth and displayImageHeight to change the size of the image displayed on the form
- changeImageLabel to set the text of the label that currently is set to "Change Image"
- showChangeImageLabel to show/hide the "Change Image" label
- #172 Fix ImagePickerActivity where when crop is enabled AND using start() with the completionHandler, the gallery or camera app opens again after a photo is selected/confirmed.
For now, this fix is in a fork of ImagePicker with JitPack providing the build: https://jitpack.io/#TheJuki/ImagePicker/1.11
- Fix FormSegmentedElement radioButtonWidth and radioButtonHeight to use dp
- Make FormSegmentedElement properties dynamic. Add height and width to SegmentedDrawable.
Breaking changes:
- Button text is not centered by default. Set centerText to true to center the text.
- "padding" in the segmented form element has been renamed to radioButtonPadding
- #163 Fix issue where the segmented radio buttons may not align to the top. Added radioGroupWrapContent, radioButtonWidth, and radioButtonHeight to assist with fixed sizing for the buttons.
- #164 Added titlePadding and padding to assist with squeezing the icon and text together.
- #167 Setting the titleIcon on a button form element will set the button's drawable. Use padding to squeeze the icon and text together.
- #169 Added displayNewValue() function. This function is called when the value changes to display the new value specific to the form element.
- #129 Add icon option to title
- #161 Fix layout weights for the switch and checkbox elements
- Fix loading a image from a file: URL string
- #158 Add ability to change the image of the ImageView by changing value
- #152 Add support for loading images from a data: string including SVGs in the ImageView
- #151 Added Input Mask Options
- Add clickable and focusable booleans
- Add onClick, onFocus, onTouchUp, and onTouchDown Units
- #142 Add startDate to FormPickerDateElement, FormPickerDateTimeElement, and FormPickerTimeElement
- Update target SDK Version to 29
- Update dependencies:
- Bump RendererRecyclerViewAdapter from 2.7.0 to 2.8.0
- Bump tokenautocomplete from 3.0.1 to 3.0.2
- Bump imagepicker from 1.2 to 1.3
- Fix code style issues
- #119, #122 Image View Picker element added
- #120 Add displayValueFor to dropdown element
- #118 Add theme to picker elements to style the alert dialog
- Added is24HourView to dateTime and time elements
- Set min SDK version to 19
- #108 Fix FormSegmentedElement value change when enabled
- #107 New color in colors.xml for TextView Element: colorFormMasterElementTextView
- #102 The Segmented Element should keep the model value when it is refreshed
- #106 Possible fix to date format issues
- #102 FormSegmentedElement can now be disabled
- Updated the TokenAutoComplete library
- #101 Add minimumDate and maximumDate to FormPickerDateElement and FormPickerDateTimeElement
- Added 4 tests
- #97 Add Progress Element
- #95 Custom validation for any element
- #93 Enabled/Error handling for Custom Form Elements
- #77 Fixed setting the dateValue later and fixed the date/time dialogs to reflect updated dateValue.
- Fix dateFormat and dateValue
- #56 and #76 Upgrade to AndroidX
- #72 The Form Header can now collapse elements when initialized or later
- Removed Form Element Builder Classes
- Migration Guide: https://thejuki.github.io/KFormMaster/migrateBuilder/
- #63 Fix dropDown valueChangedListener
- #64 Fix Segmented control value
- #65 Add backgroundColor and titleColor to header element
- #66 Add centerText to base form element
- #62 Add ability to center a drawable in the FormSegmentedElement radio buttons
- #60 Fix set value for the FormSegmentedElement
- #60 Fix issue with reInitGroup(). The context can be retrieved from editView
- I removed version 5.0.1 and 5.0.2 from Bintray. I left minifyEnabled enabled for the release build and it was causing issues.
- #57 Set the drawableRes for each item in the Segmented element group
- #58 Added layoutPaddingBottom, displayTitle, and margins to the base form element
- Add displayRadioButtons to FormPickerDropDownElement
- Use Android SDK 28
- Still using Android support version 27.1.1. The AndroidX branch uses the AndroidX support version 1.0.0
- This is a major change. Removed all setter builder methods to fix compatibility with Java. #49
- Using "apply" will work as an alternative to using the builders and DSL. However, using the Form DSL is recommended.
- #44 Update Seekbar value when the progress changed during the slide.
- #45 Add Divider view as a dynamic View. Add displayDivider as a base property.
- #46 Add maxLength as a base property.
- #47 Add clearOnFocus as a base property.
- #48 Add colors as base properties.
- Add fillSpace property to Segmented Element
- Add multiple style properties to Segmented Element
- Add incrementBy property to slider
- Fix Segmented Element (Generate an ID for each dynamic radio button)
- Add new Segmented element
- Move model.error = null when the value changes for an element to before model.setValue
- Added clearable to most form elements. Setting this to true will display a clear button (X) to set the value to null.
- The title and error views are now optional. This allows your custom layout to not need a title and error view.
- Empty dialog added to dropDown or multiCheckBox elements for when the options list is empty or null.
- Confirm dialog added to picker elements for when an editable element contains a value and needs to be confirmed before editing the value by clicking on it.
- Added FormLayouts class to override the default layouts used for all related form elements in the form.
- Issue: #15
- Pull Request: #36
- Added doc for FormLayouts: https://thejuki.github.io/KFormMaster/custom/formLayouts/
- Added inputType, imeOptions, and updateOnFocusChange to BaseFormElement
- Restored addTextChangedListener to update value as characters are typed by default. Added updateOnFocusChange to update on focus instead.
- Fix #35 by letting the BaseFormElement handle enabled and visible values
- Added Label form element
- Editable fields that require a keyboard update the form element value when they lose focus. Because of this, before validating or submitting a form, clear the focus of the form using
currentFocus?.clearFocus()in your activity. - Added Tabbed Form Fragment example.
- Calling reInitDialog() is no longer needed after changing the dropDown or multiCheckBox options. This also allows clear() to clear the selected options for multiCheckBox.
- Removed Parcelable from form elements
- Removed Serializable from form element
- Removed optionsSelected from BaseFormElement. FormPickerMultiCheckBoxElement now uses 'value' instead of 'optionsSelected'. This fixes valueObservers for the FormPickerMultiCheckBoxElement.
- FormPickerMultiCheckBoxElement and FormTokenAutoCompleteElement require a list of objects through <T: List<*>>
- Fixed Autocomplete text not showing up when initialized with a value.
- Added addFormElement function to FormBuildHelper and use apply/let to reduce code in FormBuilder.
- Completed document on how to create a custom form element.
- Added maxLines to form models. Set to a number greater than 1 to increase the number of visible lines.
- Merged PR #22 to fix the DSL Form Builder.
- Added rightToLeft (RTL) to form models. Set to false to set the edit text fields to display left to right.
- Fixes the month number used by the Date and DateTime elements
- Add autoMeasureEnabled to FormBuildHelper constructor to fix a recylerview that uses wrap_content
- Removed all uses of "!!" and replaced with "?" or "?.let" for safer code
- reInitDialog() function added to DropDown and MultiCheckBox elements so that the options list can be changed dynamically. Resolves issue #17
- Add "enabled" to form elements. Dynamically enable/disable any form element. Resolves issue #19.
- The title, edit, and error views are now accessible through the model classes
- The refreshView() function has been removed (No longer needed)
- The getFormElement() function now requires a type and returns a non-optional element
- The form is now dynamic. The title, hint, value, error, visible, required fields can be changed at any time without refreshing the form manually.
- The clear() function has been added to all form elements
- The header can now collapse "child" elements when tapped (Set collapsible to true)
- The FullscreenFormActivity example has been updated to test the new dynamic features
- The isValidForm function now works correctly
- The numbersOnly field has been added to FormNumberEditTextElement to prevent symbols from being entered. By default numbers and symbols are allowed.
- Added ability to add your own custom form elements in your project
- Added example to show how to add a custom form element
- Added cacheForm to FormBuildHelper. When set to true, the RecyclerView will cache all form element views instead of recycling them.
- Removed valueChanged in BaseFormElement
- Added even more comments
- Added Unit Test
- Add better comments
- Remove redundant View States
- Add Instrumented Tests
- Added CheckBox element
- Element tags are now optional
- The email, password, phone, text, textArea, number, textView, and button elements no longer take a <T: Serializable> as they only deal with Strings
- Deprecated valueChanged in BaseFormElement
- Added valueObservers in BaseFormElement to replace valueChanged with a list of Observers when the element value changes (See updated Examples)
- Fixed issue with tokenautocomplete
- Add View States to View Binders to save and restore their states
- Add missing model.valueChanged?.onValueChanged(model) to View Binders
- Resolve issue with RendererRecyclerViewAdapter library
- Update RendererRecyclerViewAdapter library
- Remove type from BaseFormElement as it is no longer needed
- Remove generic FormEditTextElement
- Add FormSingleLineEditTextElement (text), FormMultiLineEditTextElement (textArea), FormNumberEditTextElement (number), FormPasswordEditTextElement (password), and FormPhoneEditTextElement (phone)
- Add Kotlin DSL form builder
- Update examples to use new Kotlin DSL form builder
- Just released!
- Converted to Kotlin using the fork by shaymargolis.
- Added DateTime, Button, Switch, Slider, and Token AutoComplete using TokenAutoComplete.