* [#790] Fix Settings screen layout
- SwitchWithLabel moved to ui-design-lib
- Internally switched from Row to ConstraintLayout
- Used paddings, which after creating and applying of Design system #611 will be refactored
- Moved Modifier definitions to the caller side, when possible
Twitter had a set of Compose rules, which have been forked into Detekt, Ktlint, and Android Lint implementations.
I see ktlint as mostly being formatting, Detekt being more for multiplatform static analysis, and Android Lint for Android-specific issues. Android lint is slow, so I didn’t want to use it as the first choice.
I went with the Detekt implementation which can be useful if we leverage multiplatform for our Composables in the future.
- Added automatic exception logging, registered in the Application object
- The design sends the exception to a second process, as the main process could be in a bad state when crashing. If we ever encounter problems with this design, it is easily toggleable to turn off with a boolean resource
- Reading the process name is a bit complex on older Android versions, so we leverage a ContentProvider (which runs prior to Application.onCreate()) to get the process name
- Added a simple logging mechanism for multiprocess and multithread log messages
- Refactored spackle-lib into spackle-lib (multiplatform) and spackle-android-lib
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
This moves the theme and common UI elements to a separate Gradle module.
This is a first step towards creating our own custom design system, as it would eventually allow hiding of Material Design from the rest of the app UI.
As part of this change, a new common utility module was created so that both the ui and ui-design modules can depend on it.