* Implemented a quick solution to utilize channels on android to differentiate notifications.
* Implemented removing of notification channel. Restructured onMessageReceived.
* Added ChargingBroadcastReceiver which can instantly update plugged in status
* Couple formatting changes noticed after pushing. Will squash this message
* Addressed PR Comments
* More PR comments!
* Pulled out logic into SensorUpdater
* Couple thigns I noticed after pushing... because of course I did.
* Removed unnecessary Binds
* Remove Battery State related information from Battery Level
* Extract determining battery icon to own method
* Update battery icon method with new parameters
* Add second battery sensor, Battery State
* Calculate battery percentage in own method
* Enable Fullscreen Video & Add PIP
Enable fullscreen video
Add PIP
* Enable Fullscreen Video & Add PIP
Enable fullscreen video
Add PIP
* Enable Fullscreen Video & Add PIP
Change from "26" to "Build.VERSION_CODES.O" in onUserLeaveHint()
* Support relative URLs for notifications.
Images, clickAction, and actions URI now support relative to HA urls.
* Add authentication support for relative urls.
* Fix issue with tag causing notifications to not cancel.
* Ensure requestCode is unique.
* Add better handling for slow connections.
* Add ability to auto close alert on connection.
* Fix linting.
* Only cancel alert if we actually connect.
* Better handling of action events.
Show toast when we fail to send event and keep notification so you can
retry.
* Extract message string.
* Updated error toast message.
* Fix app version in settings.
* Dependency Upgrades
* Enable beta -> production promotion via tag in Travis.
* Fix firebase release notes location.
* Add some logging around what we are building.
* TRAVIS_PULL_REQUEST is a number or false....
* Alert when SSL error happens during onboarding.
* Remove 'ok' string and use android default.
* Remove 'ok' string and use android default.
Fixes: https://github.com/home-assistant/home-assistant-android/issues/323
* Use androidx Alert in AuthenticationFragment.
* Linting.
* Ensure we only optimize devices that can.
* Fix Fullscreen for notch
Test if notch or not, if notch just hide nav bar
* Fix Fullscreen on screen with notch
* Fix Fullscreen for screen with notch
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="27">shortEdges</item>
Is for renders content into the cutout area in both portrait and landscape modes therefore useless since in case of a notch we just hide the navigation bar
* Fix Fullscreen for screen with notch
* Fix Fullscreen for screen with notch
* Fix Fullscreen fo screen with notch
* Fix Fullscreen for screen with notch
* 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.
* Set minimum accuracy for location updates.
* Redo logic to try up to 5 times.
If we get a location that meets accuracy needs then stop updates.
* Lint fixes.
* Fix Dead end when entering invalid Home Assistant url during onboarding #105
* Rename strings & fix CI build error
* Refactoring & Go back to onBoarding first and then show error
* Fixing Build Lint Error
Co-authored-by: HIQOscarStenqvist <55279974+HIQOscarStenqvist@users.noreply.github.com>
* 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.
* Fix some styling
Because `colorControlNormal` was set to white, the underline of a inactive textbox would be white. Making it hard to see where to input text.
* Update naming
* Add background color to style
* Update color name
* Lokalise: update of app/src/main/res/values/strings.xml
* Lokalise: update of app/src/main/res/values-it/strings.xml
* Lokalise: update of app/src/main/res/values-lv/strings.xml
* Lokalise: update of app/src/main/res/values-nl-rNL/strings.xml
* Lokalise: update of app/src/main/res/values-pl-rPL/strings.xml
* Lokalise: update of app/src/main/res/values-ro/strings.xml
* 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.
* Fixed bug where ACCESS_BACKGROUND_LOCATION was used below API level 29. Removed ACCESS_COARSE_LOCATION permission since it has no purpose when ACCESS_FINE_LOCATION is used.
* Added a more generic validatePermissions to PermissionManager and renamed haveLocationPermissions to hasLocationPermissions.
* 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.
* extract dependencies
* Update test command and add lint
* Move Retrofit into data module and test authentication service
* Implement authorization repository
* Implementation authentication usecase
* Implementation presenter layer
* Remove old session stuff
* Java time backport
* Dependency with dagger
* Update gitignore
* Remove idea file
* Remove fcm
* Remove test folder
* Clear resources
* Create onboarding activity
* Discovery fragment
* Manual setup fragment
* Authentication fragment
* WebView Activity
* Handle back press
* Save session
* refresh token
* Settings activity
* Clear read me
* Use JSONObject to serialize json.
Check token each time the frontend hit getExternalAuth
Use Android client id