* Add themes selector
* Fix lint
* Fix test
* Remove german translation
* Default theme "system" on >= Pie
* Use useSimpleSummaryProvider for themes preference
* Fix lint
* Fix dark mode wait color text in "unable to connect to home assistant" message
* Fix tint of widget button icon in light mode
* Implement ThemeManager to handle theming
* Fix lint
* Fix WebViewPresenterImplSpec test
* Functional widgets with all material icons to pick from.
* Load icons in io thread since it takes a hot second.
* Bump DB version.
* ktlint
* Blow away widget prefs since it was a hack anyway.
* Migrate static widgets to room db.
* ktlint and tests.
* Little more cleanup.
* More ktlint.
* Initial attempt at Migrations.
* Add missing Migrations.kt
* Add full migration support from old to new widgets.
* Initial work on settings UI and getting them all to return.
* Basic views + flow done
* No icons in sensor detail.
* Refactor room stuff to make more sense.
* Add permission checking and DB entries for sensors!
* Make sure we have sensors sorted.
* Move LocationBroadcastReceiver.kt into sensors package.
* Move SensorUpdater.kt into sensors package.
* Sensors can now be enabled and disabled and displays data in UI.
* Added Location "Sensors".
* Start a single receiver to handle all sensor based stuff.
* Fix minimal flavor.
* Rework onboarding flow to use Daos
* Add categories to sensors
extract strings
add icon.
* linting
* Fix tests and minimal.
* Fix merge issues.
* Remove unused files.
* Bring phone sensors inline.
* Fix Biometric Unlock
* Add Prompt Unlock function directly in WebViewActivity
* Added session timeout in app settings
* App is locked when resumed (after session timed out)
* When the application is locked, the screen is blurred (no quite obnoxious splash screen to look at), which allows the HA frontend to be loaded before or during unlocking
* No button needs to be touched for unlock
* When the unlock prompt is displayed, the back button close the app
* Fix issues #555 and #587
* Switch to using Kotlin in of groovy for the gradle configurations.
* Gradle file cleanup.
* Switch to using Kotlin in of groovy for the gradle configurations.
* Gradle file cleanup.
* Retrofit (and maybe others libs) requires java compile options 1.8, still backwards compatible.
* Prep for release 1.9.0-XXX
* Fix ktLint errors.
* Fixup the styling on the Widget configuration.
* Actually pull services and entites for Widgets.
* Sort lists.
* Linting.
* Make sure entity_id is optional.
* Lint
* Basic widget functionality added
* Requested Fixes: 4 of 6 completed
* Changed widget to be responsive and have a light icon instead of a generic Home Assistant icon
* Fixed issue with latest rebase from upstream master
* Restricted label text to a single line
* Created repository and use case for widget data storage
* Fixed indentation
* Fix for Oreo and later Broadcast Intent restrictions
* Added negative feedback for widget. Wrapped try blockaround only the relevant commands.
* Removed defunct preferences utilities file
* Removed unnecessary try catch block
* Fixed issue where layout would reset upon screen rotation after activating the widget.
* Moved widget storage logic to repository as requested
* Added multiple widget icons with a drop down menu in the configuration activity.
Added labels to configuration activity.
Made configuration activity scrollable.
* Changed widget feedback to be more immediate and clear. Changed color of positive feedback.
* Changed callService HashMap to match Integration Repository
* Added testing for Integration callService method
* Changed how icons are stored so regeneration of resources will not randomize the stored icons
* Added basic WidgetUseCaseImpl tests
* Privatized localStorage access in WidgetRepositorImpl, removing it from the WidgetRepository interface
* Reload UI if the base url has changed.
AKA changed from remote/local.
* Linting.
* Now we don't rebuild dagger every time we change urls.
Need to fix tests.
* Test and comment.
* Url management now abstracted to new separate use case.
* Add preferences for URLS.
* Add wifi ssid check.
* Tests now passing!
* Now show error and bring to settings when can't connect.
* Fix PR comments.
* Home SSID tracking now working.
Also go to settings if refresh token fails.
* Fix test.
* isInternal is now optional, we can determine in the repository if needed.
* Rework preferences ordering and disable when not used.
* Extract strings.
* Add validation of URLs.
* Formatting.
* Fix tests.
* Migrate preference categories to string resource.
Disable lint for missing translations.
* We now can change the device name.
* Linting Fixes.
* Tests a functional, now to add new tests.
* Fix all the tests for real this time.
Fix clean task being in wrong group.
* Add tests for persisting device registration.
* Extract string, remove summary, use androidx preferences.
* Migrate to injection and constants for registration data that is build time.
* Use SimpleSummaryProvider.
* Revert global missing translation lint error.
* Disable MissingTranslation lint globally.
* Initial pass on notifications support
* Linting and Dep updates.
* Basic Notification Support complete.
* Fix onboarding flow and test compile issue.
* Fix unit tests
* Bump tool versions.
* All tests pass... Need to clean up still.
* Using correct mockk features.
* Using correct mockk features everywhere.
* More test fixes.
* Initial work on zone based location tracking.
* Tests and enhancements.
* Fix unit tests.
* Fix test cases.
* Initial location preferences work.
* Location settings now function will requests for permissions when needed.
* ktlink formatting.
* Domain tests.
* Data tests
* Extract strings into resources.
* Remove translations until Lokalise SDK is added back.
Failing lint
* Update wording.
* Add icons and toolbar.
* Coloring the settings.
* Logout the use when revokeExternalAuth is called
* callback even if onGetExternalAuth failed
* Add http log
* Open on boarding activity when logout
* fix revoke token field name
* Initial work on integrating the mobile_app component.
* Tests because even if I don't like to write them, I probably should.
* Remove unused dependency for now.
* Fix view related PR comments, migrate to view flipper to make more
consistent with other UI.
* Migrate from error handling at Repository to Presenter for Integration.
* Extract register device data class.
* Extract the mapping of DeviceRegistration to RegisterDeviceRequest.
* Extract ensuring we have a valid, refreshed session.
* Unique localStorage per usage to avoid name collision.