From 3f6451667031a9ffe5c058a61ed1935d92696933 Mon Sep 17 00:00:00 2001 From: Tim Kluge Date: Sat, 30 Nov 2024 23:06:36 +0100 Subject: [PATCH] Initial commit --- .gitignore | 11 + ICON_LICENSE | 9 + LICENSE | 201 +++++++++++++++ README.md | 24 ++ app/.gitignore | 1 + app/build.gradle.kts | 49 ++++ app/proguard-rules.pro | 21 ++ app/src/main/AndroidManifest.xml | 34 +++ app/src/main/ic_launcher-playstore.png | Bin 0 -> 20728 bytes .../de/timklge/karooreminder/Extensions.kt | 32 +++ .../karooreminder/KarooReminderExtension.kt | 82 ++++++ .../de/timklge/karooreminder/MainActivity.kt | 25 ++ .../karooreminder/screens/DetailScreen.kt | 174 +++++++++++++ .../karooreminder/screens/MainScreen.kt | 227 ++++++++++++++++ .../timklge/karooreminder/screens/Reminder.kt | 28 ++ .../de/timklge/karooreminder/theme/Theme.kt | 13 + .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 601 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 373 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 790 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 1314 bytes .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 1825 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 -> 970 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 950 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 1872 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 714 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 632 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1270 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1152 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 1192 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 2498 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 1698 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 1964 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 3912 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 2304 bytes .../ic_launcher_foreground.webp | Bin 0 -> 2694 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 5636 bytes app/src/main/res/values/colors.xml | 13 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 4 + app/src/main/res/xml/extension_info.xml | 8 + build.gradle.kts | 6 + detail.png | Bin 0 -> 26895 bytes gradle.properties | 23 ++ gradle/libs.versions.toml | 48 ++++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 61574 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 244 ++++++++++++++++++ gradlew.bat | 92 +++++++ inride.png | Bin 0 -> 41357 bytes list.png | Bin 0 -> 20568 bytes settings.gradle.kts | 38 +++ 53 files changed, 1427 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/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/karooreminder/Extensions.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/MainActivity.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/screens/MainScreen.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt create mode 100644 app/src/main/kotlin/de/timklge/karooreminder/theme/Theme.kt create mode 100644 app/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_launcher.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 detail.png 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 inride.png create mode 100644 list.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..e63aba3 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# Karoo Reminder Extension + +Basic karoo extension that shows in-ride alerts every X minutes. For Karoo 2 and Karoo 3 devices +running Karoo OS version 1.524.2003 and later. + +![Reminder List](list.png) +![Reminder Detail](detail.png) +![Reminder in ride](inride.png) + +## Installation + +Currently, Hammerhead has not yet released an on-device app store that allows users to easily install +extensions like this. Until it is available, you can sideload the app. + +1. Download the apk (or build it from source) +2. Set up your Karoo for sideloading. DC Rainmaker has a great [step-by-step guide](https://www.dcrainmaker.com/2021/02/how-to-sideload-android-apps-on-your-hammerhead-karoo-1-karoo-2.html). + +## Icon + +Icon is `timers` by [boxicons.com] (MIT-licensed). + +## Links + +[karoo-ext source](https://github.com/hammerheadnav/karoo-ext) 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..d3ad878 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,49 @@ +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.karooreminder" + compileSdk = 34 + + defaultConfig { + applicationId = "de.timklge.karooreminder" + minSdk = 26 + targetSdk = 34 + versionCode = 1 + versionName = "1.0" + } + + 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.color) + implementation(libs.androidx.datastore.preferences) +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..ff59496 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle.kts. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..0230e28 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + \ 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..f58f77eaf457d895269fb3167927483cb4f12001 GIT binary patch literal 20728 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 literal 0 HcmV?d00001 diff --git a/app/src/main/kotlin/de/timklge/karooreminder/Extensions.kt b/app/src/main/kotlin/de/timklge/karooreminder/Extensions.kt new file mode 100644 index 0000000..5289ad2 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/Extensions.kt @@ -0,0 +1,32 @@ +package de.timklge.karooreminder + +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.models.OnStreamState +import io.hammerhead.karooext.models.RideState +import io.hammerhead.karooext.models.StreamState +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.channels.trySendBlocking +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.callbackFlow + +fun KarooSystemService.streamDataFlow(dataTypeId: String): Flow { + return callbackFlow { + val listenerId = addConsumer(OnStreamState.StartStreaming(dataTypeId)) { event: OnStreamState -> + trySendBlocking(event.state) + } + awaitClose { + removeConsumer(listenerId) + } + } +} + +fun KarooSystemService.streamRideState(): Flow { + return callbackFlow { + val listenerId = addConsumer { rideState: RideState -> + trySendBlocking(rideState) + } + awaitClose { + removeConsumer(listenerId) + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt new file mode 100644 index 0000000..129789e --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt @@ -0,0 +1,82 @@ +package de.timklge.karooreminder + +import de.timklge.karooreminder.screens.Reminder +import de.timklge.karooreminder.screens.defaultReminders +import de.timklge.karooreminder.screens.preferencesKey +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.extension.KarooExtension +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.InRideAlert +import io.hammerhead.karooext.models.PlayBeepPattern +import io.hammerhead.karooext.models.StreamState +import io.hammerhead.karooext.models.TurnScreenOn +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.drop +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.mapNotNull +import kotlinx.coroutines.launch +import kotlinx.serialization.json.Json + +class KarooReminderExtension : KarooExtension("karoo-reminder", "1.0") { + + lateinit var karooSystem: KarooSystemService + + private var serviceJob: Job? = null + + override fun onCreate() { + super.onCreate() + + karooSystem = KarooSystemService(applicationContext) + + serviceJob = CoroutineScope(Dispatchers.IO).launch { + karooSystem.connect { connected -> + if (connected) { + println("Connected") + } + } + + val preferences = applicationContext.dataStore.data.map { remindersJson -> + Json.decodeFromString>(remindersJson[preferencesKey] ?: defaultReminders) + } + + karooSystem.streamDataFlow(DataType.Type.ELAPSED_TIME) + .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.singleValue } + .map { (it / 1000 / 60).toInt() } + .distinctUntilChanged() + .drop(1) + .combine(preferences) { elapsedMinutes, reminders -> elapsedMinutes to reminders} + .collect { (elapsedMinutes, reminders) -> + reminders + .filter { reminder -> reminder.isActive && elapsedMinutes % reminder.interval == 0 } + .forEach { reminder -> + karooSystem.dispatch(TurnScreenOn) + delay(1_000) + karooSystem.dispatch(PlayBeepPattern(listOf(PlayBeepPattern.Tone(300, 200), PlayBeepPattern.Tone(500, 200), PlayBeepPattern.Tone(700, 200)))) + karooSystem.dispatch( + InRideAlert( + id = "reminder-${reminder.id}-${elapsedMinutes}", + detail = reminder.text, + title = reminder.name, + autoDismissMs = 15_000, + icon = R.drawable.ic_launcher, + textColor = R.color.white, + backgroundColor = reminder.getResourceColor(applicationContext) + ), + ) + } + } + } + } + + override fun onDestroy() { + serviceJob?.cancel() + serviceJob = null + karooSystem.disconnect() + super.onDestroy() + } +} diff --git a/app/src/main/kotlin/de/timklge/karooreminder/MainActivity.kt b/app/src/main/kotlin/de/timklge/karooreminder/MainActivity.kt new file mode 100644 index 0000000..da66fd6 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/MainActivity.kt @@ -0,0 +1,25 @@ +package de.timklge.karooreminder + +import android.content.Context +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.datastore.core.DataStore +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.preferencesDataStore +import de.timklge.karooreminder.screens.ReminderAppNavHost +import de.timklge.karooreminder.theme.AppTheme + +val Context.dataStore: DataStore by preferencesDataStore(name = "settings") + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + AppTheme { + ReminderAppNavHost() + } + } + } +} diff --git a/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt b/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt new file mode 100644 index 0000000..970a90e --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/screens/DetailScreen.kt @@ -0,0 +1,174 @@ +package de.timklge.karooreminder.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.shape.CircleShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Close +import androidx.compose.material.icons.filled.Delete +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.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Switch +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat +import com.maxkeppeker.sheets.core.models.base.UseCaseState +import com.maxkeppeler.sheets.color.ColorDialog +import com.maxkeppeler.sheets.color.models.ColorConfig +import com.maxkeppeler.sheets.color.models.ColorSelection +import com.maxkeppeler.sheets.color.models.ColorSelectionMode +import com.maxkeppeler.sheets.color.models.MultipleColors +import com.maxkeppeler.sheets.color.models.SingleColor +import de.timklge.karooreminder.R + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun DetailScreen(isCreating: Boolean, reminder: Reminder, onSubmit: (updatedReminder: Reminder?) -> Unit, onCancel: () -> Unit){ + var title by remember { mutableStateOf(reminder.name) } + var text by remember { mutableStateOf(reminder.text) } + var selectedColor by remember { mutableIntStateOf(reminder.foregroundColor) } + val colorDialogState by remember { mutableStateOf(UseCaseState()) } + var duration by remember { mutableStateOf(reminder.interval.toString()) } + var isActive by remember { mutableStateOf(reminder.isActive) } + var deleteDialogVisible by remember { mutableStateOf(false) } + + fun getUpdatedReminder(): Reminder = Reminder(reminder.id, title, duration.toIntOrNull() ?: 0, text, selectedColor, isActive) + + Column(modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background)) { + TopAppBar(title = { Text(if(isCreating) "Create Reminder" else "Edit Reminder") }) + Column(modifier = Modifier + .padding(5.dp) + .verticalScroll(rememberScrollState()) + .fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp)) { + OutlinedTextField(value = title, onValueChange = { title = it }, label = { Text("Title") }, modifier = Modifier.fillMaxWidth(), singleLine = true) + + OutlinedTextField(value = text, onValueChange = { text = it }, label = { Text("Text") }, modifier = Modifier.fillMaxWidth(), singleLine = true) + + OutlinedTextField(value = duration, modifier = Modifier.fillMaxWidth(), + onValueChange = { duration = it }, + label = { Text("Interval") }, + suffix = { Text("min") }, + keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), + singleLine = true + ) + + ColorDialog( + state = colorDialogState, + selection = ColorSelection( + selectedColor = SingleColor(selectedColor), + onSelectColor = { c -> selectedColor = c }, + ), + config = ColorConfig( + displayMode = ColorSelectionMode.TEMPLATE, + allowCustomColorAlphaValues = false, + templateColors = MultipleColors.ColorsInt( + ContextCompat.getColor(LocalContext.current, R.color.bRed), + ContextCompat.getColor(LocalContext.current, R.color.bPurple), + ContextCompat.getColor(LocalContext.current, R.color.bYellow), + ContextCompat.getColor(LocalContext.current, R.color.bGreen), + ContextCompat.getColor(LocalContext.current, R.color.bBlue), + ContextCompat.getColor(LocalContext.current, R.color.bCyan), + ), + ) + ) + + FilledTonalButton(modifier = Modifier + .fillMaxWidth(), + onClick = { + colorDialogState.show() + }) { + Surface(shape = CircleShape, color = Color(selectedColor), + modifier = Modifier + .height(40.dp) + .shadow(5.dp, CircleShape) + .width(40.dp), content = {}) + + Spacer(modifier = Modifier.width(20.dp)) + + Text("Change Color") + } + + Row(verticalAlignment = Alignment.CenterVertically) { + Switch(checked = isActive, onCheckedChange = { isActive = it}) + Spacer(modifier = Modifier.width(10.dp)) + Text("Is Active") + } + + FilledTonalButton(modifier = Modifier + .fillMaxWidth() + .height(50.dp), onClick = { + onSubmit(getUpdatedReminder()) + }) { + Icon(Icons.Default.Done, contentDescription = "Save Reminder") + Text("Save") + } + + FilledTonalButton(modifier = Modifier + .fillMaxWidth() + .height(50.dp), onClick = { + onCancel() + }) { + Icon(Icons.Default.Close, contentDescription = "Cancel Editing") + Text("Cancel") + } + + if (!isCreating) { + FilledTonalButton(modifier = Modifier + .fillMaxWidth() + .height(50.dp), onClick = { + deleteDialogVisible = true + }) { + Icon(Icons.Default.Delete, contentDescription = "Delete Reminder") + Text("Delete") + } + } + + if (deleteDialogVisible){ + AlertDialog(onDismissRequest = { deleteDialogVisible = false }, + confirmButton = { Button(onClick = { + deleteDialogVisible = false + onSubmit(null) + }) { Text("OK") } + }, + dismissButton = { Button(onClick = { + deleteDialogVisible = false + }) { Text("Cancel") } + }, + title = { Text("Delete reminder") }, text = { Text("Really delete this reminder?") }) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooreminder/screens/MainScreen.kt b/app/src/main/kotlin/de/timklge/karooreminder/screens/MainScreen.kt new file mode 100644 index 0000000..de20f02 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/screens/MainScreen.kt @@ -0,0 +1,227 @@ +package de.timklge.karooreminder.screens + +import android.content.Context +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +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.shape.CircleShape +import androidx.compose.foundation.shape.CornerSize +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Add +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FabPosition +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +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.mutableStateListOf +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.draw.alpha +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import androidx.core.graphics.toColor +import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.stringPreferencesKey +import androidx.navigation.NavHostController +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import de.timklge.karooreminder.dataStore +import de.timklge.karooreminder.streamDataFlow +import de.timklge.karooreminder.streamRideState +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.RideState +import io.hammerhead.karooext.models.StreamState +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.mapNotNull +import kotlinx.coroutines.launch +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + + +val preferencesKey = stringPreferencesKey("reminders") + +suspend fun saveReminders(context: Context, reminders: MutableList) { + context.dataStore.edit { t -> + t[preferencesKey] = Json.encodeToString(reminders) + } +} + +@Composable +fun ReminderAppNavHost(modifier: Modifier = Modifier, navController: NavHostController = rememberNavController()){ + val scope = rememberCoroutineScope() + val reminders = remember { + mutableStateListOf() + } + + val ctx = LocalContext.current + LaunchedEffect(Unit) { + ctx.dataStore.data.distinctUntilChanged().collect { t -> + val entries = Json.decodeFromString>(t[preferencesKey] ?: defaultReminders) + reminders.clear() + reminders.addAll(entries) + } + } + + NavHost(modifier = modifier, navController = navController, startDestination = "reminders") { + composable(route = "reminder/{id}", arguments = listOf( + navArgument("id") { + type = NavType.IntType + nullable = false + } + )) { stack -> + val reminderId = stack.arguments?.getInt("id") + val reminder = reminders.find { it.id == reminderId} + val reminderIndex = reminders.indexOf(reminder) + + val ctx = LocalContext.current + + reminder?.let { r -> + DetailScreen(false, r, { updatedReminder -> + if (updatedReminder != null) { + reminders[reminderIndex] = updatedReminder + } else { + reminders.remove(r) + } + + scope.launch { + saveReminders(ctx, reminders) + } + navController.popBackStack() + }, { navController.popBackStack() }) + } + } + composable(route = "create") { + val nextReminderId = reminders.maxOfOrNull { it.id + 1 } ?: 0 + val newReminder = Reminder(nextReminderId, "", 30, "") + + val ctx = LocalContext.current + + DetailScreen(true, newReminder, { updatedReminder -> + updatedReminder?.let { r -> + reminders.add(r) + } + + scope.launch { + saveReminders(ctx, reminders) + } + + navController.popBackStack() + }, { navController.popBackStack() }) + } + composable(route = "reminders") { + MainScreen(reminders, { reminder -> navController.navigate(route = "reminder/${reminder.id}") }, { navController.navigate(route = "create") }) + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun MainScreen(reminders: MutableList, onNavigateToReminder: (r: Reminder) -> Unit, onNavigateToCreateReminder: () -> Unit) { + var karooConnected by remember { mutableStateOf(false) } + val ctx = LocalContext.current + val karooSystem = remember { KarooSystemService(ctx) } + val rideState: RideState by karooSystem.streamRideState().collectAsState(RideState.Idle) + val rideTime by karooSystem.streamDataFlow(DataType.Type.ELAPSED_TIME) + .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.singleValue } + .map { (it / 1000 / 60).toInt() } + .collectAsState(initial = 0) + + Scaffold( + topBar = { TopAppBar(title = {Text("Reminder")}) }, + floatingActionButtonPosition = FabPosition.End, + floatingActionButton = { + FloatingActionButton(onClick = { + onNavigateToCreateReminder() + }) { + Icon(Icons.Rounded.Add, "Add") + } + }, + content = { + Column( + Modifier + .padding(it) + .fillMaxSize() + .verticalScroll(rememberScrollState()) + .background(MaterialTheme.colorScheme.background)) { + reminders.forEach { reminder -> + Card(Modifier + .fillMaxWidth() + .height(60.dp) + .alpha(if (reminder.isActive) 1f else 0.6f) + .clickable { onNavigateToReminder(reminder) } + .padding(5.dp), shape = RoundedCornerShape(corner = CornerSize(10.dp)) + ) { + Row( + Modifier + .height(60.dp) + .padding(5.dp), verticalAlignment = Alignment.CenterVertically) { + Surface(shape = CircleShape, color = Color(reminder.foregroundColor.toColor().toArgb()), + modifier = Modifier + .height(60.dp) + .shadow(5.dp, CircleShape) + .width(40.dp), content = {}) + + Spacer(modifier = Modifier.width(10.dp)) + + Text(reminder.name) + + Spacer(Modifier.weight(1.0f)) + + Text("${reminder.interval}min") + } + } + } + + LaunchedEffect(Unit) { + karooSystem.connect { connected -> + karooConnected = connected + } + } + + if (reminders.isEmpty()) Text(modifier = Modifier.padding(5.dp), text = "No reminders added.") + + if (karooConnected){ + val hardwareName = karooSystem.hardwareType?.name ?: "unknown device" + val state = when (rideState){ + RideState.Idle -> "No ride started" + is RideState.Paused -> "Ride is paused. Riding for $rideTime minutes" + RideState.Recording -> "Currently riding. Riding for $rideTime minutes" + } + Text(modifier = Modifier.padding(5.dp), text = "Running on $hardwareName. $state.") + } else { + Text(modifier = Modifier.padding(5.dp), text = "Could not read device status. Is your Karoo updated?") + } + } + } + ) +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt b/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt new file mode 100644 index 0000000..e4ad443 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/screens/Reminder.kt @@ -0,0 +1,28 @@ +package de.timklge.karooreminder.screens + +import android.content.Context +import androidx.core.content.ContextCompat +import de.timklge.karooreminder.R +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +@Serializable +class Reminder(val id: Int, var name: String, var interval: Int, var text: String, + var foregroundColor: Int = android.graphics.Color.parseColor("#700000"), + val isActive: Boolean = true){ + + fun getResourceColor(context: Context): Int { + return when(foregroundColor){ + ContextCompat.getColor(context, R.color.bRed) -> R.color.bRed + ContextCompat.getColor(context, R.color.bPurple) -> R.color.bPurple + ContextCompat.getColor(context, R.color.bYellow) -> R.color.bYellow + ContextCompat.getColor(context, R.color.bGreen) -> R.color.bGreen + ContextCompat.getColor(context, R.color.bBlue) -> R.color.bBlue + ContextCompat.getColor(context, R.color.bCyan) -> R.color.bCyan + else -> error("Unknown color") + } + } +} + +val defaultReminders = Json.encodeToString(listOf(Reminder(0, "Drink", 30, "Take a sip!"))) \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooreminder/theme/Theme.kt b/app/src/main/kotlin/de/timklge/karooreminder/theme/Theme.kt new file mode 100644 index 0000000..6c5d5a6 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooreminder/theme/Theme.kt @@ -0,0 +1,13 @@ +package de.timklge.karooreminder.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_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ce174571b3f2680048fdd98cd139fa8c2f40ff73 GIT binary patch literal 601 zcmV-f0;c_mP)#C_e zwr6LWo!Pz1WKyKqAk=ELvud?^t&Q{AcO_tQ-}gVYabEkb1REzPX34U8Vr}p|F9&;u z?Q1SEl*{E)B)F+mDm{#2j2{>$DA^O|$|RIv#0F0b8`OxI z&g%pDM>J=4>brcV(R11-77(Z*5;iqY{3VEBPYIuf=3@Z?dNvpvSo6dpL0l(%dYTU* z16gBPl+Va=g+gIRau$mO@$`xKW6g)qV&(~wN4?+gZ%NK#ksz*%ivI&z%)AAD0z1TY z!e^xUSb)H;2zH@)7jT{U!(GkC0)hlWP)qYJz`CZ05okUZc<;!2DDFK%f7^#n_mJaF z-Ldm{9^h57Cu2mx+|&cHcJWQ^B8cxGZ}zPdin8B3Q7}6r#U%GGBk);TvRiKwuzYv0 zOYQ`ZHb;Nfz%A{|^)g-}FrvbpaxwZZMT`YXb$~=|+vrhd_%{7@jHQ654+#V8z$3KP)P&TO7B29L#0%L+u|?SlCfS&1yo|uk*rwb@pC*c zSu9RC2HLiL_Yv#A#?c4NABaJU_u(gWrxH;qp8`Pw73!o#+NT&rkS^ z0ceyTJ--)bQP*|1u@-?wH`v75EZilpV=V%WYSWkOZL;!vda(i<$X#JT7gGSpV71VxwxIyh2BwpIjuWKZSqZaii{11Epgq5bS TT$m8400000NkvXXu0mjf*`%q( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8603ec3e077e37e8fbd46003bc52f34336ec0cf9 GIT binary patch literal 790 zcmV+x1L^#UP)fyH2MeZAzjUx*8ujOfQmJ%@ zZT}3qGxb`ncBJ2D>{}$odcA&MMLe%ot8Z0MUv}uiWZ%{PPQP7itWBIAi@5kdOKfdz zZQ+9`D)G9C_`>x*&a73TPxRXei;w$`%H{HHCYcMGyjx28i3Mgg7hkDVBIcP3O87_# z_gO?%%UnDI(Wp1N#SfKmK&|XRwk@l)TCHo{Zug?i*KX6^coA#p=K*Xm&r~oFjrvBT zadXtnYdP&`U0Jp|M zfcHd%jjgtO)Xj_nZ=tAdYC@(RfN?D7x2TyJ&G>GZME|SQgrpgOV})8DMW`8q2~gZ2 z^=j*f8ZD{o)Pyi5`$HTH`TNui!2}2}Y5*r*T%Atm5;Y-=$^H<>LjD0YLofjXoWB96 z{TnnZ)Pyi5`$IAeCD}xhm(*m%u`oHC)Xa>6-o*e0 zK4nsu7QYO+zvl8HD;yss_ArRo6s1KI^9nK39VJ5NQ5I_T!O>#B+Mb4*G}xE%QXl3R zfCjnm!uzmaGx#&hAnaq`Fjj5e$7xe4m2T8Ve9(9~O|vJgv37+2zGG8=Dhx!U-ZY!d z2i$mZ5d$BO{cWr371`z3R@~;kaej`;JaZ);#L%5cYmTw-;uGTKbYf4WG5cm(HfKyx zo3W{4KC{4aCheYm?8{((6F;F=WgD_LD)4J`{H1l^Yq!OHtJcyvCnqN-Cub7B0bE#g UN|Ged9{>OV07*qoM6N<$f>3yPaR2}S 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..d950758212ae5762c02a2b965cef94be3fb84f1e GIT binary patch literal 1314 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 P00000NkvXXu0mjfPTrR# literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ 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..38291f895eaf760e4fe2b8c830035bff7b522b7f GIT binary patch literal 970 zcmV;*12z0oNk&G(0{{S5MM6+kP&iDs0{{RoN5ByfRZya}?T{qBkrkP3+qP}n*4Vaf z+cPWMwr$&He?m8~_#Z?vofW7gm*g%y#NJdloqA}=W9lO}Zj?#=H^brh_4;pmw3|g8P0m&1hF?a#|XbE^j zLWsN|Yp?|P0WI+ZSVo9FMcB{>2az`<9O{D$ByTZ}^ucB91IPN{$`4NT!L?#@9l^Cb z-7X?rr}?jOtgpC^qg!iTxh6RzO=r`Ev^3WaQ@}atEXDRgEiBzFaGLwP>Rs=6$;}Qn zK^ws4PLU=m?JG$=OCP8CNSbi1^t5fdJ6W0_OD&{aD|`8#@SgFBCW6emRY$6Ib&DJk zWZrGsfv~1KmGj9)a_H?v!m-K=u64Ha+~h+UF1Kn8LOX(RPTQ=Yi>Kukd}KdeB_#l( zlo2jc%;7jT#cWs05@e&ZbY=n9B4a%!N02p^Q*4bYf~>SV8+h*GIyr)TUoWBU>_g7) zS_0U@s{~o^PzgY?gK>;879bhlO^|sfu!PlIN3JR4S`7sAZr2PHZc-+SqLc#m_dP*= zs<*Jb-${_a8xI_JB1k$}4kXB|%@k^(m>_SF5CGdKCdivu)R`(xFk=GAI)}>>{8BH$td=HNY=ThscN^#H^abQLS%QBV$7QD5khHlRCP(ml1BK#qf+m7l z+qrnR+(nRYYeSu8ekaI#6bYh}3WB@=sKXlxvcxn2SdJmcjI~r+td1Zb*Nnd*iV5-q z-Gp_hCeF1s0@|J-$c(dD{B-dmLFOFj*Xo&wodks#V}Q?-#qWfCfxj=TjNp>O5c!@Te5o%6{IK zmgi)u-D4peXhT|t+RNo0@T{lY=`3q?20oP|nP5vvG8XWyL(u<%aI6om{6zZT+7I^i ziTq$iAFRg6c|k-5BX|e=XbJejI5LP{3^Hh9j-VyJu^1zZ;2lMbVm7gcdpzL*k4l>e s_rxqlQ9|&Eh%$!J!vrRkkI=&qDu{lJK@LrHF{pfuW`qzZqK4-GRLKL!W&i*H 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..f6e6d64067c5c70ead36603578d8ffa890a56632 GIT binary patch literal 950 zcmV;n14;Z+Nk&Gl0{{S5MM6+kP&iDX0{{Rop+G1Qh2%z(97#(3m9`@tMG~F;IuaoP zk|fi%=G=q(Y+K*9ZQHhO+qP}n=Cf_veuq5)MgRT(pM|=*vCZatm|TKW-}imXp6IKI?rjNcIL zFIv_U;u_Yk0Je{!0Xax!)}TlWQjkiR#4d>D7Ii3cH_&vSL}-x7xQCXMCvbWYj-=pV zQ4b8?APO^wvG7dOs!5S$fyikNdxA_t7fq>8V8H8`Y3Hsf$>ZQzQ5U?NVA<>V0lVHM zp~2oZMScY*=a3Oh@8fE4e-35A@IH&!Rt9>2b24_7~G#j zbg;RPPr-%Pal(&X2b0&qoh>c>h+9}`!Rpt!=tz)&-8s*T91NMmj6mVt#WZ-Psy7F3 z>J!+|#fKmnI|oKm5Q*!-U2SlqXi#SY&CnhWLo{|09jQ;i7vF)C@}Pj}Bv{dbW_|~E zAi7*Mss#ZQ^S);!Es!*ODK}tO>JwwB0r)ex#YYiDPcX9-S(w0M{2dOWAriGL8iv3x zftw6&a25#J$)ahBbRZ`1md!cM#Y2|KVxA&f7eJD3m@`;&R6r)`TQm^P#|0p}%>INX zzQd{=MH3aV7P$bR$|+4TYdF2Vq`;~>*qMsBNm&7)3bb2qc9`F=+>CNkDy;j+py
    m}2oxjFIQIZSh%LDA$)U83GoZ7H^Bc8tmLZVA)2 zXnwXXlW!=qhQ8<%YVIECloAIx6n#eZ?U8tZ!p|}`MV}I-nbs{Lrwr$$3=E6Qo z?Zf1rd#-P6+j+Ka+qV6F!M1Jd7h>B^)?B+!0IhA?3`tUCW{qvzwr$(Cj%L=jZQHgr zwr#U*X61Jj5mmYW;HilIPe5BU!(N>sPw;SjGqx|Jl^WK!`J60o^|e62zx8%)Mp2|>gTM}U>a5y>(>$2tfBI~Cxd5CfBJ{7L9#NRaM$>}1d0uvhIgDT zlo*5jEem>V3I0#@Hy?l~yh->gEHTJdi2p;W>DzpXH}`B*fJ<{6g_v!+2z$Zj3W$YY z`H6f9J86QWATc)*{(@tC270YT-;vf~RZMk1D-vVD`R)Jyxqi>psO{23Pw5oCVL4Jv z>NY^UR&}3Pa|Rkpe_kX&kn`jGPSr{}rR(%sx4qExo~MjrHfa&2IARfGtt#`F=>8A= z9c3>$dvBm+PH_#%aw6etayRI*X&GAjebrRVPKytG0gg8}QFw&mNgV6Vbv3pNkb7%H z#arQXUx1e*7VonhVTSYP9Ti^w)%tCFg?n3(K=ihV(#wrWBoadmRQg6s9%}Kg95X`{ zEP;5#DPPgz+8j4d*Oqb53^6$svSG%?Ghgkgy`o9>8rSRjx#N|{>;aLMA` ziC2EEf2!lF5V%gYAZRWm#IL^*ya`y1<_Lp$$qA*jHPXm_0@l zmLXa;-B?pB*3Y#eg#!On4Xw)sfm00(HtQqIB(-GKFkj%0%As{QD{!un!E$xN%oyM= z&^3ed1UA$Nt@~wxWA#)~_+ObB!YO+D#+)O^tme@T z9&La1kh1A-PYZCQg#s~K zO_VSf$*Fr2bWN!b0s;T0hE5z__mhFtzxj?MC<-5{%aN;`l9P~Z37w7!;BV*_iK*1g z69WB@Uw9RitemC9UrS!QpF!6!EL-%n7urWGWd?s+DEjYw2r3GHYRQwEywur9R=vW{ z{DpOQcZ0h+Nh5mY$F&1Hcj!9m-pwgu{F6^XB`X(8CAU)0;d2P6BX9B^*4iZvB$j7r zdQo~(mM_+`pK#zpfNyjtkUKf4xpqTrt*cPi>s=u6rR_@;HZ`Y^Bkd>^O!KbV2g0L3>b|0@bSe+$nSq=TCQ!Ix# zdzi`c)9Ly(ShAW`*K3*|kRaP?1mq{v^{TUEJ)@%2*yGc7B0;vr2*}RkbH?dZVaS%F zq-FT|SYM&2xN0cM*XQF5*HU80#=M3eV@{X*T|`4i_Q;5I(D?myr7?Omc(OgCq-n76 zr;B`GBPv?r%?g!`J~&-$yuq4E4A~{8tYxq<=S9bdeQzxuw$^vYhtG?QF<48PBfI6K zn!1fJ?mX{w)$v6i``2RYZL@1^v)*F=`nc0o=Xu5(p+{57kzKR$YMQzXG1AzlCOtLn zJnwwW>G(MxbDsCq)TbsHYosB%G}Yu;vVT@is;*7DmM%SdCtX_FwW&+xSn|X&EH9B) Km?S*Qkc|N=!9V`)%7slFqhm+h%3k zwr!`fom94M|2Wmd|Lz+jeFWslwpA;Kb06;R?iK}1NzXHIiR$}@q4xw3|4Ry$a*8#Q zBpgVR7D$3%nl)Axv&J+*kR~L-5SP?wE2qXKLj-BYH5|zuJw_CQ85-b=KjnOZCW{0` zM@6tp7yLmvf8c{7g35?JIu7C30$qo2qA1u@^UO2PJOel=-e*Dxaf*{Z$de~eo)aA8 ztEG0@X{VhUbb(wP0WTTKDlMJ{KpjuD;i67c-9|6{^xJRW-8NO0IzAGg)T1obHa`gC zLhpSd#3?E4DXtNH7yu>RB!qb9oWqW}?gt@+I4d3OnMdd=1G3y8#CwyJ5JclHLS@_h zCd6(56#3akhzBZjfuXm)eh~lkrLm`#74#XsP z$Al2#Brm8ZpI8UhJiH(tNT#B$JYu6Fcza3Qm&ArZ?ex}LZ@o3-2IYJq&eP~B>#esW zx(pwQ8$#G%G0r{Wonmz6J^Ukf(5TRCBnr&oV#VJTB40? zsz@IMK&p#`5QSd2?7B~c5Mn7`u*q_O8GaI`FSMtD1K=jZWM{nb*DsG9)=wB0I0A6- z7b#Axa6Vw_fFc)xjzc&$Cf75pWh@y^=YDPgC z97RY10I-atYHi!QKijr#+qP}nwr%Tt_p|L=W1I=-PdSpex2Uc@`oQAP|B?4+QC)p| zNu&Qjs5!HVp(+S579ym}mCT1arW2}8XKZ1p2+CBquP8w7&XFX%2h>f~>CB8R^yQ!u z=*?V&(@UJ1(@7;(L({X_=+4EYdZD#IWFi1J>VY0msi+JAcYZ_r!S;Yf`Weg=aO#y3 zri9Tzu#gvQ+Rd3cXxE|%$Q?3<^f@m1E;GM~*TMrO`4$H0b)t5Y@dQmJc>M>WAC&tt zOiMC~D$xT(|48>nu-3#Ki3jnQzex0ex=FzYB<7vde`D4#dtvlF=(2{1TKe>zc+x~& z1vtD_pz%96$G)o-h7n%{gNbT-8*aD3VHFA!a{Jm$aD%Z3OTjnj4MM|Eea1VBG7_)D zZ{I*M;aP;!py3W|iG(5$g5o=1iL4@A2NidqPoxy#N6>!<(M0$&=)a4!6DPsr75ehy z3af9IZ89Wm2 zv1}4O(M!m4?9C$m?ndQh7}L-#)Z8U}52%c0hZ05`bOSkmfao!-5U`nKzOY_m<8&e% z)h?uQ_?V0jY{5%EI*})p(xo&x|C1RH1z^u$lr*{ma^2uZ@t40yG;7-aXEO+%8dRlJ zlNCSb+$ijT$|dLH$z>EZ&;u$MyXkj}Kb*Q|FdHwf!D+|YWy84HMqKh;4Y97BAa5NG SeRBoppXX-f&_R7bpQQ!cJTW%_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..fef210d372b8527d91b208711346cbb860a81624 GIT binary patch literal 1270 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 Sual%01iBvt#fHBV%4aF)kUWY2 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..3555ca6f2085272c31999b24fecd1901b3b2138e GIT binary patch literal 1192 zcmV;Z1Xue~Nk&GX1ONb6MM6+kP&iDK1ONap*T6Lpbx@FPJ8m0c|C>HZ4<8gz{yn$B z;S&)O1OO}}DaF`W+qP}n_6PQC+qP}{*0yciR;QVO_3i&}|9|`cPjRk}9$S9^HhAp* z9}8UfvGoVw4?lsYbpM#(%LNV4`y)aq3#`)1;ExCHQ@_?nFIgB2MLXn`N?j(bf;PHEyjhmV-!@vBiPJeNegCfBIIHrE()#(pT z1G%Lmi=^iC6Q_aHLdBY_NiUoRQj6gx0-V$@>;_Ux5@Wk;M#NqzoqX!#t)nZQbQoWx{*4aV~Wv09D}jbI!XG>QfeSI z7=BbQQh^|}2987(C=c0FUc)m3aTDxBs^$i3;OM$l?~d&RBrzfo9Tx4yY~Yg^c3X_q zEi5mzO;%hx^Y!UVYpe`Y&I;V$iu*>~z~>2kjnxfLiUg7n(j&|@;(P7TDIq6B`YY@y ze2oe7Bvg9wQsQ`peaBj(V)z;=hcZIiSV#x)8kazO$TZon=;IE9QHv}Z=&oqjVqq~- z_U7X;9zojMz);KX9WjWJ4v`hrfHl~oF0#dB1L8-7g!dY3@gxb<14#x&%MnGe;b3>f zBH3g}t>6~6hFgM30wp6EUPSa@Oo0AGyv+rg-iUK+g7ri$)Kt*388}%^!Gt7WlU^!B zfNtSMzp6w zaYXbaA|pyu;c>))Nv?>;U&(;>MSMT#^KZnyR0xY0#h&6a8aY!z$3_6jW(wvzV2ge# zP;>>#)hXTzo+znUopUT#K;yifyf<^nhbIl1Emr^-2GJ0;!Xy{rwCHu zaQt_~7f3Re&>bkPc!NE61-Ht%A#sGR{FSnZ0o7`OMPW!39uO}YffArxg57zahrk~$P2{j zjwdMT*^|z~#M%?1?LPF=u_I`GC`;WVF zv+z}Q{o178TP!om1Q?qVQ!$SCX%akA17QQ{CGzKp0iSy%7{}WQ?$tnwQJt|d*tO6a zNHT=4p`q4uHjrm3J|l*?_q9?D6|7?r9cwp`ZCrZ|4sflvfs7N_b|F8q4ckVrvW_mm zTXTo)`@L4?Pg3ID)oQ)#x!sjO`ds;kQGac7SFT3=W~`chHOX^Vrho_5z_<|BMM6+kP&iDk2><{uU%(d-WhiLdhDrFt?kG)3|3|_w?37{1r(rmbg-w>@m`_1io`q0OhfV`Vj2O_VLk>cg zXUTmmM*u*^kWC%$W-oZ(_ZIro-~RTeg}(E?7u@W4n;Mb<0K&0%aV!9sZYx)N+aGw) zAKr4ctxN|1mb-^#0TgZKPP1_o1wjx+N+}gZK@db7&332F6aiTF4wePb<7A&AB8noF za9g6Hh=}M@C+h)V*?NQnP_q99?iB#4N9 zb-EG&SBdZdw)Q2WAYw^TK=h?;0C-Y{VL`>+h^8o(rKS+wtpY4lgaxp!?-2zoEg<^N zx&Ukm4!{YBrX(ybnL>0T0j>ZCtXmNUyih=N8wXq(4~m{aO7Tic(X*O?PvSs}S5T1f zQb|CsDg&3ofufgD!1NLg*%jOjL;<~`1-JwjSWlyX`8!SacVQL^=vf}vV+?>>P>>4j zMfT58NCLW@0CS23$0L>SE|e%b8Q4QSSR0YzZAcMq2>cNaRD6d5-iIRk-b~;Q5JKFA z0)7G%(ESV{dmPvbQ7Y1WGP|oUItkH^z-_Uh+2<(Y-J)Vv0!8$tHek1iQ&Ggbjb?BD zFGZk;&Lul6=&=xK9V3u2cfle>3+2fYa;Zd%yJ-DWPz)6PVhFf3j<^^_teT?E)Wd&2 zj)};G7Z*=1Y#Js+?PrK6|1311h^{7U9OyD1X$?=cC3h1oWJ>eNwpu|jT0BF${P!0J ziWV3IeuX7YK#CPTWj4K#82y`rHJaT)`qdu}NYR;uU0^`LhbUG^Gv_5bobVp$_kA7) zBKkxbm>EZGj40)a8b3r(_uH;s3?)R{5^h2W<8~A<-PQCCYJWS_fT@7)V+n~EQ1t`S zS?&>|xkIz7+}%DPGx6$|+g7jIa`Idp?|pXz)D-=s3)qM!Hb<0Z4Nc^Js-+NJo}n`F z{{>aDrSb^j31u!f_V*Z-+#dj@glH!s6S0gdkYZN(r>ML+D3btg>P~+s@LdxQQgkE3 z1`P0C&&%^a(g}0ZL)5-8FDSfMf#+>GUv;$hzdn?2Tuq912Udnb24xc$saO;x*?LI zRS?)NZTNROj{nO61Hcdk?_`yFN+i?+9Z=vk@v%9_2g-y6V2O&avIa`xn~)x{S=!`k zj&Ic>b+eJCh~sEa>>>0(tv5EjWhf|`YcyaC`6Vg+4dQ7I(3JK!;&XO}UoFZ6#{HgD z`Z@8Fp-ZeIus*{dmI_!CE8CELj%pD@ECOB7jT*+WG#eQ4OHvP$=&!E|HJ{;Ei%0s+ zP8ys{w9!|XTFo%mL}aF~QA`nmWZ3|M-P7zgR(r9|*7A>q#AwZFoMN9`Oa*t-r*Xcg^6L0c4e2la%Wcfx`_Q zqKQd7`^^P+D9J*kU?)T=!?TRKR!T?KpCs|+4@MHA{S`DstVYAWLpm$GWCeFYegJ?% z34}c5ch0leLVHq6j4Arjq8hmfWOcX;g;_%rxu0s;#HM5$MwSPi660ggF3+T%2k%VYpEeouix(`uIfk8YG+EMYq$!Z?Ur8Xo zJ5VKHs0@FJbx%-vw>&5*nrlT(vMWTvbXR9Vk-rs)pZ}ZPqIg=rH+8`VlfO4n{iM3! zxW#k@vI4S7mNf@y5G+!RTR5N+C4aXRh}NfPcW&Ic^W;M^GOsi;KuOU&t0-xJWuj=N z3ntEs0zXQXlk!?c0UTGFsYup9M%k!OP{;uYO?>BE%=+}e6w&7vRhETKqG*PF5or>5 z>wOpNOyb3sAz)HOhnb;?>;R{%?g13D08)4QClZ~!IxGvYMf8}uG6&m4PSp~=LLm)A zp!(`_@1#n`T-n|{WB^-0-&jUff$RaJq-JLUX&L~ya#kC->Wlww-ahx;hT(Pd`XEY* zg1yv~SUAb+(A&;Mqy;on#CEY>9XuQ*8dVLt8>w`cM9~8VRprPTU^JOw%(Ey;H%TIT z(YP6!7&y%;shRW=iqbujh+egrni31g38!6`#k`D^-a;vQ&62vbbL1QlUWaarcn*=? zK@q)Zaosw20+~ccMUM&hA__MMh#oMhM@5D}E|Jl$+gLl_6pFMO7130?*qCnZG6b>- zuT{5^XLnyA3bh18U$?!C=+?>;$S1sJU54J}J&Z`jIwD2%=)0mJU0Qeo6$vYEmOkU{ zP@f=DDpimuMf7Pq+_*lo@*B~YAj@+x`^80$;6gFNJ045>I$DvlIG-*~7U)R!`5K#z(%N8mz+ zmsioH&q$wmS80c~+r4QX#cgV?H{0#)(07$SVML!U6?vY4OBr5HtC@NX80`~%iD!d$ zP`kiA{^xC9_|Y8m%{Rx7zVNpHxw~D^4tzG~OY{k&2K1PzRgP!iV#3NQXjfC$YtX3i zKG_%ROT8<;Ydjk~8$BC68@y}0EA*xMVtvxMQG MIF4gkh9LyX0xZ#dt^fc4 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..1c0cbc96b7db992dd7dc909b6e40a7e4191523df GIT binary patch literal 1698 zcmV;T23`45Nk&GR1^@t8MM6+kP&iDE1^@srkH8}kb%vORpnr99M?}(dlad6tjU-88 zU;qDhXQN_f?~RPCsEmMP+uE_`d-dD4Z9B#g>{O|&5ja&cm#mcOUD{6Xe0V2-8nx|Z z1TAgHUfZ^9+qP}nwr$(CZQC}-&9Cj-PBZCeW);!@3CO?H0w8qwt3RmWl_9R(AF?x( zgp-%&;A`#7gg;{DHfGn2PyhZ7{+w=l!wG%BOfAmPFk5TRVKWV)g)KZGz^e)^BMA-K zsTD2%73Nu`JNFPE5$APQpl7)vO<=@s6DSr96^oi`WCRG=i^u++1AwMqMo(UZA@-(aU?{&m~*|DTycpDQ7`>zOt84pf~c4GE+#m*+=9YSKkK>T z74ix^#_|K#mUb?iHeS>?sfxFqd)}wy`(hWO!3wN+ha4{BT`X68Fsnp#BZBpj^G>)G zl=ZPHqF$o&Snk8&sSQY}khs?kQ3kt~hIY>HSf+Pf76FBlPc`?W4DnzDy6L+3WxVNb zMWHq~dIYiH2p!e3KE?3EiW~|(pZhw*+=aeU%)T1K4+|r_+=D@POC*<1n_D`YELP?{z^=pyH>Ni#W>OVDL$fThjC(xN59A4h z{XnpB*o9ob4ujW{A$bR|^mBPE+A)Cbk3gw3kAPq+o(NXyBk(gHr8)$Fb1@Ma&Yb`o z&QXcqg28Uz31PK;z_Ex_ig^!sn-q}}_bTur1C zHY$7~x9_Jo6*LY@i}?^aY2E z0nVEVGHeEJ#-Y)D;FyUZehqLpF^%p5CrA?30k;#-=mK!rOps|Ca4jZ{4gt>{1i20a z7bAsD(pw(I6`|#TFR8LU9_a_l;@trbn8L=KHMio(&|rX-SH!3NA)QTG&QHJsE^Jh- z=L5zGO4RIt!Cr_)S>FIBoy3^d1Ku)Ja$Es?d5B5(6u6t1N^CyBrWpv~dIy1>W;#`M z15eWu67Le07TY5_#kvBpNhTtMUVh+7YD#evMc{QYA~HU};A(TYIie_bO0cZY0CqSI z0be&`&|MsbnSKRUyhF+`2NLI+RO5&Ep>1|*u}m)j<{PF{tCbgn{}n~_(hU#+<{oHJ zMQG^3@LVIsSgcbJ^GtQAVD0r8!%yQQnsG(nKrFC39Ur2vNtbys{G-lSsxf`n0L0k+ zF402bYIa4$@b_tYL^o!eE6QO03iz0H_qwsn;I^oUb}YgsQ3hlFYg0=kvZ2#%{rURd znf2WZ#1W9n2lpj!i4r47=Zy0|K~S3Y(Sbuz$DVX;_fV##vA&}#rWz2$hU(Nhcnh-n4gqu5BW=6)y3F0I$rt(fgJVC&eC+APGIc_Ff`)l}y)QLC{a%=X07Ahc zBKfS|w{NFD{NS($pMHGYPVYOqxXE}mqfAC zOb{~^fJiPj0ST%7$^^K##5pe#sK;c_O~uH;D=fMWzl3=Eq}mg}jP6N9R`g6Ptc&f? s*J`GuCL@9X%=qq!5R;OTC&i&>uAT@4H0C3_!8HS1t2;lq1I#~_0xC!{FaQ7m 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..eea3267a9b5aa3fc5cd6692589db6f6d93a94fc9 GIT binary patch literal 1964 zcmV;d2UGY`Nk&Gb2LJ$9MM6+kP&iDN2LJ#sL%~oGucxSO8_4`g?{$yB{Lepuq%FLA zVlntckPwU!j1hDQ1_)*dwg>=lSi|GC-G(G-|F?D|x;UL()kd{#o8z`^+wL6O)3$Bf zwrzJODzmyWV*Ld(Q)@@YK5FH|jOhOaK-B+H|402F^?%g=QU6DkU8$kzu1Lr}G`(Te zfB*HMQbW^Sk&uYLC>H^8jC$5Vi}cth1<~78M0V_>f{6IGgNWofCkF7Zp6*)Y#xXXC zfA8z4MGmyMq|yzWbsjL*J#Eb3UQMgy$rdBbu#F1fKYMzJh(L19-al+S{~9x{KRdZ> zQnTVtNsf_en9xX0Q6E$G|X7KiLDu{BA6#-@^Pk4z|)pviFhH_8k2VRR7 zXAM;Dk%GYMlsN{f_fP@gb%Tors`p3=usVM98&vTA0>J9*%hOT8XYv56i|t1hA1ny0 zu5b}md?+uly7F~Y@#%t)32%s|?~_;mF`65Cc5LCaj#Z1~j0G)gzEVvF|FY?pFANS9 z09KX1gJv4%e`rz20px5|hpu{Q(#ZnAsuJf>e(3ryHDd%wwk7x4>M`Rp8>{jiL+NR| zI%frw%YXksUZ6FnvTjA$?{+qi1@pB6U)?t(;nP}tvi+n>(l4~OL73*9;gN(_inFO{ z5aoJ*$_e3XZ*Wc$?uutpxw|O$RBZuao$$3+jy~1KqWIk?)mWYj!rk8bo)mo5h(%)z zDgLoBV8N0{q~Q4^29$0b15G6kS z5UlH5u1mn3G0bsZL5cp3!a|U|O~$)c%o$)vNbe!Q(m9Su!1GD0Nj!seeYyaPmv|&W zAC$Q&s=kZ_LR%6O!ID-;2Fp3&~*VM^Qy z+SB}?3iz59YQ>aVX|x}NI*L9f;S#|UH* zgnDL^e7X3smh?11J%dSDlOKCY$3Q*r(>~(IY0`QHRiL%u#|_dV1r?=r=f`8xbOq(2 z4djQ1^n-%pXyf>iO8QnoPTE9%ydeFmpd{K5e%vO_Q&0-6CqFKcRw}3rtqng8lJ+R5 z7VRT`>>%B=si!-w4nG!<-sD%$H>6NWevBgpYN%%&>5(h5)6i{t4O&~0(bKesZn9}{ zmr18$GCNkRoJPT!!mRKw{hG8=<43;7r1OcY>28p|0Di__AbCqGM$AHT4~D=Z682I| z%mtFa8b|sVq|JQF1u9HCqzmw z&Xe}EP-lh29Yyk02TyX`CE?jPb#&HgK>*q9lQC?fX2Rp7P0mBqRaz{ zz#hj28HlG!TEaOdfHH&ifj>~{i4?rs+!lU0=D$Ok`gFk|(K9Fo{qBS?6E#nu+`~D6 zLtvY3NI`vjB`us1hCD;LPpSitAlq>{h%Z0S5jI+r0|v?s_5?0LrDu{*zuYD!EVKeY z`%tp6z{w|Q>XC$KT<)1f=(7NiXC! zy{9yAeiJa|uW4`Z?O(rm`j0=)U9t82b6*I}zET4i?i`V7R=6K60W7!o_NZic3NT%K z`cxU|>#_phs~s`a;GGl?oOk^aRDf}B99`s`)q31=ug%( zbwY$PuKsVg!os&}V2XeUrf{{IdCsq!k@jTEq;gpx@~IW=H1p&=zl6~9Yn!Lkeh(t2 yF}X^8I`q%Y`_J5X?0J3n^06JOr*^HClGO%L|402F^?%g=QU6E%ANBwL1q=W(xXF0{ 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..daf77ebb0d26916c230bce1140bd7435c0abe984 GIT binary patch literal 3912 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..29766a98229daf3e02889e22510ea6360eb0a16e GIT binary patch literal 2304 zcmV+b3IFy|Nk&Ha2mkzGqY`A>sUzpoGv5EYqbZbsA~!O^mN5}<1OO}~O_Jf-XWO=I*Vmbq?fZawySnRa z+p6q(y*m>?4cfLdlJ%uKJ@(Anwr$(CZQHhO+vf2(Yuh_md(_j@o$ueyn{>YZ^7B;n z&byVWUPbhO0_^`b0U&UQ>aPa)GP#;5v90_Hxy;Nk#RISEC#Gg*3m^^{X2dhVE-xt2 zqN)6eYLAg-zz_y9Bbs$sMcNH!O;j_Z)7{al5QCYyJ6&J~5)@_(xKE6(#xdO)0)T~> zjHJ^sqIXr=aQZV+%1UBk9la~l+)2wNBrVwR>FS)$J_I0TtR%^O=wrB(mk>f4!;an+ zYR*_&A^-uwfmXPH6Cq(WYZ-5{A|>XykTuBzI`Qx69`t zTrZ?PFd{A@^+Gy~hzkx;dLg5C0dc`4S}$b6?eQJdHAB|E3&_3`qZoL5N|?VQ`IJ-I zpqUC%rQQEGK~O8Djhac#E>YtNO=oy&x}U9Mq$R!@&eZk;#rP$GnoVr?nj&J{QhzNX z1Y|GwW%9-YzhAs@`JW@JCUnrV_zH4NZQsz(T9yZD4BgY!Y|+2rQSlN@*lCS?^2eM8 zY26^E4likf=A}VeLd?)^_tQA4Z0wy44O19CC$@hdSi9er3+LU`-#y}iaIjXQ(UhoEq%C~*ExT1reGl{oIOuotTRO-3u z`X@<|hh+r9J^$HODm(VZEIq(L;Kq<@OCQF|lNO7FdmiI|P`Pnu+Jq2gQ}($XF9##* zxOgXYh^8{78%?~3^8UTT2b4nso$aV^bH?r{S>tP9$xG{vNHN~G! zkZqQUTg`t^sBLdbqTVcDBnU>7;FZT23O<{KsJZYHkmPcAOes1l+%6%Zffe+uERkJi z6*QA9z4b>3zAE9E?Cg<5(W<#nXc60*>=zzVS~~Aa;zaAYXhqQ^W%4$&Ro9V)5flVKbx;JBB5YXkX6c z`v@7qj<^o;%7-&KUP7j^W7+|E;>DRvp^z;CGv5C|u6uGO`4z}{6EjJ}AjjMs$(L0M zFG&XRJ_dOntWcS6&`b*Dii7AzN1{q$IV8HgLMqhTQ)pkp85{($j$p-YC8#EMs>A~D z)K5l|UV$WLq81%qjN~_CP8ciMb&vMlOR#m35PJvYY0Bgr@9(% zDfGG@myGj3(ykztr8^@*;`$MXRPbMg|40b4zk{Gjhf&U@Yb?2>eBxRb)2b36&(FxOQXh_OfOCMp)v`dJ~QDS8f!e0g&22lRiiw9qL6^@3@X%m^HVF8f4_k4$co%l__8eg+2oZx zM2vs-*V>WIs+B5Sx_ZlTo6fwlqJq++3dD|%K*feyp-QMxx>SN_1Qbd?mKd=8mxpKu z#N2<{R2RQ39nli#H#JgauX}nBZGmo$uG&;&{iC#zXbm)^o%~8Qp?!h{qCF7ZN^X6p z2I<+d+%BTRDj|B8+xkYblQVo#kzYiWl|uYgYWmek<)rs#Miej+l~xN;NLqL0<+m1j zlKIuyc@_P2qS}ffqV8X?%j!R$yookjtTtDoIqLO;Q;XZ=_9m*X+vj~Um#fvRWA_eC zYL-s#iR#w?>;Kf|x`UZSq0$O!GG>E#xO8{SF*AQ%)_QRI$68@CshnvTf@ z5&@04tKmZ6DA*MLvzWKar%Y9*8jZq$6^@%&qnC?#lNH8D-T%=gy zir40|1-+WeQh6@_MS~t)<*jJrDa)^xEjaPQ^+LKs0Kr58Kv3|JV}&z5x%qAWpJ5*b zA4RXy+P}&^ik{D~wfSXQALknckYNc9eT1zyI*Ml literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..256da179689dc2969bf6930e64bd8740c0862b37 GIT binary patch literal 2694 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 ADF6Tf 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..8f400a3bc26f4644b7f2a6ba9e700833cd086e5f GIT binary patch literal 5636 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..2c60d05 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,13 @@ + + + #6200EE + #2600B3 + + #ffffff + #700000 + #007000 + #000070 + #700070 + #707000 + #007070 + \ 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..8ea7d99 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + Reminder + reminder + \ 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..f51c415 --- /dev/null +++ b/app/src/main/res/xml/extension_info.xml @@ -0,0 +1,8 @@ + + + + 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/detail.png b/detail.png new file mode 100644 index 0000000000000000000000000000000000000000..edcf136674fc373b822964797506ddbab084ad60 GIT binary patch literal 26895 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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/inride.png b/inride.png new file mode 100644 index 0000000000000000000000000000000000000000..7d726dce32aaeec16c24895bd3f82c1a32418884 GIT binary patch literal 41357 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 literal 0 HcmV?d00001 diff --git a/list.png b/list.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ac6c01aed2eed3c1ea3abda900b95ecd6f3557 GIT binary patch literal 20568 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 + 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 Reminder" +include("app")