From 10e8a21216fe8cb25140b583ce5275a171e8b64a Mon Sep 17 00:00:00 2001 From: Tim Kluge Date: Wed, 4 Dec 2024 23:34:28 +0100 Subject: [PATCH] Initial commit --- .gitignore | 11 + ICON_LICENSE | 9 + LICENSE | 201 +++++++++++++++ README.md | 35 +++ app/.gitignore | 1 + app/build.gradle.kts | 51 ++++ app/karoo-winddir.png | Bin 0 -> 5774 bytes app/manifest.json | 11 + app/proguard-rules.pro | 21 ++ app/src/main/AndroidManifest.xml | 37 +++ app/src/main/ic_launcher-playstore.png | Bin 0 -> 21473 bytes .../de/timklge/karoowinddir/Extensions.kt | 175 +++++++++++++ .../karoowinddir/KarooWindroseExtension.kt | 132 ++++++++++ .../de/timklge/karoowinddir/MainActivity.kt | 26 ++ .../de/timklge/karoowinddir/OpenMeteoData.kt | 27 ++ .../datatypes/CloudCoverDataType.kt | 10 + .../karoowinddir/datatypes/GpsCoordinates.kt | 41 +++ .../datatypes/PrecipitationDataType.kt | 10 + .../datatypes/RelativeHumidityDataType.kt | 10 + .../datatypes/RelativeWindDirection.kt | 74 ++++++ .../datatypes/SurfacePressureDataType.kt | 10 + .../karoowinddir/datatypes/WeatherDataType.kt | 39 +++ .../datatypes/WindDirectionDataType.kt | 94 +++++++ .../datatypes/WindGustsDataType.kt | 10 + .../datatypes/WindSpeedDataType.kt | 10 + .../datatypes/WindroseDataType.kt | 121 +++++++++ .../timklge/karoowinddir/screens/Dropdown.kt | 63 +++++ .../karoowinddir/screens/MainScreen.kt | 219 ++++++++++++++++ .../de/timklge/karoowinddir/theme/Theme.kt | 13 + app/src/main/res/drawable-hdpi/ic_cloud.png | Bin 0 -> 613 bytes .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 617 bytes app/src/main/res/drawable-hdpi/ic_water.png | Bin 0 -> 458 bytes app/src/main/res/drawable-mdpi/ic_cloud.png | Bin 0 -> 386 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 316 bytes app/src/main/res/drawable-mdpi/ic_water.png | Bin 0 -> 199 bytes app/src/main/res/drawable-xhdpi/ic_cloud.png | Bin 0 -> 756 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 666 bytes app/src/main/res/drawable-xhdpi/ic_water.png | Bin 0 -> 432 bytes app/src/main/res/drawable-xxhdpi/ic_cloud.png | Bin 0 -> 1234 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 1155 bytes app/src/main/res/drawable-xxhdpi/ic_water.png | Bin 0 -> 724 bytes .../main/res/drawable-xxxhdpi/ic_cloud.png | Bin 0 -> 1694 bytes .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 1552 bytes .../main/res/drawable-xxxhdpi/ic_water.png | Bin 0 -> 996 bytes app/src/main/res/drawable/arrow_0.png | Bin 0 -> 980 bytes app/src/main/res/drawable/arrow_1.png | Bin 0 -> 3030 bytes app/src/main/res/drawable/arrow_10.png | Bin 0 -> 2834 bytes app/src/main/res/drawable/arrow_11.png | Bin 0 -> 3090 bytes app/src/main/res/drawable/arrow_2.png | Bin 0 -> 2952 bytes app/src/main/res/drawable/arrow_3.png | Bin 0 -> 749 bytes app/src/main/res/drawable/arrow_4.png | Bin 0 -> 2883 bytes app/src/main/res/drawable/arrow_5.png | Bin 0 -> 3173 bytes app/src/main/res/drawable/arrow_6.png | Bin 0 -> 943 bytes app/src/main/res/drawable/arrow_7.png | Bin 0 -> 3057 bytes app/src/main/res/drawable/arrow_8.png | Bin 0 -> 3020 bytes app/src/main/res/drawable/arrow_9.png | Bin 0 -> 758 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 844 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 824 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 1698 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 608 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 534 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1140 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1052 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 1152 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 2336 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 1542 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 1838 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 3732 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 2136 bytes .../ic_launcher_foreground.webp | Bin 0 -> 2630 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 5456 bytes app/src/main/res/values/colors.xml | 7 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 20 ++ app/src/main/res/xml/extension_info.xml | 62 +++++ build.gradle.kts | 6 + gradle.properties | 23 ++ gradle/libs.versions.toml | 49 ++++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 61574 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 244 ++++++++++++++++++ gradlew.bat | 92 +++++++ preview0.png | Bin 0 -> 72513 bytes preview1.png | Bin 0 -> 42892 bytes preview2.png | Bin 0 -> 38187 bytes preview3.png | Bin 0 -> 46249 bytes settings.gradle.kts | 38 +++ 89 files changed, 2022 insertions(+) create mode 100644 .gitignore create mode 100644 ICON_LICENSE create mode 100644 LICENSE create mode 100644 README.md create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/karoo-winddir.png create mode 100644 app/manifest.json create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/Extensions.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/KarooWindroseExtension.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/MainActivity.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/OpenMeteoData.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/CloudCoverDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/GpsCoordinates.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/PrecipitationDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeHumidityDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeWindDirection.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/SurfacePressureDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WeatherDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindDirectionDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindGustsDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindSpeedDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindroseDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/screens/Dropdown.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/screens/MainScreen.kt create mode 100644 app/src/main/kotlin/de/timklge/karoowinddir/theme/Theme.kt create mode 100644 app/src/main/res/drawable-hdpi/ic_cloud.png create mode 100644 app/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-hdpi/ic_water.png create mode 100644 app/src/main/res/drawable-mdpi/ic_cloud.png create mode 100644 app/src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-mdpi/ic_water.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_cloud.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_water.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_cloud.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_water.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_cloud.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_water.png create mode 100644 app/src/main/res/drawable/arrow_0.png create mode 100644 app/src/main/res/drawable/arrow_1.png create mode 100644 app/src/main/res/drawable/arrow_10.png create mode 100644 app/src/main/res/drawable/arrow_11.png create mode 100644 app/src/main/res/drawable/arrow_2.png create mode 100644 app/src/main/res/drawable/arrow_3.png create mode 100644 app/src/main/res/drawable/arrow_4.png create mode 100644 app/src/main/res/drawable/arrow_5.png create mode 100644 app/src/main/res/drawable/arrow_6.png create mode 100644 app/src/main/res/drawable/arrow_7.png create mode 100644 app/src/main/res/drawable/arrow_8.png create mode 100644 app/src/main/res/drawable/arrow_9.png create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/xml/extension_info.xml create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 preview0.png create mode 100644 preview1.png create mode 100644 preview2.png create mode 100644 preview3.png create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..43ebc8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties +/app/release diff --git a/ICON_LICENSE b/ICON_LICENSE new file mode 100644 index 0000000..d8e6845 --- /dev/null +++ b/ICON_LICENSE @@ -0,0 +1,9 @@ + The MIT License (MIT) + +Copyright (c) 2015-2021 Aniket Suvarna + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a828d8c --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Hammerhead Navigation, Inc. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..919c468 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Karoo Winddir Extension + +> [!WARNING] +> This app is currently in prototype stage and its main features might not work at all. If you want to test it anyway and encounter issues, please report them in the [issue tracker](https://github.com/timklge/karoo-winddir/issues), ideally with adb logs attached. + +This extension for Karoo devices adds a graphical data field that shows the current wind direction relative to the rider as an arrow. It also provides data fields for relative humidity, cloud coverage, wind speed, wind gust speed, surface pressure, and rainfall at the current location. + +Compatible with Karoo 2 and Karoo 3 devices running Karoo OS version 1.524.2003 and later. + +![Map previw](preview0.png) +![Field setup](preview1.png) +![Data page](preview2.png) +![Settings](preview3.png) + +## Installation + +Currently, Hammerhead has not yet released an on-device app store for easy installation of extensions like this. Until then, you can sideload the app. + +1. Download the APK from the [releases page](https://github.com/timklge/karoo-winddir/releases) (or build it from source). +2. Prepare your Karoo for sideloading by following the [step-by-step guide](https://www.dcrainmaker.com/2021/02/how-to-sideload-android-apps-on-your-hammerhead-karoo-1-karoo-2.html) by DC Rainmaker. +3. Install the app using the command `adb install app-release.apk`. + +## Usage + +After installing this app on your Karoo, you can add a data field showing the relative wind direction or one of the auxiliary fields to your data pages. The relative wind direction will be shown as an arrow image, with an optional overlay of the wind speed in your chosen unit of measurement (default is kilometers per hour). + +The app will automatically attempt to download weather data for your current approximate location from the [open-meteo.com](https://open-meteo.com) API once your device has acquired a GPS fix. The API service is free for non-commercial use. Your location is rounded to approximately two kilometers to maintain privacy. The data is updated when you ride more than two kilometers from the location where the weather data was downloaded or after one hour at the latest. If the app cannot connect to the weather service, it will retry the download every minute. Downloading weather data should work on Karoo 2 if you have a SIM card inserted or on Karoo 3 via the companion app. + +## Credits + +Icons are from [boxicons.com](https://boxicons.com) (MIT-licensed). + +## Links + +[karoo-ext source](https://github.com/hammerheadnav/karoo-ext) \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..8791448 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,51 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.compose.compiler) + kotlin("plugin.serialization") version "2.0.20" +} + +android { + namespace = "de.timklge.karoowinddir" + compileSdk = 34 + + defaultConfig { + applicationId = "de.timklge.karoowinddir" + minSdk = 26 + targetSdk = 34 + versionCode = 1 + versionName = "1.0.0-beta1" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(libs.hammerhead.karoo.ext) + implementation(libs.androidx.core.ktx) + implementation(libs.bundles.androidx.lifeycle) + implementation(libs.androidx.activity.compose) + implementation(libs.bundles.compose.ui) + implementation(libs.androidx.navigation.runtime.ktx) + implementation(libs.androidx.navigation.compose) + implementation(libs.kotlinx.serialization.json) + implementation(libs.androidx.datastore.preferences) + implementation(libs.androidx.glance.appwidget) + implementation(libs.androidx.glance.appwidget.preview) + implementation(libs.androidx.glance.preview) +} \ No newline at end of file diff --git a/app/karoo-winddir.png b/app/karoo-winddir.png new file mode 100644 index 0000000000000000000000000000000000000000..3599eefcadb41a4e1f68b8d46e361b1cf8193712 GIT binary patch literal 5774 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 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..644d13983b6f5358e127ae39b2d6ca27c3e8d768 GIT binary patch literal 21473 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 literal 0 HcmV?d00001 diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/Extensions.kt b/app/src/main/kotlin/de/timklge/karoowinddir/Extensions.kt new file mode 100644 index 0000000..25780ae --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/Extensions.kt @@ -0,0 +1,175 @@ +package de.timklge.karoowinddir + +import android.content.Context +import android.util.Log +import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.stringPreferencesKey +import de.timklge.karoowinddir.datatypes.GpsCoordinates +import de.timklge.karoowinddir.screens.WinddirSettings +import de.timklge.karoowinddir.screens.WinddirStats +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.HttpResponseState +import io.hammerhead.karooext.models.OnHttpResponse +import io.hammerhead.karooext.models.OnStreamState +import io.hammerhead.karooext.models.StreamState +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.channels.trySendBlocking +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.mapNotNull +import kotlinx.coroutines.flow.single +import kotlinx.coroutines.flow.timeout +import kotlinx.coroutines.time.debounce +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import java.time.Duration +import kotlin.math.absoluteValue +import kotlin.math.roundToInt +import kotlin.time.Duration.Companion.seconds + +val jsonWithUnknownKeys = Json { ignoreUnknownKeys = true } + +val settingsKey = stringPreferencesKey("settings") +val currentDataKey = stringPreferencesKey("current") +val statsKey = stringPreferencesKey("stats") + +suspend fun saveSettings(context: Context, settings: WinddirSettings) { + context.dataStore.edit { t -> + t[settingsKey] = Json.encodeToString(settings) + } +} + +suspend fun saveStats(context: Context, stats: WinddirStats) { + context.dataStore.edit { t -> + t[statsKey] = Json.encodeToString(stats) + } +} + +suspend fun saveCurrentData(context: Context, forecast: OpenMeteoCurrentWeatherResponse) { + context.dataStore.edit { t -> + t[currentDataKey] = Json.encodeToString(forecast) + } +} + +fun KarooSystemService.streamDataFlow(dataTypeId: String): Flow { + return callbackFlow { + val listenerId = addConsumer(OnStreamState.StartStreaming(dataTypeId)) { event: OnStreamState -> + trySendBlocking(event.state) + } + awaitClose { + removeConsumer(listenerId) + } + } +} + +fun Context.streamCurrentWeatherData(): Flow { + return dataStore.data.map { settingsJson -> + try { + val data = settingsJson[currentDataKey] + data?.let { d -> jsonWithUnknownKeys.decodeFromString(d) } + } catch (e: Throwable) { + Log.e(KarooWinddirExtension.TAG, "Failed to read preferences", e) + null + } + }.filterNotNull().distinctUntilChanged().filter { it.current.time * 1000 >= System.currentTimeMillis() - (1000 * 60 * 60 * 3) } +} + +fun Context.streamSettings(): Flow { + return dataStore.data.map { settingsJson -> + try { + jsonWithUnknownKeys.decodeFromString( + settingsJson[settingsKey] ?: WinddirSettings.defaultSettings + ) + } catch(e: Throwable){ + Log.e(KarooWinddirExtension.TAG, "Failed to read preferences", e) + jsonWithUnknownKeys.decodeFromString(WinddirSettings.defaultSettings) + } + }.distinctUntilChanged() +} + +fun Context.streamStats(): Flow { + return dataStore.data.map { statsJson -> + try { + jsonWithUnknownKeys.decodeFromString( + statsJson[statsKey] ?: WinddirStats.defaultStats + ) + } catch(e: Throwable){ + Log.e(KarooWinddirExtension.TAG, "Failed to read stats", e) + jsonWithUnknownKeys.decodeFromString(WinddirStats.defaultStats) + } + }.distinctUntilChanged() +} + +@OptIn(FlowPreview::class) +suspend fun KarooSystemService.makeOpenMeteoHttpRequest(gpsCoordinates: GpsCoordinates, settings: WinddirSettings): HttpResponseState.Complete { + return callbackFlow { + // https://open-meteo.com/en/docs#current=temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m&hourly=&daily=&location_mode=csv_coordinates&timeformat=unixtime&forecast_days=3 + val url = "https://api.open-meteo.com/v1/forecast?latitude=${gpsCoordinates.lat}&longitude=${gpsCoordinates.lon}¤t=temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m,surface_pressure&timeformat=unixtime&wind_speed_unit=${settings.windUnit.id}&precipitation_unit=${settings.precipitationUnit.id}" + + Log.d(KarooWinddirExtension.TAG, "Http request to ${url}...") + + val listenerId = addConsumer( + OnHttpResponse.MakeHttpRequest( + "GET", + url, + waitForConnection = false, + ), + ) { event: OnHttpResponse -> + Log.d(KarooWinddirExtension.TAG, "Http response event $event") + if (event.state is HttpResponseState.Complete){ + trySend(event.state as HttpResponseState.Complete) + close() + } + } + awaitClose { + removeConsumer(listenerId) + } + }.timeout(20.seconds).catch { e: Throwable -> + if (e is TimeoutCancellationException){ + emit(HttpResponseState.Complete(500, mapOf(), null, "Timeout")) + } else { + throw e + } + }.single() +} + +fun KarooSystemService.getHeadingFlow(): Flow { + // return flowOf(2) + + return streamDataFlow(DataType.Type.HEADING) + .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.singleValue } + .map { it.roundToInt() } + .distinctUntilChanged() +} + +@OptIn(FlowPreview::class) +fun KarooSystemService.getGpsCoordinateFlow(): Flow { + // return flowOf(GpsCoordinates(52.5164069,13.3784)) + + return streamDataFlow("TYPE_LOCATION_ID") + .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.values } + .mapNotNull { values -> + val lat = values[DataType.Field.LOC_LATITUDE] + val lon = values[DataType.Field.LOC_LONGITUDE] + + if (lat != null && lon != null){ + Log.d(KarooWinddirExtension.TAG, "Updated gps coords: $lat $lon") + GpsCoordinates(lat, lon) + } else { + Log.e(KarooWinddirExtension.TAG, "Missing gps values: $values") + null + } + } + .map { it.round() } + .distinctUntilChanged { old, new -> old.distanceTo(new).absoluteValue < 0.001 } + .debounce(Duration.ofSeconds(10)) +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/KarooWindroseExtension.kt b/app/src/main/kotlin/de/timklge/karoowinddir/KarooWindroseExtension.kt new file mode 100644 index 0000000..cd950c7 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/KarooWindroseExtension.kt @@ -0,0 +1,132 @@ +package de.timklge.karoowinddir + +import android.util.Log +import de.timklge.karoowinddir.datatypes.CloudCoverDataType +import de.timklge.karoowinddir.datatypes.GpsCoordinates +import de.timklge.karoowinddir.datatypes.PrecipitationDataType +import de.timklge.karoowinddir.datatypes.RelativeHumidityDataType +import de.timklge.karoowinddir.datatypes.SurfacePressureDataType +import de.timklge.karoowinddir.datatypes.WindDirectionDataType +import de.timklge.karoowinddir.datatypes.WindGustsDataType +import de.timklge.karoowinddir.datatypes.WindSpeedDataType +import de.timklge.karoowinddir.datatypes.WinddirDataType +import de.timklge.karoowinddir.screens.WinddirStats +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.extension.KarooExtension +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.retry +import kotlinx.coroutines.flow.transformLatest +import kotlinx.coroutines.launch +import kotlin.time.Duration.Companion.hours +import kotlin.time.Duration.Companion.minutes + +class KarooWinddirExtension : KarooExtension("karoo-winddir", "1.0.0-beta1") { + companion object { + const val TAG = "karoo-winddir" + } + + lateinit var karooSystem: KarooSystemService + + private var serviceJob: Job? = null + + override val types by lazy { + listOf( + WinddirDataType(karooSystem, applicationContext), + RelativeHumidityDataType(applicationContext), + CloudCoverDataType(applicationContext), + WindSpeedDataType(applicationContext), + WindGustsDataType(applicationContext), + WindDirectionDataType(karooSystem, applicationContext), + PrecipitationDataType(applicationContext), + SurfacePressureDataType(applicationContext) + ) + } + + @OptIn(ExperimentalCoroutinesApi::class) + override fun onCreate() { + super.onCreate() + + karooSystem = KarooSystemService(applicationContext) + + serviceJob = CoroutineScope(Dispatchers.IO).launch { + karooSystem.connect { connected -> + if (connected) { + Log.d(TAG, "Connected to Karoo system") + } + } + + val gpsFlow = karooSystem + .getGpsCoordinateFlow() + .transformLatest { value: GpsCoordinates -> + while(true){ + emit(value) + delay(1.hours) + } + } + + streamSettings() + .filter { it.welcomeDialogAccepted } + .combine(gpsFlow) { settings, gps -> settings to gps } + .map { (settings, gps) -> + Log.d(TAG, "Acquired updated gps coordinates: $gps") + + val lastKnownStats = try { + streamStats().first() + } catch(e: Exception){ + Log.e(TAG, "Failed to read stats", e) + WinddirStats() + } + + val response = karooSystem.makeOpenMeteoHttpRequest(gps, settings) + if (response.error != null){ + try { + val stats = lastKnownStats.copy(failedWeatherRequest = System.currentTimeMillis()) + launch { saveStats(this@KarooWinddirExtension, stats) } + } catch(e: Exception){ + Log.e(TAG, "Failed to write stats", e) + } + error("HTTP request failed: ${response.error}") + } else { + try { + val stats = lastKnownStats.copy( + lastSuccessfulWeatherRequest = System.currentTimeMillis(), + lastSuccessfulWeatherPosition = gps + ) + launch { saveStats(this@KarooWinddirExtension, stats) } + } catch(e: Exception){ + Log.e(TAG, "Failed to write stats", e) + } + } + + response + } + .retry(Long.MAX_VALUE) { delay(1.minutes); true } + .collect { response -> + try { + val responseString = String(response.body ?: ByteArray(0)) + val data = jsonWithUnknownKeys.decodeFromString(responseString) + + saveCurrentData(applicationContext, data) + Log.d(TAG, "Got updated weather info: $data") + } catch(e: Exception){ + Log.e(TAG, "Failed to read current weather data", e) + } + } + } + } + + override fun onDestroy() { + serviceJob?.cancel() + serviceJob = null + karooSystem.disconnect() + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/MainActivity.kt b/app/src/main/kotlin/de/timklge/karoowinddir/MainActivity.kt new file mode 100644 index 0000000..fca6675 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/MainActivity.kt @@ -0,0 +1,26 @@ +package de.timklge.karoowinddir + +import android.content.Context +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.material3.Text +import androidx.datastore.core.DataStore +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.preferencesDataStore +import de.timklge.karoowinddir.screens.MainScreen +import de.timklge.karoowinddir.theme.AppTheme + +val Context.dataStore: DataStore by preferencesDataStore(name = "settings") + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + AppTheme { + MainScreen() + } + } + } +} diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/OpenMeteoData.kt b/app/src/main/kotlin/de/timklge/karoowinddir/OpenMeteoData.kt new file mode 100644 index 0000000..be01dff --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/OpenMeteoData.kt @@ -0,0 +1,27 @@ +package de.timklge.karoowinddir + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class OpenMeteoData( + val time: Long, val interval: Int, + @SerialName("temperature_2m") val temperature: Double, + @SerialName("relative_humidity_2m") val relativeHumidity: Int, + @SerialName("precipitation") val precipitation: Double, + @SerialName("cloud_cover") val cloudCover: Int, + @SerialName("surface_pressure") val surfacePressure: Double, + @SerialName("wind_speed_10m") val windSpeed: Double, + @SerialName("wind_direction_10m") val windDirection: Double, + @SerialName("wind_gusts_10m") val windGusts: Double +) + +@Serializable +data class OpenMeteoCurrentWeatherResponse( + val current: OpenMeteoData, + val latitude: Double, + val longitude: Double, + val timezone: String, + val elevation: Double, + @SerialName("utc_offset_seconds") val utfOffsetSeconds: Int +) \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/CloudCoverDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/CloudCoverDataType.kt new file mode 100644 index 0000000..380efdb --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/CloudCoverDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class CloudCoverDataType(context: Context) : WeatherDataType(context, "cloudCover"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.cloudCover.toDouble() + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/GpsCoordinates.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/GpsCoordinates.kt new file mode 100644 index 0000000..064e344 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/GpsCoordinates.kt @@ -0,0 +1,41 @@ +package de.timklge.karoowinddir.datatypes + +import kotlinx.serialization.Serializable +import kotlin.math.atan2 +import kotlin.math.cos +import kotlin.math.pow +import kotlin.math.roundToInt +import kotlin.math.sin +import kotlin.math.sqrt + +@Serializable +data class GpsCoordinates(val lat: Double, val lon: Double){ + companion object { + private fun roundDegrees(degrees: Double, km: Double): Double { + val nkm = degrees * 111 + val rounded = (nkm / km).roundToInt() * km + + return rounded / 111 + } + } + + fun round(km: Double = 2.0): GpsCoordinates { + return copy(lat = roundDegrees(lat, km), lon = roundDegrees(lon, km)) + } + + // Haversine formula in kilometers + fun distanceTo(other: GpsCoordinates): Double { + val lat1 = Math.toRadians(lat) + val lon1 = Math.toRadians(lon) + val lat2 = Math.toRadians(other.lat) + val lon2 = Math.toRadians(other.lon) + val dlat = lat2 - lat1 + val dlon = lon2 - lon1 + val a = sin(dlat / 2).pow(2) + cos(lat1) * cos(lat2) * sin(dlon / 2).pow(2) + val c = 2 * atan2(sqrt(a), sqrt(1 - a)) + val r = 6371.0 + val distance = r * c + + return distance + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/PrecipitationDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/PrecipitationDataType.kt new file mode 100644 index 0000000..5320913 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/PrecipitationDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class PrecipitationDataType(context: Context) : WeatherDataType(context, "precipitation"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.precipitation + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeHumidityDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeHumidityDataType.kt new file mode 100644 index 0000000..5d55fd6 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeHumidityDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class RelativeHumidityDataType(context: Context) : WeatherDataType(context, "relativeHumidity"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.relativeHumidity.toDouble() + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeWindDirection.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeWindDirection.kt new file mode 100644 index 0000000..074398c --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/RelativeWindDirection.kt @@ -0,0 +1,74 @@ +package de.timklge.karoowinddir.datatypes + +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.TextUnitType +import androidx.compose.ui.unit.dp +import androidx.glance.ColorFilter +import androidx.glance.GlanceModifier +import androidx.glance.Image +import androidx.glance.ImageProvider +import androidx.glance.background +import androidx.glance.color.ColorProvider +import androidx.glance.layout.Alignment +import androidx.glance.layout.Box +import androidx.glance.layout.ContentScale +import androidx.glance.layout.fillMaxSize +import androidx.glance.layout.padding +import androidx.glance.preview.ExperimentalGlancePreviewApi +import androidx.glance.preview.Preview +import androidx.glance.text.Text +import androidx.glance.text.TextStyle +import de.timklge.karoowinddir.R +import kotlin.math.roundToInt + +fun getArrowResourceByBearing(bearing: Int): Int { + val oclock = ((bearing % 360) / 30.0).roundToInt() + + return when (oclock){ + 0 -> R.drawable.arrow_0 + 1 -> R.drawable.arrow_1 + 2 -> R.drawable.arrow_2 + 3 -> R.drawable.arrow_3 + 4 -> R.drawable.arrow_4 + 5 -> R.drawable.arrow_5 + 6 -> R.drawable.arrow_6 + 7 -> R.drawable.arrow_7 + 8 -> R.drawable.arrow_8 + 9 -> R.drawable.arrow_9 + 10 -> R.drawable.arrow_10 + 11 -> R.drawable.arrow_11 + 12 -> R.drawable.arrow_0 + else -> error("Bearing $bearing out of range") + } +} + +@OptIn(ExperimentalGlancePreviewApi::class) +@Preview(widthDp = 200, heightDp = 150) +@Composable +fun RelativeWindDirection(bearing: Int, fontSize: Int, overlayText: String? = null) { + Box( + modifier = GlanceModifier.fillMaxSize().padding(5.dp), + contentAlignment = Alignment( + vertical = Alignment.Vertical.CenterVertically, + horizontal = Alignment.Horizontal.CenterHorizontally, + ), + ) { + Image( + modifier = GlanceModifier.fillMaxSize(), + provider = ImageProvider(getArrowResourceByBearing(bearing)), + contentDescription = "Relative wind direction indicator", + contentScale = ContentScale.Fit, + colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White)) + ) + + overlayText?.let { + Text( + overlayText, + style = TextStyle(ColorProvider(Color.White, Color.White), fontSize = TextUnit(fontSize.toFloat()*0.7f, TextUnitType.Sp)), + modifier = GlanceModifier.background(Color(0f, 0f, 0f, 0.5f)).padding(5.dp) + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/SurfacePressureDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/SurfacePressureDataType.kt new file mode 100644 index 0000000..4f8a932 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/SurfacePressureDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class SurfacePressureDataType(context: Context) : WeatherDataType(context, "surfacePressure"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.surfacePressure + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WeatherDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WeatherDataType.kt new file mode 100644 index 0000000..b5b8f81 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WeatherDataType.kt @@ -0,0 +1,39 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import android.util.Log +import de.timklge.karoowinddir.KarooWinddirExtension +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse +import de.timklge.karoowinddir.streamCurrentWeatherData +import io.hammerhead.karooext.extension.DataTypeImpl +import io.hammerhead.karooext.internal.Emitter +import io.hammerhead.karooext.models.DataPoint +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.StreamState +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch + +abstract class WeatherDataType( + private val applicationContext: Context, + dataTypeId: String +) : DataTypeImpl("karoo-winddir", dataTypeId) { + abstract fun getValue(data: OpenMeteoCurrentWeatherResponse): Double + + override fun startStream(emitter: Emitter) { + Log.d(KarooWinddirExtension.TAG, "start $dataTypeId stream") + val job = CoroutineScope(Dispatchers.IO).launch { + val currentWeatherData = applicationContext.streamCurrentWeatherData() + + currentWeatherData.collect { data -> + val value = getValue(data) + Log.d(KarooWinddirExtension.TAG, "$dataTypeId: $value") + emitter.onNext(StreamState.Streaming(DataPoint(dataTypeId, mapOf(DataType.Field.SINGLE to value)))) + } + } + emitter.setCancellable { + Log.d(KarooWinddirExtension.TAG, "stop $dataTypeId stream") + job.cancel() + } + } +} diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindDirectionDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindDirectionDataType.kt new file mode 100644 index 0000000..2807712 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindDirectionDataType.kt @@ -0,0 +1,94 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import android.util.Log +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.TextUnitType +import androidx.compose.ui.unit.dp +import androidx.glance.GlanceModifier +import androidx.glance.appwidget.ExperimentalGlanceRemoteViewsApi +import androidx.glance.appwidget.GlanceRemoteViews +import androidx.glance.background +import androidx.glance.color.ColorProvider +import androidx.glance.layout.Alignment +import androidx.glance.layout.Box +import androidx.glance.layout.fillMaxSize +import androidx.glance.layout.padding +import androidx.glance.text.FontFamily +import androidx.glance.text.FontStyle +import androidx.glance.text.Text +import androidx.glance.text.TextStyle +import de.timklge.karoowinddir.KarooWinddirExtension +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse +import de.timklge.karoowinddir.streamDataFlow +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.internal.ViewEmitter +import io.hammerhead.karooext.models.StreamState +import io.hammerhead.karooext.models.UpdateGraphicConfig +import io.hammerhead.karooext.models.ViewConfig +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.flow.onCompletion +import kotlinx.coroutines.launch +import kotlin.math.roundToInt + +class WindDirectionDataType(val karooSystem: KarooSystemService, context: Context) : WeatherDataType(context, "windDirection"){ + @OptIn(ExperimentalGlanceRemoteViewsApi::class) + private val glance = GlanceRemoteViews() + + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.windDirection + } + + @OptIn(ExperimentalGlanceRemoteViewsApi::class) + override fun startView(context: Context, config: ViewConfig, emitter: ViewEmitter) { + val configJob = CoroutineScope(Dispatchers.IO).launch { + emitter.onNext(UpdateGraphicConfig(showHeader = true)) + awaitCancellation() + } + + val viewJob = CoroutineScope(Dispatchers.IO).launch { + karooSystem.streamDataFlow(dataTypeId) + .onCompletion { + val result = glance.compose(context, DpSize.Unspecified) { } + emitter.updateView(result.remoteViews) + } + .collect { + val windBearing = (it as? StreamState.Streaming)?.dataPoint?.singleValue?.toInt() ?: 0 + val windCardinalDirection = ((windBearing % 360) / 45.0).roundToInt() % 8 + val text = when(windCardinalDirection){ + 0 -> "N" + 1 -> "NE" + 2 -> "E" + 3 -> "SE" + 4 -> "S" + 5 -> "SW" + 6 -> "W" + 7 -> "NW" + else -> "N/A" + } + Log.d( KarooWinddirExtension.TAG,"Updating wind direction view") + val result = glance.compose(context, DpSize.Unspecified) { + Box(modifier = GlanceModifier.fillMaxSize(), + contentAlignment = Alignment( + vertical = Alignment.Vertical.Top, + horizontal = Alignment.Horizontal.End, + )) { + Text(text, style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontFamily = FontFamily.Monospace, fontSize = TextUnit( + config.textSize.toFloat(), TextUnitType.Sp) /* FIXME: Read data field alignment config, karoo-ext #10 */)) + } + } + emitter.updateView(result.remoteViews) + } + } + + emitter.setCancellable { + configJob.cancel() + viewJob.cancel() + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindGustsDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindGustsDataType.kt new file mode 100644 index 0000000..f42b60e --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindGustsDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class WindGustsDataType(context: Context) : WeatherDataType(context, "windGusts"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.windGusts + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindSpeedDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindSpeedDataType.kt new file mode 100644 index 0000000..c100807 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindSpeedDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karoowinddir.datatypes + +import android.content.Context +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse + +class WindSpeedDataType(context: Context) : WeatherDataType(context, "windSpeed"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.windSpeed + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindroseDataType.kt b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindroseDataType.kt new file mode 100644 index 0000000..6cdbc4c --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/datatypes/WindroseDataType.kt @@ -0,0 +1,121 @@ +package de.timklge.karoowinddir.datatypes + +import android.util.Log +import android.content.Context +import androidx.compose.ui.unit.DpSize +import androidx.glance.appwidget.ExperimentalGlanceRemoteViewsApi +import androidx.glance.appwidget.GlanceRemoteViews +import de.timklge.karoowinddir.KarooWinddirExtension +import de.timklge.karoowinddir.OpenMeteoCurrentWeatherResponse +import de.timklge.karoowinddir.getHeadingFlow +import de.timklge.karoowinddir.screens.WinddirSettings +import de.timklge.karoowinddir.streamCurrentWeatherData +import de.timklge.karoowinddir.streamDataFlow +import de.timklge.karoowinddir.streamSettings +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.extension.DataTypeImpl +import io.hammerhead.karooext.internal.Emitter +import io.hammerhead.karooext.internal.ViewEmitter +import io.hammerhead.karooext.models.DataPoint +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.StreamState +import io.hammerhead.karooext.models.UpdateGraphicConfig +import io.hammerhead.karooext.models.ViewConfig +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ObsoleteCoroutinesApi +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.mapNotNull +import kotlinx.coroutines.flow.onCompletion +import kotlinx.coroutines.launch +import kotlin.math.abs +import kotlin.math.roundToInt + +@OptIn(ExperimentalGlanceRemoteViewsApi::class) +class WinddirDataType( + private val karooSystem: KarooSystemService, + private val applicationContext: Context +) : DataTypeImpl("karoo-winddir", "winddir") { + private val glance = GlanceRemoteViews() + + private fun signedAngleDifference(angle1: Double, angle2: Double): Double { + val a1 = angle1 % 360 + val a2 = angle2 % 360 + var diff = abs(a1 - a2) + + val sign = if (a1 < a2) { + if (diff > 180.0) -1 else 1 + } else { + if (diff > 180.0) 1 else -1 + } + + if (diff > 180.0) { + diff = 360.0 - diff + } + + return sign * diff + } + + override fun startStream(emitter: Emitter) { + Log.d(KarooWinddirExtension.TAG, "start winddir stream") + val job = CoroutineScope(Dispatchers.IO).launch { + val currentWeatherData = applicationContext.streamCurrentWeatherData() + + karooSystem + .getHeadingFlow() + .filter { it >= 0 } + .combine(currentWeatherData) { cardinalDirection, data -> cardinalDirection to data } + .collect { (cardinalDirection, data) -> + val bearing = cardinalDirection * 45.0 + val windBearing = data.current.windDirection + 180 + + val diff = (signedAngleDifference(bearing, windBearing) + 360) % 360 + Log.d(KarooWinddirExtension.TAG, "wind bearing: $bearing vs $windBearing => $diff") + emitter.onNext(StreamState.Streaming(DataPoint(dataTypeId, mapOf(DataType.Field.SINGLE to diff)))) + } + } + emitter.setCancellable { + Log.d(KarooWinddirExtension.TAG, "stop winddir stream") + job.cancel() + } + } + + @OptIn(ObsoleteCoroutinesApi::class) + override fun startView(context: Context, config: ViewConfig, emitter: ViewEmitter) { + Log.d(KarooWinddirExtension.TAG, "Starting winddir view with $emitter") + val configJob = CoroutineScope(Dispatchers.IO).launch { + emitter.onNext(UpdateGraphicConfig(showHeader = false)) + awaitCancellation() + } + + data class StreamData(val value: Double, val data: OpenMeteoCurrentWeatherResponse, val settings: WinddirSettings) + + val viewJob = CoroutineScope(Dispatchers.IO).launch { + karooSystem.streamDataFlow(dataTypeId) + .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.singleValue } + .combine(context.streamCurrentWeatherData()) { value, data -> value to data } + .combine(context.streamSettings()) { (value, data), settings -> StreamData(value, data, settings) } + .onCompletion { + val result = glance.compose(context, DpSize.Unspecified) { } + emitter.updateView(result.remoteViews) + } + .collect { streamData -> + Log.d(KarooWinddirExtension.TAG, "Updating view") + val windSpeedText = if(streamData.settings.showWindspeedOverlay) "${streamData.data.current.windSpeed.roundToInt()}" else null + + val result = glance.compose(context, DpSize.Unspecified) { + RelativeWindDirection(streamData.value.roundToInt(), config.textSize, windSpeedText) + } + + emitter.updateView(result.remoteViews) + } + } + emitter.setCancellable { + Log.d(KarooWinddirExtension.TAG, "Stopping winddir view with $emitter") + configJob.cancel() + viewJob.cancel() + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/screens/Dropdown.kt b/app/src/main/kotlin/de/timklge/karoowinddir/screens/Dropdown.kt new file mode 100644 index 0000000..3722288 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/screens/Dropdown.kt @@ -0,0 +1,63 @@ +package de.timklge.karoowinddir.screens + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExposedDropdownMenuBox +import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.MenuAnchorType +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier + + +data class DropdownOption(val id: String, val name: String) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun Dropdown(label: String, options: List, initialSelection: DropdownOption, onSelect: (selectedOption: DropdownOption) -> Unit) { + var expanded by remember { mutableStateOf(false) } + var selected by remember { mutableStateOf(initialSelection) } + + ExposedDropdownMenuBox( + expanded = expanded, + onExpandedChange = { expanded = it }, + ) { + OutlinedTextField( + readOnly = true, + value = selected.name, + onValueChange = { }, + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryEditable, true).fillMaxWidth(), + label = { Text(label) }, + trailingIcon = { + ExposedDropdownMenuDefaults.TrailingIcon( + expanded = expanded + ) + }, + colors = ExposedDropdownMenuDefaults.textFieldColors() + ) + ExposedDropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + ) { + options.forEach { option -> + DropdownMenuItem( + text = { Text(option.name, style = MaterialTheme.typography.bodyLarge) }, + onClick = { + selected = option + expanded = false + onSelect(selected) + }, + contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding, + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/screens/MainScreen.kt b/app/src/main/kotlin/de/timklge/karoowinddir/screens/MainScreen.kt new file mode 100644 index 0000000..04921de --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/screens/MainScreen.kt @@ -0,0 +1,219 @@ +package de.timklge.karoowinddir.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Done +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FilledTonalButton +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import de.timklge.karoowinddir.datatypes.GpsCoordinates +import de.timklge.karoowinddir.getGpsCoordinateFlow +import de.timklge.karoowinddir.saveSettings +import de.timklge.karoowinddir.streamSettings +import de.timklge.karoowinddir.streamStats +import io.hammerhead.karooext.KarooSystemService +import kotlinx.coroutines.launch +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import java.time.Instant +import java.time.LocalDateTime +import java.time.ZoneOffset +import java.time.temporal.ChronoUnit +import kotlin.math.roundToInt + +enum class WindUnit(val id: String, val label: String, val unitDisplay: String){ + KILOMETERS_PER_HOUR("kmh", "Kilometers (km/h)", "km/h"), + METERS_PER_SECOND("ms", "Meters (m/s)", "m/s"), + MILES_PER_HOUR("mph", "Miles (mph)", "mph"), + KNOTS("kn", "Knots (kn)", "kn") +} + +enum class PrecipitationUnit(val id: String, val label: String){ + MILLIMETERS("mm", "Millimeters (mm)"), + INCH("inch", "Inch") +} + +@Serializable +data class WinddirSettings( + val windUnit: WindUnit = WindUnit.KILOMETERS_PER_HOUR, + val precipitationUnit: PrecipitationUnit = PrecipitationUnit.MILLIMETERS, + val welcomeDialogAccepted: Boolean = false, + val showWindspeedOverlay: Boolean = true +){ + companion object { + val defaultSettings = Json.encodeToString(WinddirSettings()) + } +} + +@Serializable +data class WinddirStats( + val lastSuccessfulWeatherRequest: Long? = null, + val lastSuccessfulWeatherPosition: GpsCoordinates? = null, + val failedWeatherRequest: Long? = null, +){ + companion object { + val defaultStats = Json.encodeToString(WinddirStats()) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun MainScreen() { + var karooConnected by remember { mutableStateOf(false) } + val ctx = LocalContext.current + val coroutineScope = rememberCoroutineScope() + val karooSystem = remember { KarooSystemService(ctx) } + + var selectedWindUnit by remember { mutableStateOf(WindUnit.KILOMETERS_PER_HOUR) } + var selectedPrecipitationUnit by remember { mutableStateOf(PrecipitationUnit.MILLIMETERS) } + var welcomeDialogVisible by remember { mutableStateOf(false) } + var showWindspeedOverlay by remember { mutableStateOf(false) } + + val stats by ctx.streamStats().collectAsState(WinddirStats()) + val location by karooSystem.getGpsCoordinateFlow().collectAsState(initial = null) + + var savedDialogVisible by remember { mutableStateOf(false) } + + LaunchedEffect(Unit) { + ctx.streamSettings().collect { settings -> + selectedWindUnit = settings.windUnit + selectedPrecipitationUnit = settings.precipitationUnit + welcomeDialogVisible = !settings.welcomeDialogAccepted + showWindspeedOverlay = settings.showWindspeedOverlay + } + } + + LaunchedEffect(Unit) { + karooSystem.connect { connected -> + karooConnected = connected + } + } + + Column(modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background)) { + TopAppBar(title = { Text("WindDir") }) + Column(modifier = Modifier + .padding(5.dp) + .verticalScroll(rememberScrollState()) + .fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp)) { + + val windSpeedUnitDropdownOptions = WindUnit.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } + val windSpeedUnitInitialSelection = windSpeedUnitDropdownOptions.find { option -> option.id == selectedWindUnit.id }!! + Dropdown(label = "Wind Speed Unit", options = windSpeedUnitDropdownOptions, initialSelection = windSpeedUnitInitialSelection) { selectedOption -> + selectedWindUnit = WindUnit.entries.find { unit -> unit.id == selectedOption.id }!! + } + + val precipitationUnitDropdownOptions = PrecipitationUnit.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } + val precipitationUnitInitialSelection = precipitationUnitDropdownOptions.find { option -> option.id == selectedPrecipitationUnit.id }!! + Dropdown(label = "Precipitation Unit", options = precipitationUnitDropdownOptions, initialSelection = precipitationUnitInitialSelection) { selectedOption -> + selectedPrecipitationUnit = PrecipitationUnit.entries.find { unit -> unit.id == selectedOption.id }!! + } + + Row(verticalAlignment = Alignment.CenterVertically) { + Switch(checked = showWindspeedOverlay, onCheckedChange = { showWindspeedOverlay = it}) + Spacer(modifier = Modifier.width(10.dp)) + Text("Show wind speed on direction field") + } + + FilledTonalButton(modifier = Modifier + .fillMaxWidth() + .height(50.dp), onClick = { + val newSettings = WinddirSettings(windUnit = selectedWindUnit, precipitationUnit = selectedPrecipitationUnit, welcomeDialogAccepted = true, showWindspeedOverlay = showWindspeedOverlay) + + coroutineScope.launch { + saveSettings(ctx, newSettings) + savedDialogVisible = true + } + }) { + Icon(Icons.Default.Done, contentDescription = "Save") + Spacer(modifier = Modifier.width(5.dp)) + Text("Save") + } + + if (!karooConnected){ + Text(modifier = Modifier.padding(5.dp), text = "Could not read device status. Is your Karoo updated?") + } + + val lastPosition = location?.let { l -> stats.lastSuccessfulWeatherPosition?.distanceTo(l) } + val lastPositionDistanceStr = lastPosition?.let { dist -> " (${dist.roundToInt()} km away)" } ?: "" + + if (stats.failedWeatherRequest != null && (stats.lastSuccessfulWeatherRequest == null || stats.failedWeatherRequest!! > stats.lastSuccessfulWeatherRequest!!)){ + val localTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(stats.failedWeatherRequest!!), ZoneOffset.systemDefault()).toLocalTime().truncatedTo( + ChronoUnit.SECONDS) + + val successStr = if(lastPosition != null) " Last data received at ${localTime}${lastPositionDistanceStr}." else "" + Text(modifier = Modifier.padding(5.dp), text = "Failed to update weather data; last try at ${localTime}.${successStr}") + } else if(stats.lastSuccessfulWeatherRequest != null){ + val localTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(stats.lastSuccessfulWeatherRequest!!), ZoneOffset.systemDefault()).toLocalTime().truncatedTo( + ChronoUnit.SECONDS) + + Text(modifier = Modifier.padding(5.dp), text = "Last weather data received at ${localTime}${lastPositionDistanceStr}") + } else { + Text(modifier = Modifier.padding(5.dp), text = "No weather data received yet, waiting for GPS fix...") + } + } + } + + if (savedDialogVisible){ + AlertDialog(onDismissRequest = { savedDialogVisible = false }, + confirmButton = { Button(onClick = { + savedDialogVisible = false + }) { Text("OK") } }, + text = { Text("Settings saved successfully.") } + ) + } + + if (welcomeDialogVisible){ + AlertDialog(onDismissRequest = { }, + confirmButton = { Button(onClick = { + coroutineScope.launch { + saveSettings(ctx, WinddirSettings(windUnit = selectedWindUnit, precipitationUnit = selectedPrecipitationUnit, welcomeDialogAccepted = true)) + } + }) { Text("OK") } }, + text = { + Column(modifier = Modifier.verticalScroll(rememberScrollState())) { + Text("Welcome to karoo-winddir!") + + Spacer(Modifier.padding(10.dp)) + + Text("You can add relative wind direction and other fields to your data pages in your profile settings.") + + Spacer(Modifier.padding(10.dp)) + + Text("Please note that this app periodically fetches data from the Open-Meteo API to know the current weather at your approximate location.") + } + } + ) + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoowinddir/theme/Theme.kt b/app/src/main/kotlin/de/timklge/karoowinddir/theme/Theme.kt new file mode 100644 index 0000000..0c7885f --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karoowinddir/theme/Theme.kt @@ -0,0 +1,13 @@ +package de.timklge.karoowinddir.theme + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable + +@Composable +fun AppTheme( + content: @Composable () -> Unit, +) { + MaterialTheme( + content = content, + ) +} diff --git a/app/src/main/res/drawable-hdpi/ic_cloud.png b/app/src/main/res/drawable-hdpi/ic_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd3a8742348f356d94f3593aa9ac98327084d1f GIT binary patch literal 613 zcmV-r0-F7aP)0v zXCrfxo0-Wy@4oZyeecd|Y4PF1hmXckC=^=b@%WHsS+lTZu}CB`7Y>I<#K-(ULpq&q zw{3d?b`guk-oLR+2wVvUgIzq{D5BBmFeW;V1v>!eoxo1dCeMUIp-$#HB~1~(Xf#s@c%-s&E2U!&17ilj zFDOyhCiYYSE1QOhvJ|5MLf-Bvu(^V0ogZdo_qFJfyOte%LY3%y_e*FChbHC$}{H^ zKv+_O+$%;7?;CPberY?1f2G8{$$nxDjDS_S+vtCoacig#X+XJU*S@AUZE~`Zt@@ps z;aud$5g-Fw^C-cO3>jIK>x_wekq;j}{tZ3=9lb#w+=fx900000NkvXXu0mjfNE;5Z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..31ec390df2b4a09d6f1412492ab7b9765372c26e GIT binary patch literal 617 zcmV-v0+#)WP)fWR^e>Br3Ro9z+m4DhldZJ-7y3h#K%9nE1E8B2z=9GLEgJ zN6Su$9 zXiZ8R+75)+1!*H>v)LZlreRwq(ml0lzqSDrY_TAUq_m;#Jcy`7q_;vg>Dv|*i^YBn zek%mIY@>8i8nqbVTPGhmUJE!aCd6QyQVi~^R97?()skG1L6mlgGGgR|vBtEH5c(-h zNl%M`eI5tDcZL0oBFVO3F`Nqf9@|==Co&$md+Mn1C+k~_cs7?0Q_7FNPam1i& zR5P3=3AC@XU%6cF)^>u>`+SfiIbXqKM8v-7L7(1)% zC#02$I$Y8knxH$`BE&o*GU03DQ$&Qgt)!KSy>Qm*UiQDBL(DYsi6ZU(sF{4!%hL$D z_?RX>ag5qtjGzZ%n)rOhV3~hUlny!5#3zbgKLs_q7I0 zI!8weEhOMYqMzFgzww8}F$BDjI7ID+(%IQi|13TLw6@K)!j9L500000NkvXXu0mjf D*eV!2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_water.png b/app/src/main/res/drawable-hdpi/ic_water.png new file mode 100644 index 0000000000000000000000000000000000000000..0eac7939edf94ccc3a720ac2c91c41df8b50c1a6 GIT binary patch literal 458 zcmV;*0X6=KP)0b01mY9OsI&3s5e8kT&<7X=1wr4|bH-$7@7$IYW-(|E z90<8zZjzg{WHbs23i{8=^ZX1xsq1=6#+(=?Qy6dnzbMJov&STdLwI?&WLy=$1Wa^_-JjEJ_kA6VjmP6; z2=DUC*yf6t44%Q6j5#rel9M6J%Q{2ZQ^`4Ld|&>S#2uJ4OKwX%L5aWQU11-5;md3J zRVjmR<2c?)l4Kk0J0&g`c0<;eH#Waq$5JTeu5Ti;*7r(WddV9lzg$O4ETj4Txyhu? zD@Tcmt`x45=TSBp7wc1m@?)O-5&pDho0lRiZGe8-?gG!JRaLF3W(c!L zR=%&?Z?IpLiTlzORmyR}eUe!0 zj&iQB30SOhTyku(510h!oN9goN6XO|kDl^FV2+2fu)jq6k}cQ?D(Dvs;`kvB&=>(=v#Ft8ENno}Trc2NB`bahxYp(Bgf+&i5lmPK2wK$H) zSg*me;D$8yTrP0V+c2N0Hy|V2>ZrF6JQ;YI-uup} zb12SHkiYe#fImqr_QbEK&#LRcKQ?pLYiRv2?^o6T-XBk9IG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_cloud.png b/app/src/main/res/drawable-xhdpi/ic_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..7de30f51c1efb3c8d67054410d1b0eb4ee248f04 GIT binary patch literal 756 zcmV-^!xpzEK=if?`yZ)J+A(_gUNSC8;6Z7CnP8SP1u$cv1Xaa4m5B$ z++G?@@e7rV%OVQ6mCza2)h`dK5Puc6YBt7sz;Uk57Vt?tHFKhkx4f^8nZdZefJR;> z^i(drH5d$z=)~@HI+xTh6A*qwlTQu5ea1epM`N;pd<&BQp88nB-qlGqH5By?zuncC ztRSZ^o%2F{tiZ521Cg5v!XM-Dp3i%w;4qT5cz(JcWZb1WVSicYqaOFvF)z5cXlF(3 zPH-LJI-@barPu3SHj{7|6)Ap-iWdzlsf)nynKy&+{fYV%fr?JBk;Wu~O4rRmJ`wdP z5}ct9qQ?W(!I98tG)}31j8Jx3Bs!ozWxztTh*VEO3&7!PzxtF#7++rBs80-3{oV}X zPOLsLk^(l>Ck9_eBxr*hoBEXjHqC};;X&`uL@z8K z%)r+6zY3)m!QrEm7&;!QUm~GQp6Qc7f(KYu&*gQ9OQKe*?TvbVEaJDUI+2GpEn+7P z9r#c+{tdot%&~G!R<>CkB@`s^gB<=o$zo`C!g0@esk*F)CUzIL%wm{W8_UZg(eGgM m*o{xC7Kg*(a5xAa4=-T55%Wu`m4vr9Yt9R(-eDi283m2RCqYGP~VL zFd69_IAnMB%Vb`Ww{;1sF|e z7{>1l$bb^<7X&(;&K}I&I!sRycj7L%Acn)?3z#}rvn9L?DxG@0-mW#sJJIcSKQx=o z%|@fK#cj0RSPh<)Pdd)ZK!esC(&VdZkYWcCY3Y>V~8sXKo$7u+fZ)&)R=>L5wLEt2>a`R(r z0Bwg>hqjTLtiX{SqY#dc3z3VRokp?$PSb|dGSVqy>XEqOXiCqlhHFZz)!MOMolpad z(6x{;@2!UBY1(QCwrLR9KT+Kb)WiaGzDl6&x7E2c6X1A9v}dZBfy0Oo$2iF;bG~Tx zO=Xe8{%h4tz+v-R4XOFKF*8Cl2 zruV9!f$bC$D@~zdTlu zMI}#9qV&~!(E0l94adM!^ws;&^#{lsI;hfDKL^9Ai_@%07*qoM6N<$f;pl? Ao&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_water.png b/app/src/main/res/drawable-xhdpi/ic_water.png new file mode 100644 index 0000000000000000000000000000000000000000..65174305cfb865ca0b3438b63108966ee2351e29 GIT binary patch literal 432 zcmV;h0Z;ykP)T2V&$8rNveN>_x`7sEc{*+ zMUI{xom0(-vw>pP@lz8@{dO|*0-vk#3i+s!5 zxbM2|Or>LehCWLne>WvBzYm(l{hpxrR?O=^6jRmuOyDR~`RdEBpw9$VrO?_)>o z)2~Q0Z`DWNAQHHq@{!5>jrcw=mzs}#uH!cIIS%yw5QJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_cloud.png b/app/src/main/res/drawable-xxhdpi/ic_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..abaddcfa0f237f9130f1df8bfa5267ede517c9d9 GIT binary patch literal 1234 zcmV;@1TFiCP)C0{1(oO|xMXYMxljprGLVHk#C7=~dOhG7`>(%jsNoL|a?i&Pt`SNd5eGpt0+agj3LKB|p(!6dv4iFvGzNl_n>q#YVZE@78Pu#W;7@rSr#LHA*Mw6n8w7p|*&dU_T& zHa0HAs%mITk3bFI49+D;%37U+^7cZ5;Fl^!~OYMZnm(O z!q-W+iv3lWOH#j<``0ueut5!UMshCq_xI1$LUq9U_9GEvTAxeMxa+C;0Gqb$5ku<% zCtfX+0Ni7p45)8fgIXYSIApkTAed(X0rE+Xa)Q-zN#PcSn_91{dmMAtHZ7A094^=d z_TUM=jOaNG@~DD!YfFboLDlsm&58O>_`7}U%XS99_i5uqL zO6}940llW|SFvexI;RfO!u6uCxSG^H4JKbY!&VIy$3L`LoumosyQ6V9omSh#LFJ`# zl}8mETHNz+0#!e0g1Rdj3&q5#ZK7ZvS;N&xE1r>%3EY3q9+u{c6$cN}G&UC>Ur#EC zakW?D4n7n(osSCcYo#;v1vZChr)9H-CkO%Y{T3fG7MIH|QON*jU16&ghf>z_OcZ$k znx`=a$)7s!E_wC#CRPYXPqYG;oX>eY8`e0(gm(Qv8xDK*B#CFfbfnJNqp;i`RQo)j zu|^4P8$%mA)JN68$#Hc`Awe(mFy{oJvBrtRjYlZzrz#>Q=i_RdN4SgU?`deq04L~x zc1(&}60eq_2B&Y;8O0y`)Hd(%v;pmTr)_Zw`o^t{mWibtvN6o+{VHi(k^*}Y?j2G4 zSi%y7N|vZ?Q9y6GpzU$GtG2PA(8mBr9AfL$wkU+{wmF@sZ7eACR2@-#rBK_Vz}~Oz zaS8gWwy{KX#|K%zh$aP(egoPwxp7q6SWsxMI+}KdVYWx@i$KH>8&=y`nC-Bo5&wVH z)YP&E1H-b_x@Gi&ota97=~dOhG7_nVHm~W7n&n~t*ojWaR2}S07*qoM6N<$f?3vMd;kCd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2819b6cdff0d350d2950c12082912877cb6fc9 GIT binary patch literal 1155 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb8936ebccba17882b00ab59519d5d340c2ddaf GIT binary patch literal 1552 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 N22WQ%mvv4FO#lX*>ze=o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_0.png b/app/src/main/res/drawable/arrow_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a2013b4cad8b1180bef57bc2c95d27e8e6560d44 GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-0wkxsYia~i3dtTpz6=aiY77hwEes65fI!oJfE3_0Js3;D^sNDPH;w>@G ziF(!V6#{l$)33T#Ev|TJ`Y+GW(EKl@@AsCx*JpDqGkC`LN&eUz$8SkzM4u=elW}A- ze8yHJlI*A8DN)Smd29x=huEnhOvxdi59yJ+?37Gd7Hta}pVJ|%1!E=dKSWS$)pdcpkQ^wIT$H2>i zsVO3HN+ApL#={yL%-+E>PVQ)z_z>Yw*g_s&UJ~4G&&0 zT;e+1c35(WY@29%$GSNVQAsxnEgH8R-SDJ?)$k{2iKZ@_n)s zWO`%;l6&H0&N~zty10A^s?R#=n)~2nd8dr{Gj03Wch^!U>wi5aw^+TsBaSy&=goAR zT}#`KSikK)y7>D&zdhnTvX%-(4o@0RFivDvVt3)|kP)Dn0B_x|@-6E>X=UDteEEO( bl<(3fQrj!P-|^ZB%tZ{Iu6{1-oD!M004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0063uBQgL000(qQ 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 Y0X~Hh4xWd>Gynhq07*qoM6N<$f+5J3FaQ7m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_10.png b/app/src/main/res/drawable/arrow_10.png new file mode 100644 index 0000000000000000000000000000000000000000..89a020fb38c457ecdc29575c3eb4fc6718daee55 GIT binary patch literal 2834 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_11.png b/app/src/main/res/drawable/arrow_11.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc493cf766bd898f9a74203bcfd5293e0bf8a53 GIT binary patch literal 3090 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_2.png b/app/src/main/res/drawable/arrow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e358916e392665d5c0afbb6c2d909a1704f604ba GIT binary patch literal 2952 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_4.png b/app/src/main/res/drawable/arrow_4.png new file mode 100644 index 0000000000000000000000000000000000000000..30488cea061992ef0009f77d6a00531cb85824dc GIT binary patch literal 2883 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 LNkvXXu0mjf#s%(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_6.png b/app/src/main/res/drawable/arrow_6.png new file mode 100644 index 0000000000000000000000000000000000000000..f61ea2f0bcc1710f39aabaf74d639bd716e0f611 GIT binary patch literal 943 zcmeAS@N?(olHy`uVBq!ia0vp^?I6s-0wkxsYia~i3dtTpz6=aiY77hwEes65fI&|D=h^>@IvAG6I$gMGj9IPB2bnR-%xla)*^>z)R>xX3+qs|=p))A#?> z>vd0$pPu~x=H{A8W!?hYJSY?#(Bb;Csm-nPg!E8g1cde;~q=DgeMJi zjs&oLd^+QR1-p{DutfEQ*BdR)CHOSXIU2z9@$rcR7Oaz67cxCMI>xlsjzQS&wOVtVsD3v*A@Wmm^f+;DZaY`}E(F=^4 zPdR!PG6o$Jlvymhq$Qc5XG+kd)4x`q`Qv@E?e)>M(yqoQ%!=>KPc#V1`jN8c^B z&0h|2a9$Etmhs5%2~ZF;IMm>Bkb_Z(bFsCDNzXb3LBm~*E=ON52}vH7Rk3Q*KEWZ8 zr?5C-M?+6bBA<~|o92lQi8O`9Ni!OHdKU5-S+!}MkTJO8@T_SelaYE)+Jv2nCXHtV z7fYqAlL%EPKBmDo)7nk&gpk1|$7xLySvRTlY*z3-JcA`t>6qt)rAacZkw(X?CoD~7 r;4u7la_O60e{Sn%ZF;x2x%Rwe>YFY8-zN71GYEsHtDnm{r-UW|D7J6= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_7.png b/app/src/main/res/drawable/arrow_7.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e841c5e700ff37ba680d7e7cc7aaae15e684f2 GIT binary patch literal 3057 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/arrow_8.png b/app/src/main/res/drawable/arrow_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfc94a78521e7c7ff0d53b21a6d25e46c9f56dc GIT binary patch literal 3020 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 + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..1dd7fd447827c4eb34a0940f0918e9dc14ac7b46 GIT binary patch literal 844 zcmV-S1GD^6Nk&FQ0{{S5MM6+kP&iCC0{{RoN5ByfRZya}?T{qBk=eFw+qP}nJKMHx zdu(fE+qOOBif@&f@mKs`YZ-531k`NXmM!o5{_cuX|AcN}@jr-UIxA2~F3DYz%wPlP zI(AM#aQht*S(RZ9AO%Wk#2`Q)>)6FMcC2PHL?0nQGGKr%o5sbQU4GmQ{1TrWhFdKB>Y-Us-iY?CE|+;(^SEy1YJ*=VUjzf5p+$Xsf{dx zZzvB~$S#7sUp|V8>xyh30?4}lCispLVjMNha>ipGutPsZ*yXXJp9y}bBp?f$?^D?X z$^Sg1BZmgZ0GR}zR|K%QqcVwvKN`egL0$zJ7SYvv1i4!TNX12=XtD0NePDAV0TQZ^NDSKSACvKmRThIp~@r0>Tpn`KEG!4980$n63>C|5z>x zSjw9OGjs>Bd0iyPW&ArUh2dX5a!y;h09nh&Qt%4}#NlLuJjuUuYBQ{%oID^ltgg18 z8b`db1bK#kHs-RAAUC)UIJ)?eV5VODE20d)tC`_bf_zDF{_Xb_zklZvWU9d&{#_<) z%(6@rTn}8|ngkO2vENtx{@7ENsmx(T5oP#YNWA$&f^uq$TT^~OR#Tf{Ri#AP zbXJPEzv>Fecct+Dzn{HfyP6{GxlF|UPd7k*LYRMJn5gRnf7h2a>%1uLb6O&Kmlqj+ zCYvB%Q;scp6%;>;WPYJxaTEMSFvA44`0Lmto8T$e1NM?a@DZA-=!y(uMoA}lFHN&$ z6TGYdU{OyI`=4N{^G2HNX)f{)ooLGKNg}c9gxoZ-q0c3HQW>C%4Lm4K%pZ0s z36!yrPF6eZxVh@d4b~KPmxV7)J)t zOMncTm?NmfHx`q~B6vp;qnM4X;T}(Tz@ybchqGP~gbJcb W5Fm#px)`)RiDrn9qlgNF+o=FGz=UW3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..c420f39b6ad487ddbb7becab23346de2ad3e02c7 GIT binary patch literal 824 zcmV-81IPSQNk&F60{{S5MM6+kP&iB@0{{Rop+G1Qg(OLmBuR z0g@!swt9D;zHQsKZQHhO+qP}nwvA`oKJEz^{P+L=49cj3Ene`FAlz3Mj8Uu<9!B}i z#LN+AuTqUDcRj4WrAN5C$CTzi# zr(I@S;hwYw%`ZX*KNHJJ*$0CGsjhDeKdJ|XS;;AC5Eb?>G1clpEsRXf2dmBrE$D%p zf>8mkn@s$Zt=G6JW28e~`^VEa*DTXS*7H0_d6t~ILTT)-WL#N1O_lw8UL+?kDB%(V zuk+E1Je4VvfsPo@~3#8f@0D+(WFTSp#?)QS&g zf5;#we|(r}_?ub&QQN$wVP=~)_?55$cL`oPXuHb-SPSx#|Hbe(^+nd8q?mioM&SjO9YvDC7OPNi}LuESb85#s`=C)szXaI zP*(;z(*xRbGCsNvRwFR7v>IHN!I$LIxrA9F*I>6g36}fXz>Xy9y@Y*~rxy)OCmVWEQ4mIkwza6>4`#kHS3+=8*h&$Y zImQp(+pX{Ht}is)eUbIW@FgW`J!pq!G|>*-GHOtc7=4LBH`3i!n;101k?gLHTnBIO z)^~Q(dF%C8c<{$rVK?1h+!yvip?-Skuz?B@C&8OOFFxa^McJza(GH?mQ>c27WuL6| zAjcl69%Px)4~kXd43^(Cb}`oSPulI3)CCK0~WdKkEz zI8Mm*iz3c&l4PZeFgzg&u-hcl92bGB%Ty8a@>*_6Qf|!b1pxrN CG>M!5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..fb4054b5d8f01958b0f3b5f74f664bc3d7cfda98 GIT binary patch literal 1698 zcmV;T23`45Nk&GR1^@t8MM6+kP&iDE1^@srN5ByfHHLz;4Vc!y>>UjeF#+6aF#$V0 z>_DL^H|0o@BuS1+RgcKN7QY(|;S0XN(^3F3zy)5_bv6SQ5fp7}J0oe&hZHg^#hFf} z-DBIfjo-Fyo3~)wwsi|*+n)K}?|UXdwj|l6ZOw&a+qTbny0&fGwr$(CZQHhO^H^&< z?YVI87xaqg{{(b5HT2sV_~2pK;2<+mA3?LhR$g~)dQG~^! zC!854vcccpbhjDmP%QJLp-SpXU)Y1E?eV!Qr4YqFg`pu6yy74hPijV(8Gb4O%R#T0 z0MX1N*fQOZSR@`#4++bUrbFy~bfC+JSVX{!hhX_o7tq}#Dz`d?0vY^=Lk698D($5Y7`VE_WZ6R<%=@-JPtez|Z-Eg|!O-J`(|NX|&srfDTuNVf<$#4(em-~F1I_5JaZ zBGx+u{X)?@3>b?EXSB+X2-s_3-SUk>{Lh2G@tshn0`rc|OGxl?v3fQEvlw7AB!e{O z{llO5CW77s_6-es*pEC%bk^@tw-v~fKW=1{%Nbe(X_#Ds*^oGq9$j9|M zt^aN|0XXKx;P8L|yq;LU*2udA;7t@KJ~slpVJM#=c^60qe=H*~p`}7lE+@$hlHbt+ zf;mp+5cCbrKvAjLh5Rkb*S0c)-8urkRAJn-=LDQ~=J44g1F9G>1BLF$-B*SI@ViXF zUMHTolz{KPoP;a_wkCHY+3`HAf9s@*Zi0o+lEXj`k%vJ9Z%{ej9zAL}BMo{?7+rNoA@+P8zz=?;{GYrZG*1 zZS-^$`KJ}Wm>wc%;B(ACpec~qbKqzG;3H3O?3ZH0wDQ@j6R1gI-GL9CY*YhkMmK*U z`7DC|SE2?OMQ?wej}#e*mGjW&c}9+fn6U`=JrAp{w`D+w!@Bn@?h=@AHwC)R^6$0|xYvZ%ua1pghPR*N0-YopiT_=G7w$8d;BBo{& zaMn!|K_9Bg!COXbF(zyt=(J5Cd@Q0xD67TnyW}aA&7KzG;C#ZbN*Xxyjb;Tn$Vg0f6!{y3 z^8|cN7MWcBGXeL5)c71VL&6?OLBnH6Zov3L0v^ujx%>?Q$~;+(pl3A{;V>o9)Az{T zkoJPKzKCP09Qs)=33V)1)i4{7yH0AAq2WLN#f3W@+Gv!j2+oS77CDOKGT8KdQ^3jl zmw$65z9;CIWl}MmSJJv(!6Ug0Lh_Uwzw*DG9{dM!mmt4ft4)czU{rK2H}l9{23WcI z1^7BkxXU5G+^$oVf-7lNJ=d!oLGC)e96GvOtEUW5u{zXfxSmqhV({{`!x$&rF&yUb@|+=BlqtA##4>$f^L&Lx_^XCs z`T8|qUzwPKn^|@32CbL-oyUfZaAtTi*!X?D(je{XEZk3trFt5=UgQJ2u_DFqR#@5X zgY{xV^^}S!cqF4F)6<~WjOAh9+m5Gg_ucaFYlcC3%9I#*EF+O>)6bCCl=Z6RMIZau zT00$ZWE`;5TL1dE^{UqtL-o@xl`!yVT3%JERWJPw{u=Q$<~8LtcU>^Axvwc-qrXNN stiN7brK<8YJfD`6sAa}9q zwr$(CZ9Dn4|J|+J`?Ale`uzwBT*)W;+hjs4k%lFiwbWKcKn|~oOELqp>SwD{Hs~rHGwykOAE2e;ogWL9J^(sv|S+YP$|S0#lR8j++I zrTK1Cy(fYYr{th?jL^QK2q?{Wo9a!64Uh@6GRjIdiwxkZVpwIc`R1E%zFvS4=JTGU zmwb#IBZLsE0JjJ~6J1w_iR}Uf3KVEA;Iu&A;T+<*d<>LQLk%_5P!v#34c;y6=SbmW zK(<#6h-X)mmGn0Y!ZxjB-|)C=Zg+~ udi0Ibqfdu#E-5?+l2LZK;>I}F>@rFc-XueeGi97{hDgG1N(PNn5~(Hi&mG4A literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..753556933993d38a85e7f9917723270495f836ff GIT binary patch literal 534 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 WVkMU=Ub*5Fg7(FPUQY&s|D^zOm-Ep8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..9664e39b8ac59b51d196be2e4e2e9d8b0c99906b GIT binary patch literal 1152 zcmV-`1b_QdNk&F^1ONb6MM6+kP&iC$1ONap*T6Lpbx5#nH*Op4f77=UAlkKn&SnNQ z5fUKVHYBMuh^nz|+qP}nwr$Vawr$(CZKJKipMd@J|I`0Z|NjyRrY+SH$35`PZ_k{y zQ7(N*A7K3L!~v2-PKtr`0L;|xci<%2S+0-iO<+GF+XDN|x0 z-+AK1_(!K~T7Vd3C6)b6(yIJRU{qEO>R`eFiU$-+$Bo9Jsv%sB2u19y`RE9ndeJD_ z?`7x;y%cT#B4S=^$Wo)v_&>uB@{qc$cQitZItQaE)VLF#`iYC@zYnh2sDwGZSms1% z`DdWa%zA|avVJ=u8c{045k_SW%)qEGbDF?GA*2drd4!Ulf=O~8Gb?dSQz;YJt%yWO z2BF^HS&Xue5x7V^2_hm634}3%S?>_tWZvq2@p{$Xcdi>m$5ZDDagoUszswcu@96o6r7*f zQL;sY6Gp^Z6Qs-_6RLL6AudMauN=s?D4Hgi7?(}ewzkCJ+bNRT2U(V?+(%8)33%B! z;wNSZ{qoHZ|KETtw$NR6m`$mL){(8-W{G_ZpE&NqLv*9pVTlJbjPGMWi1iV{FPJySG44$nVUUnN{tkpQ=uJ1?!?_9M; S6s4B~diwwA|EK?d5CZ^Q#w#cQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..40e6cb68c3907998b2eee84c8e2e98a710a975cc GIT binary patch literal 2336 zcmV+*3E%coNk&E(2><|BMM6+kP&iBr2><{uU%(d-b%uhrZ5Wq7?Og^DF#$ePl0hJS z!=xN(t8_kL*|r@*+Dn)D&zVp}t^R&_BqAgM09Zy+lTJD|+I2DZ*|u%lwr$(CZNAn% z+qO{zf+V?dn*muDXi~BQh6eNk3D>rrjr1ke+O}=mwr$(CZQHhO+qS*6C&RpXzc1ZC zkn_#Vo{0W4kR(Y)_1?E&cJYMxKLh}8_NPpFT# z-5V9ufa_^gJt9y7TAFOTD{gqJ|MUJ zrk%v%&MzF%A{e!@*IRfM5-~G^yhs$60I%ZhqZQ+Neb?3Srn^_@Vo<)9&xk_ROvhhS z>2CzVDqk`w{_p9IsQjm7-c}JJ-d=l=2v)OwU7rR8J}D0|;A}VRa;a5&p$P3g%3Pjq z6$v7oO$S6k^*TXhpzY7}pPbcXJelz#+Ffh42o1ehdf}=`xA`?Di3+inImcEYZ`i+S z)yJvSqB(yk8*=yCdHchQb5m=?3xsnKI@33%t+kj0YNd3PdQc9un`lOi(H0sYqC6@V0YTwar6|BoHVA z`XcbH>jf-d%JX764a~cyav3%DTb1^>v!b37Sr6><2G++M6^MBU1m$6A$_*CGBsJTt zRCweQKLXmJturaL2-*ssp4=~h-=Ca7WjqFw9}=Kh-2l|))1Wm;&Pw=? zrXw7S1dG1p}5xBU?e_rVYudh4gZW;$)r(*0IZgkl+Zo?0zT;=*lJ)z~{?8 zAI*&V_4(3_d`1G950)|l-ToHJS#1)Eui^kyqDAggwI-Wtl+PPaz$`pURz?in48U}h z)CHg_H73A=l2=QtjWR)_@D~8H3q|j*ElJAD$?ymmO>2B_wFg=)?+%oUKY)IWU&fjR z$8|acxBxIHydHhm@4+(XbU1FZt$Shq$C|C_f`KJBw)EuzJlWnvFn%ceCm2GmM#RD&<7prF#r#CiN&@dv!aB|OP)an3vA zQVQ%Sk_43}Q)*TlE`xLFRbvw~_B_;x5(eEeDObVyr=EJYmYD`K&}`0iw1S=|`8xQI zsv=wLm6Ehnh)uy|A56RuelsHrMA&ikrX7J|(RH`ky)U9};3d~oUt?3hX=g0(ReP|= zlsAxN2P7TAt!uW9*v&ozcO?nSrs19d-QF+1o6Ee5j&@>av&{Dj^mwF|t9O5=$)v2e z7i}FWE&}sw$8zSV%Cyst02m}%e-ZjM;HOA`2JDc?uwLVZAbD{1IzU?Rq&ngMfQdx+*G(2|VuiW|b-~y-wmnqB?`7 zP3luN2H`X>OQ~hhnP3ogCsRKmTvUne zb%+@&@Tu%LoTK7NAV#K>pQ-|#rBdjyBk85^h)yHjg_B(8Ebxqx>E1N@<&i>PFN_Y- zpb3I=`DwMca6adk8}Vd%JFUG12`>#;HL%Jkl}F@LZ`$S!oJl-m=T8vfOmC*`e+?Rs zRK^ZeewpCq#PNxK>P{=%Dh>9)6MDud&EKtQ<)^+VAC8j-+3N?k>CyNhGMAl(Ip*2+ z39K?UGi4#3wrSX0PJ|DSrvDb!t~Mn^kH+!{&9P67Y2>t9o(~7s7~ad9c0ZpQU5E$! zM)~{VnhG7eWIUhn9GlDhHJOG@OB`@bfrnms=VJ@6?%|sK&ouO}$y{cR3G?A4v(p`@ zRbGyofm14hn_pOTj?bm$a-XW7I)6?6n!WeSY#eCJBJaqcr@eP|KcXt$+j$ph?Y?_G GT>t>rcX^}$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..17360dc1ca786a7e0b60a67603d1c502620fca56 GIT binary patch literal 1542 zcmV+h2Ko6?Nk&Hg1pok7MM6+kP&iES1pojqkH8}kb%xruZ5a9gzwOjLB7~+1YevuD z7>zRRtI{vFAi-@TNs`#t|G(YYsF>M%BO@y+BjDJ!cI^3H{kCn}jxhu~RVr%)PL<3h zD`k3@w$nQw-U*;aYnvfSiYT=`wr$(CZQHhO+qP}nw$WB8Gvil(nOW79ku&SsXq<@t zPeA^q7675cU;RN1uMBbR{*axSB%HiF2VZMvCj1dIw=uhJeERoy@aJ^X8&2p0W@>SU zhS^$k4x4EZEo|Wl0bW&T8A)i+POWJ9uQ1Ol-MNPVi8!yb0zJzWX#yj5n?SK>s94lg zBO^e_UOe{q8~`+>ySiez$`d2d?^{#Q7fOibEZ@>|z7O8w*m$tY8yV1&{sU6&0Zl9u zk@_SWAsdm#mx?5&{j&~xW~teE)QApM(z#$&khJ%O5E4`PcA%L%{am}g;E6=bwc2{h zC0!OlqzgYMcv8)4gO$iOFY~6D%QOqIp?SP3wQz}0V$+Z&8d`a8BjUW36U5lnn@d9tx3vTwC1U9Kk=T&G zUItSFSN{ST>p_~8BP=qgvh?;4RP zSmQXS7~>b}lwkB*`+f)$i0Jo1C?@V|6$?Ait!#lR!!MgeSV$oym`h@-Fv9=@JSDL6 zW-$Yb>DlD72-~I&q{BsNY3E;a*lG5!VWY_+A=H za94|ADBuGW-4RP+E~`0!ZF8Z5@N;!$jNn31(DUR-dW{h1p%(=#fk*3jA@SN)Xs1R- znio)@zvGSnYTtLa4h<{og{0R1@)ewjWq90yOi3Ki&DXv@9tO;$$NR#rOwL{9P|DOV zpb&qxP%8|&@1+u4HuBJBgF3(sLI{}HO`{IVzanr@R-^)O%8u^@$hlsx0IBjjc%kZ} z&KZelU;)gkz#Z@;OIN%cP$y9Wwv$*h5t)Zx&AVHrGz{>^tWrTmeun5V1=4XWQLc7QoSN} z<&9yV&Wy;aQx72jd{kPjDi|}JD6CZ%jNPk*RR+74Pi^og0#pVw^;DWNy=8Vw0eQ6P zZP!7w&l^S9vy2MkpjhYA;DLy_s~TX8;r!1bc0eUC+}sL%O{Nl<>uV@9w_0F(p{O#d zVLfE5Oed^|wNg$(5yj|~bH{<0`-e;L35G&)&?#3K0iXMc=q3x$D-SxQd<$78xB&Xr z5d>a==%n8z04#b%aW9Q`vBjYbj;v29*2M@h?%Ta<_rGxr77qK;D*1I0xq;OYtysHY zn;2)f(#vy}*#_K}07NgAY=cpjd22>QGv+xuP)3k55z&q5N^Fae5V^jn4$+P=ebK>3 zUxaX>FOLo=tV8yXfH94mw|~+AA2$t)jdY0Jf4-B$2Bc{OOd{FpOTmMjMhy#|oeTaL#XJ;eZkm{!m|ij4$|-d;pck{*CCaGFF58wVD> zQL~&3Jp!iS5W25a;Sx^>@XD+ky>AI|QtSZBqWM%=V?MGQTrOV literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..40e761c96918d7fedfda9b923b495c2c0108728f GIT binary patch literal 1838 zcmV+}2hsRaNk&E{2LJ$9MM6+kP&iB)2LJ#sL%~oGucxMM119`Q_nQdjfBppoB@zNj z8(zRY2Bd-i;OsDo!Nb@ZQHhO+qP}n zHb!gPJ9u_#q`ChEuYL8NW?$RfUu;DGCxH3<@AJRU|33fw{O|L>PyJj_kt%~0?6{Ei z4bkMnPJfO|5w^UWoNqDczAa>5iS}Gz* zU7HQ!yPgkg2!*vP*O+T&mh73jg+LpRZj;gx^7e@jf&S? zk^s1#Kp5H`R*E%uqN*@Z%YzHX&d5M3_}ObF(O=j z38JbUagK?Yl!kz%1QFY*i~H5ZP_A?#HhW5$P_O@#B`a4hpEIUS*+7{j$#yoxF%Kw0 z3N%`l_Cs&BJ9(aWSdDof4-738sUd+ro(2;AzA{9%Df;DOhGSHX@42J`mdT-V ztwI_gf0V=2%oISnx#NT6S;QH@9*ag4I}ein*h?Y9xYVsSjCrEgz4-MuX~DDVvWtso zn=SzMV`JvFc9I#So>o*=sUs>5+G7N?a3;#VDz8EE#;F0`*p=V*`n{J10q~Y~%>5-U zQTS)uruOMFYVm24AcpX`j5h}VT=~t+ZAGOYfY)cuOybzD!&)8x=0pLkR?EGY_1p{H z;KcnLouX#$Mz%lczQDI)+ph+{B|`i$c~3y9zP4bxQ&3I$MT` zsGE|DdRbo9WhOKC3q3?-q%u(>=36m&15`5Zd25Dj;J|!q!->PfjtL0Y?nwFee1HbC z43LJ&0Zi;FFA$KCEZef01~6ps4b1IQO!R<7W<*|7nPxd%Ma8g%-(zN|#N(_m_&4yT~ z_5^FFN4%6*{HJ?6x<)dQ7dR19l^!XTgZM6+96z64J-V=Ql9q|S+=UpR@JP%Lgwg9t z`fW=TNsJEnW1fsoLIyLBhJQy`ye=;>DI1YZGd2D~e4v@mM#NK+3E0dd_K-~RTYy|d zG0NV0grhsfB;Nz%lTs8j*@iirNH5wRKLKf)q$L++tCs@ieH})w&7KN?y%9z%x}xKM z0@~b>k*cc5m^3TkkNDFG7gM&&w!3-|F~0-ng&F?XCX3w#V%j%EFfSau&DYf!{TRmR z=*KWe!^p?7K9d`Bho_Wy9gr!%9gg>%g7H~g{nA2SckZl4;bVLt!=TW^wQ3tlrjc9n~rG-zpM3g*2M#>2G@>LQqHd}ug^`ZNIn39UB9_r2=xGf@P1tdfARsa z-yaf0KOp3-i&T&gfNN(ZHT{6~dKm%&;e1g70)AZ#0YUE6Kmr0&YYKw%Q52NlMLt~d z>_$wrE5GZFv?t%4B0yRh+3;u7#+Gh7_kn=3PS8-w-)sK1C>I5nVyJ~NRinqK>}vGF zSc}&fm_RX_LD`s_9Ko=t?U=lB6vHa>2t#v{QD!1c-ARTmM_5PF%us}5HqCTE@M~zM zGiDXdj6m3D(#!^gbr?aE@8W)kqGBkYBTU`sftv;HTSkddg+~}#(E}TVaP83Hf)4{S zyA(mR7uSt1wqs|Ago)1F-<=Lb{r$fW(ITa__zKfV9XULB4E9M z0PD6o+JB&|x-19K7h@=b_0Puu|7t_0qJAu(c*iwQctBgnsY#;ZQxpJi%>MTETegu0 zyz6W+Mv?&wMet;9YetmiK1k_k2vw-2+a)7>Z@|d1%r#yr--r3pg|_o&i8$wlGQw2$ zGfRTs5y41PyV@cF$N5r>I14Q^c#L0NNXZP*lMvRZ)4|?hJ!lhKwDfswx<@D#J^*S+w`+^S{9S c`o^JUol1r(n9u({|NH#!^S{skKL7hX4X}-k0{{R3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b10ebab9fa4a20d47a5ac354189ed038a88fe84b GIT binary patch literal 3732 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..318b25c854a4aa62c1b2d6ea76d817c82c0e2b7a GIT binary patch literal 5456 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 + + #6200EE + #2600B3 + + #ffffff + \ No newline at end of file diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..beab31f --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #000000 + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..7ba91f0 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,20 @@ + + Winddir + winddir + Wind direction + Current wind direction relative to the riding direction + Humidity + Relative humidity in percent + Cloud cover + Current cloud cover in percent + Wind speed + Current wind speed in configured unit + Wind gusts + Current wind gust speed in configured unit + Absolute wind direction + Current wind direction + Rainfall + Current precipitation (rainfall / snowfall) + Surface pressure + Atmospheric pressure at surface in configured unit + \ No newline at end of file diff --git a/app/src/main/res/xml/extension_info.xml b/app/src/main/res/xml/extension_info.xml new file mode 100644 index 0000000..a587ff5 --- /dev/null +++ b/app/src/main/res/xml/extension_info.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..f41eb6b --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,6 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.jetbrains.kotlin.android) apply false + alias(libs.plugins.compose.compiler) apply false +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..cd0519b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..80b851b --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,49 @@ +[versions] +agp = "8.5.0" +color = "1.3.0" +datastorePreferences = "1.1.1" +kotlin = "2.0.0" + +androidxCore = "1.13.1" +androidxLifecycle = "2.8.6" +androidxActivity = "1.9.3" +androidxComposeUi = "1.7.4" +androidxComposeMaterial = "1.3.0" +glance = "1.1.1" +kotlinxDatetime = "0.6.1" +kotlinxSerializationJson = "1.7.3" +navigationRuntimeKtx = "2.8.4" +navigationCompose = "2.8.4" + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } + +[libraries] +androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" } +hammerhead-karoo-ext = { group = "io.hammerhead", name = "karoo-ext", version = "1.1.1" } + +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" } + +# compose +androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } + +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" } +androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidxComposeUi" } +androidx-compose-material = { module = "androidx.compose.material3:material3", version.ref = "androidxComposeMaterial" } + +# Glance +androidx-glance-appwidget = { group = "androidx.glance", name = "glance-appwidget", version.ref = "glance" } +androidx-glance-appwidget-preview = { group = "androidx.glance", name = "glance-appwidget-preview", version.ref = "glance" } +androidx-glance-preview = { group = "androidx.glance", name = "glance-preview", version.ref = "glance" } +androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigationRuntimeKtx" } +androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } + +[bundles] +androidx-lifeycle = ["androidx-lifecycle-runtime-compose", "androidx-lifecycle-viewmodel-compose"] +compose-ui = ["androidx-compose-ui", "androidx-compose-material", "androidx-compose-ui-tooling-preview", "androidx-compose-ui-tooling"] \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..943f0cbfa754578e88a3dae77fce6e3dea56edbf GIT binary patch literal 61574 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 ScNgau(U?ep-K_E5zy1%ZQTdPn literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..20db9ad --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..65dcd68 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/preview0.png b/preview0.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4e22e115785399e66eeff9484b39c2cd656fe0 GIT binary patch literal 72513 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 literal 0 HcmV?d00001 diff --git a/preview1.png b/preview1.png new file mode 100644 index 0000000000000000000000000000000000000000..c26555e5aa7d8228cafba04c98acd963128fbe9a GIT binary patch literal 42892 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 Tx{z}R00000NkvXXu0mjfO7gfZ literal 0 HcmV?d00001 diff --git a/preview2.png b/preview2.png new file mode 100644 index 0000000000000000000000000000000000000000..334c9faad133798df51ebff8876a33ef6c23d82d GIT binary patch literal 38187 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 literal 0 HcmV?d00001 diff --git a/preview3.png b/preview3.png new file mode 100644 index 0000000000000000000000000000000000000000..f45e80886bebf7bf453ce8546c3195b28790acf5 GIT binary patch literal 46249 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 PdyuT8BD7M%DB%A981BA3 literal 0 HcmV?d00001 diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..ca42a48 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,38 @@ +fun getLocalProperty(key: String, file: String = "local.properties"): String? { + val properties = java.util.Properties() + val localProperties = File(file) + if (localProperties.isFile) { + java.io.InputStreamReader(java.io.FileInputStream(localProperties), Charsets.UTF_8).use { reader -> + properties.load(reader) + } + } else error("File from not found") + + return properties.getProperty(key) +} +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + } +} +val gprUser = getLocalProperty("gpr.user") +val gprKey = getLocalProperty("gpr.key") +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + // karoo-ext from Github Packages + maven { + url = uri("https://maven.pkg.github.com/hammerheadnav/karoo-ext") + credentials { + username = gprUser + password = gprKey + } + } + } +} + +rootProject.name = "Karoo Winddir" +include("app")