From 5098dad9d6d095615cdf772490decd87fb1fdc79 Mon Sep 17 00:00:00 2001 From: Dimitris Date: Tue, 24 Mar 2026 17:04:05 +0100 Subject: [PATCH] Launcher Icons, NotificationService --- README.md | 3 + app/build.gradle.kts | 53 ++-- app/src/main/ic_launcher-playstore.png | Bin 37652 -> 28779 bytes .../com/kouros/navigation/model/Simulation.kt | 45 ---- .../com/kouros/navigation/ui/MainActivity.kt | 6 +- .../java/com/kouros/navigation/ui/MapView.kt | 2 +- .../navigation/ui/navigation/AppNavGraph.kt | 6 + .../navigation/ui/settings/CarScreen.kt | 90 +++++++ .../navigation/ui/settings/SettingsRoute.kt | 3 + .../navigation/ui/settings/SettingsScreen.kt | 7 + .../res/drawable/ic_launcher_foreground.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 3 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 3 +- app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 2966 -> 2192 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 3958 -> 3566 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 2358 -> 1634 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 2610 -> 2178 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 3794 -> 2828 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 5254 -> 4788 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 5712 -> 4258 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 8638 -> 7664 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 7460 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 11906 -> 0 bytes .../res/values/ic_launcher_background.xml | 4 + .../res/drawable/ic_launcher_background.xml | 236 ++++++------------ .../res/drawable/ic_launcher_foreground.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 3 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 3 +- .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 2966 -> 2192 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 3958 -> 3566 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 2358 -> 1634 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 2610 -> 2178 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 3794 -> 2828 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 5254 -> 4788 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 5712 -> 4258 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 8638 -> 7664 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 7460 -> 5422 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 11906 -> 10894 bytes common/car/build.gradle.kts | 4 +- common/car/src/main/ic_delete-playstore.png | Bin 22237 -> 0 bytes common/car/src/main/ic_launcher-playstore.png | Bin 37652 -> 0 bytes .../kouros/navigation/car/CarSensorManager.kt | 2 +- .../navigation/car/NavigationCarAppService.kt | 10 +- .../car/NavigationNotificationService.kt | 232 +++++++++++++++++ .../navigation/car/NavigationSession.kt | 13 +- .../kouros/navigation/car/SurfaceRenderer.kt | 64 ++--- .../com/kouros/navigation/car/map/MapView.kt | 16 +- .../car/navigation/NavigationUtils.kt | 80 ------ .../car/navigation/RouteCarModel.kt | 15 +- .../navigation/car/navigation/Simulation.kt | 125 ++++++++-- .../navigation/car/screen/CategoriesScreen.kt | 11 +- .../navigation/car/screen/CategoryScreen.kt | 3 +- .../navigation/car/screen/NavigationScreen.kt | 47 ++-- .../car/screen/RoutePreviewScreen.kt | 5 +- .../navigation/car/screen/ScreenUtils.kt | 71 +++++- .../navigation/car/screen/SearchScreen.kt | 2 +- .../car/screen/settings/AudioSettings.kt | 11 +- .../car/screen/settings/CarSettings.kt | 77 ++++++ .../car/screen/settings/DarkModeSettings.kt | 8 +- .../car/screen/settings/NavigationSettings.kt | 10 +- .../car/screen/settings/SettingsScreen.kt | 13 +- .../java/com/kouros/navigation/data/Color.kt | 4 +- .../java/com/kouros/navigation/data/Data.kt | 23 +- .../navigation/data/NavigationRepository.kt | 5 +- .../java/com/kouros/navigation/data/Route.kt | 1 + .../data/datastore/DataStoreManager.kt | 15 ++ .../data/tomtom/TomTomRepository.kt | 11 +- .../navigation/model/NavigationViewModel.kt | 5 +- .../navigation/model/RouteCalculator.kt | 1 + .../navigation/model/SettingsViewModel.kt | 11 + .../repository/SettingsRepository.kt | 7 + .../navigation/utils/NavigationUtils.kt | 15 +- .../data/src/main/res/values-de/strings.xml | 5 + .../data/src/main/res/values-el/strings.xml | 5 + .../data/src/main/res/values-pl/strings.xml | 5 + common/data/src/main/res/values/strings.xml | 5 + 76 files changed, 930 insertions(+), 478 deletions(-) create mode 100644 app/src/main/java/com/kouros/navigation/ui/settings/CarScreen.kt delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values/ic_launcher_background.xml delete mode 100644 common/car/src/main/ic_delete-playstore.png delete mode 100644 common/car/src/main/ic_launcher-playstore.png create mode 100644 common/car/src/main/java/com/kouros/navigation/car/NavigationNotificationService.kt delete mode 100644 common/car/src/main/java/com/kouros/navigation/car/navigation/NavigationUtils.kt create mode 100644 common/car/src/main/java/com/kouros/navigation/car/screen/settings/CarSettings.kt diff --git a/README.md b/README.md index 02cace7..a922cd5 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,6 @@ ## Simulation adb shell dumpsys activity service com.kouros.navigation.car.NavigationCarAppService AUTO_DRIVE + +## Signing +./gradlew bundleFull diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 09850d8..7bfce88 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,10 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) } +val properties = Properties().apply { + load(File("signing.properties").reader()) +} + android { namespace = "com.kouros.navigation" compileSdk = 36 @@ -13,8 +17,8 @@ android { applicationId = "com.kouros.navigation" minSdk = 33 targetSdk = 36 - versionCode = 76 - versionName = "0.2.0.76" + versionCode = 82 + versionName = "0.2.0.82" base.archivesName = "navi-$versionName" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -22,23 +26,22 @@ android { signingConfigs { getByName("debug") { keyAlias = "release" - keyPassword = "zeta67#gAe3aN3" - storeFile = file("/home/kouros/work/keystore/keystoreRelease") - storePassword = "zeta67#gAe3aN3" + keyPassword = properties.getProperty("keyPassword") + storeFile = file(properties.getProperty("storeFile")) + storePassword = properties.getProperty("storePassword") } create("release") { keyAlias = "release" - keyPassword = "zeta67#gAe3aN3" - storeFile = file("/home/kouros/work/keystore/keystoreRelease") - storePassword = "zeta67#gAe3aN3" + keyPassword = properties.getProperty("keyPassword") + storeFile = file(properties.getProperty("storeFile")) + storePassword = properties.getProperty("storePassword") } } buildTypes { release { - // Enables code-related app optimization. + signingConfig = signingConfigs.getByName("release") isMinifyEnabled = false - // Enables resource shrinking. isShrinkResources = false proguardFiles( @@ -48,15 +51,20 @@ android { } } // Specifies one flavor dimension. - flavorDimensions += "version" + flavorDimensions += "store" productFlavors { + create("play") { + dimension = "store" + applicationIdSuffix = ".play" + versionNameSuffix = "-play" + } create("demo") { - dimension = "version" + dimension = "store" applicationIdSuffix = ".demo" versionNameSuffix = "-demo" } create("full") { - dimension = "version" + dimension = "store" applicationIdSuffix = ".full" versionNameSuffix = "-full" } @@ -66,11 +74,20 @@ android { targetCompatibility = JavaVersion.VERSION_21 } - buildFeatures { - compose = true + packaging { + resources { + excludes += + setOf( + "/META-INF/{AL2.0,LGPL2.1}", + "/META-INF/*.version", + ) + } } - + buildFeatures { + compose = true + buildConfig = true + } } dependencies { @@ -95,7 +112,6 @@ dependencies { implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.window) implementation(libs.androidx.compose.foundation.layout) - implementation(libs.android.gpx.parser) implementation(libs.androidx.navigation.compose) implementation(libs.kotlinx.serialization.json) implementation(libs.androidx.compose.foundation.layout) @@ -107,4 +123,3 @@ dependencies { debugImplementation(libs.androidx.compose.ui.tooling) } - diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index 55787b02ad2fbe3bd080e17d8589259f9638ba75..c40baa1d38095a49fa632758ce99a431b4aa1533 100644 GIT binary patch literal 28779 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 literal 37652 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%0DkS$IN zB&;=!6-K80ERBK?YfaCx&g~SmWR&6@;(n{hI3c}^-p##trx%NO^`BMnGJ(q922Bw^ zOlz?#WZ@g#GZTqGf!DF=4Cb6LXfe=~YXn`?i~ZAqC@tA9k!0XZmk)N)|LcZDfc2nB zqBp!4)vvhjiud-!sxN+i>6X44fXR04I5N!e-IO)l;7Mx#ByNIJ-1D$! zLMX=Z*b`BW_`XEpIVHbOo=gsDoSo~g`FnFZYW~F5r`6xpd>Bh{{Yu9MW#_Tjh!OMw zT)=B_^M5WD%O>ytA^G9A>qh(AyLY*HAmrMQr4dZ-9T@>iCk)KWMmDcnUy}bCD$o)$ z+{nI;1h-QL)hOxvNa$qlWWG7q);EQm9^|iWs4igP4dAo661TBm{MmCT#JyD00FeVE zyh#E5&U(Ik*JnHZ;hX35;WatAu`1tQ?qkYi%a)DbD0W=H(1T9Y-EGXv8vXZ^ z)&YWcjWAh!61T1CCc27m#Foj-A=kNy1q}?^51hXH)0b`aT8a(fGm&z2Jo0nrqOdet zMXLXN*P(~7j~6Z?Pw zqs1fbr98kH0CWnRupijbH1dW89FDUqkA<81!1Wgs`bGu(9iwoVDm$p0JpOp+jmc(ncc{R)#4wDAl3Cm@OIRPl5$Z~EPITM^zZD+A@wzyln?SPjKF5- zFCanxMq(Z{)5a0O@RrM?#nxBkzYYaX0Tn8gdhrB|$rO4pyYKf_&zxr2q|z)@8xb4f zLh!u-CLFbh@9b#vuMh)_5xrY?YXVbUEc!u>@!yWHx(EGn2;9Wi3p14e_SL<&n(baX z?){isBkdEPz%?z@jXxiFi>PMDEm)ff@X>+O=T8*Inz&th`_*0ZkzRthijO=oahtvQ{-9T?A>*d}*pd174%Oey zr7>F{oQ;Dz6)Lp?pAuBJ3Qj7u2BT)l-VeVs&Qw`OE5mNK&?su- z<3lq^xjjFz4iA79U?w>}%lVPNcC>+TAR&S)b)ygE`3#Y3pRc%>_-%lmEYyjdn5nNY zJZdbfEM{X^xc%hGBrN}Ih+=psP6WUmqiR5=`$^$I^I9f7QeJxMvE7qKXS$?bdU;}O zurzh%H?+PC1SO9CP#Ti@`+~Q_!}4d1uXX3G*ugg!-r01Xrzh@)=kt=a0CFRjo?`zG zi}dj6KX*@eTNbnC6b3=ddGF^!nh;K6SKD#V=v=GN{^o=s}gn zS@|{@c_+yLX~`QWmFaubH8yPDY6H18&bM=TM|7`FcFLdchp}`IV<&{}=D)#^YAy&h z-*HTpl3ia_bT6&s0ylLJco~}3CVaX@rFfq|)&IR_JRSoSkK?F}%gF9c2W z;1d`cobI^`IduB1Jxt{s`O)Rx<`z8=#`npAR+i`1G^>kpOcl^X(Lg*BJHD98HHn>m zr`(JcKs&=m3xg#JzSEYV&_7;N{c*ZWT03S0bWf~+X7hoyFv3tq^${UWuimKxnj}qv zw2!F4y4*_$BI#GYC#&rv28{3*cC)>qd2{3R+YfY2QXSS4JH;uhvlopIVr|09wvy^> zR-&-UlA6V@)kZcWWp3IQWOs+^4t=e1{O|!3psma?Jud#fOnz`HT*4NY`aAs*5tx7FSkx;A7x|u|Dr6N*ufb2~P%| zquJOfg`r#Q@?Xp!3yht9Ez}lv<(6mp^9J$+m%n{<`pZWh_y|)q(2C)kv~Rit_h}ld z^c0UvcbcM_lkn$-&^i$u7Vj z^65!5x#V~n7)2MWH}~($@=pH=`2OdFo&z4=5`RtIZn3Xz*;UwmB1;d&Ueo%JsChoS zs=YmT=hMXr{bcG9b3GwQ*h>f@7wVcfxr<&~-S3%}7w?$+T=Q{Vea>ILR&jS@$NHq0 zU7okw%2LmZnGv%H1BmLZ``kCXohWzmXC6|Y!6L}Xc@V+5H6ZlK@3G`?;7^~uk|xmQ zgaRhaU>OkwFX3em>-qCtyxlJbf~8-G~4G_nI_lrr$a29)%k5 z0{Tmd$W~cmvF^l%y7;e|CaS|*_E{mtXUh|SVP~Z;55=W-4GQq+#g`HP>}Cpe_x@Im zzh}N@x!fXkdAyMU4Z9;EAKltfOZPRsO!o1lfbee4-f=aId#L5D7@h?!j5a?xg$u7Lh z$czdd@Zt91@!|C;miRYKH+e{=b+tizr|Z>7C(Mt0#vP4Wj>Fka3jgmA(q@^!ROb`CwEzt zctPf-2QX}WfXbF&9KqY9{bZO>ptyUW9eEH)3v0J`zy%H+d7`Qto^^Kqxh|;7mz~;%$qeLDub+o^H#JC9HKW~{q4(h zsR`?PgL*mz4MDpC&h{?sg%Dmdc;<8ZUrBc!U&;|S(}6&Six^k;h~izhQ~8uG9u_`H zWR2Fc?!)fZ2NMC;P$i6dP6$5#YCf_()#`UV`a3D_9T9Rk>0Vz^(d;D>f^0Sc;gm`# z2tVtuSBGO`VUs1uYPh9VpK(=^``bN?9mPWpBLNKos)bJqXyifR+%l@Yjp56_weA4d zpx~hR;Ie&2~gZY#f#0g6)_eYT)pM%#f98SsE^Mj^i;M$Un z5eg1ztd=j}H*~|OE*TxCY|#}m{gIAc#F8cAk!N=RdmSXmXpUHj1OSq0E(u#5-;+%z zLaIIj#bVBzO@#6(2id7NsN~R`lVx43u=mq+Wz*6-v}PHWzsHH()@s$;tP$A3JlZ_M z5BBUO2MjCxCgLXYCaNYn{;kopScf{#T3fw;qdWA`dDe_Kyd9QRC8I@Y|k zA-)hf7dfSpdeJ}E)DjrkgdRwFu68Ue<6)iNV+Y=9S$3Ce<6w=E$R~XFQH&SZTQ2AP8slNX*-a8R#63iaM zgKXo+oV%d77{^kXswvDIKBqaYIuifmISUllqXW?|D9%++$Bzh(c#qWlxOs<&^~-{c zsSEZ+JsqouuQa}JfTWGueFihNv(e~xf1>W05QCfQk7!mNkA>y!g_G9?EIVACDL^s< z$`ChodUm^gdlCwNhvxJB6 zbFCPxn5KK15#Y@ew#$ZAucPu0q|)G>=(X<2;-;Jog$Uf>}C zh@@f827}x)H;A~3NjoXE%-vEOSHPwBes~0i_rLp)`RGiVd9M9U75TS$pP|j<{9e`h z;W&&HaZ_cOoS~I3su<|lygxT|l#6|Jk}UGiwH2TNY{&N9^K8NPCpUvMvufoY!9%tw zR%BP?SCm&&U7B`o{~M?QxZ2CG?F0Af0~(H6mNz0g7VwU`jKGmhQ14!mpOkDI{U=On z?gJAgjFIE1w<2JT;Ude;T8&5q|MnYl6uE33`E)pb>>rSa28x|6Y5v;BzlOm;ok}0l zFueW(x{75STSod;gjd8?Bx?f}to|)K7fdvE?EX=fd}2tzv1l_G;trrxot@@$P3*ZhrEG{rEuoK+%HwN~jU_wm>W=sSInPrA2=bV^ z85khU8pD$_P%dhsDTvql5o^fj`rG{!>86hS|M|BjP{xlld&Jz;7m>?fD}!oVJICDcl$4;UgE zf7@Il=o1yd8N-c+XZ29yWCb>+Qh>5hsoB_nrs57G%CO1GNbV*}OP32GzEPjf*gA$; zIHI`=%5aHgj-PEjwq37ZeOGW9Pv66fVfyXfTilXwX=P7;F@kQOAELGmTNyVC57OPw zny3HSiW)GgrGyPKqc`$F@mYomGm{up9ruwRG{Hq)2HGciHI-ZL|AsoI31!TP_8(cG zS3Dv9vW^b#=$FN}nnMK#kNXQohUijVEUhgi-j zM!(Zt{96I^7EvKp3FL-HfSGspNL)v<{<#1RmjMR6LlJqP@#3TWkDMmjvCEsBN-p)w zT~}9WY*v>$tp^{Te6&1(<3umChJem<p!OL zo!u}z9C}fHGGSG|*mGhtOcQGJ`@oy5*$(^^GqSQ{BULfK!tn05tb-9-;jyF18z%n0 zP`3kt)DUb9QOstl^d+;mIre7KO0I9mAJmAmYkKLvDhlGq8*`5cA>!kWAKy#*J;Hyz zT95wUCs#EfK-{Cbx+s4dGB;p%|^4pho6tqnklL=d|$ z!?Wyn;>(&Sh>7kS;BOui!>s7ajTO|uX+tCyW31TM<32!j1)qR$34mMC;+W0Kt*aC_ z{cTwn=`!wvvtCnM)(p(-h^NbBfzO3XEP6sArpMb6xF1yc18gf`i=eY-Ai1__<3~~A zlGZ`d15SHq$@av3%H`KRs>v3;_sq39P$wWD^^|!EN6;$p_8d=wc6by52;2<_V5x!T zs!@sPr=uy%cUd1ybshk%l6tQ=etf{YU~v)j^<*ZWu0p!YW=0xsf_`08jqBflK|3SQ z@RlRFo=$b)>sq9)vAx)HGMofDqrlCx`Ez)XeN(d8I@a}zsB+SK2`AkvL0^QCbQ|!As4Kgml<*n_}^XdYDNZ6 z{=NmGDk#wG>IM8sP&IPtMPXvup}_q&dfCE%Tq5%Om+H`?UIExKo~w&$fdIULWjUql zUlHcYlzMrADGh;SW>WdRdI2(OKf8U{_&aMm+1q#-S3x8nuo|7Y!+h#@Ko-lOVpm)Ezl%Y)q$C-mi%Nh3Hu6fj^ayeuKo zr?P*>-vPIa66=t%*ECtzk$Su6dt4a+qU=im5>QtUmZgbP|Mq9k5vIN7ztLAkU&ebMg}wO0 z(G7dQsQ1H4)FT|6r<{KtIJp-`n?&6Xfj@}i?C_YG$kIMsq2^zL`YcU0$*BIQ=p2eGG9+<8Tu2Wm?Ei4rmoi>;rPe+Smhe`vR?t7js zfAbKsbABalr+54Gl!)%=4AUfv;A~yq@B?}Jsdu1di%6&SPNt{U*|~S3U`5P#MS^#Y z?%rhSlcC@mbPh(AFj`o>PN~6FiU4PhBJX&HyzQ|++D~c~&Y#rzGqV{Z1bCbcg~Ds2 zb`>0fQ$O;RG6yFz@doxUc}PFQIUnvy6MW1 z$C6+v;QLTXDAR0)yd2Iv@}Il}r=pbVeKc{$eR}CYAQXr)s9!kE7uUP1M-$V^jXEIk OpR&B#y&^gD=l>s%K}@9p diff --git a/app/src/main/java/com/kouros/navigation/model/Simulation.kt b/app/src/main/java/com/kouros/navigation/model/Simulation.kt index f4a6b67..4d2e948 100644 --- a/app/src/main/java/com/kouros/navigation/model/Simulation.kt +++ b/app/src/main/java/com/kouros/navigation/model/Simulation.kt @@ -1,20 +1,12 @@ package com.kouros.navigation.model import android.content.Context -import androidx.lifecycle.lifecycleScope -import com.kouros.data.R import com.kouros.navigation.MainApplication.Companion.navigationViewModel import com.kouros.navigation.utils.location -import io.ticofab.androidgpxparser.parser.GPXParser -import io.ticofab.androidgpxparser.parser.domain.Gpx -import io.ticofab.androidgpxparser.parser.domain.TrackSegment import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job -import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import org.joda.time.DateTime -import kotlin.collections.forEach var simulationJob: Job? = null fun simulate(routeModel: RouteModel, mock: MockLocation) { @@ -91,43 +83,6 @@ fun testSingleUpdate( Thread.sleep(1_000) } -fun gpx(context: Context, mock: MockLocation) { - CoroutineScope(Dispatchers.IO).launch { - var lastLocation = location(0.0, 0.0) - val parser = GPXParser() - val resourceId: Int = context.resources - .getIdentifier("vh", "raw", context.packageName) - val input = context.resources.openRawResource(resourceId) - val parsedGpx: Gpx? = parser.parse(input) // consider using a background thread - parsedGpx?.let { - val tracks = parsedGpx.tracks - tracks.forEach { tr -> - val segments: MutableList? = tr.trackSegments - segments!!.forEach { seg -> - var lastTime = DateTime.now() - seg!!.trackPoints.forEach { p -> - val curLocation = location(p.longitude, p.latitude) - val ext = p.extensions - val speed: Double? - if (ext != null) { - speed = ext.speed - mock.curSpeed = speed.toFloat() - } - val duration = p.time.millis - lastTime.millis - val bearing = lastLocation.bearingTo(curLocation) - mock.setMockLocation(p.latitude, p.longitude, bearing) - if (duration > 0) { - delay(duration / 5) - } - lastTime = p.time - lastLocation = curLocation - } - } - } - } - } -} - enum class SimulationType { SIMULATE, TEST, GPX, TEST_SINGLE } diff --git a/app/src/main/java/com/kouros/navigation/ui/MainActivity.kt b/app/src/main/java/com/kouros/navigation/ui/MainActivity.kt index 77bf96a..8e91eae 100644 --- a/app/src/main/java/com/kouros/navigation/ui/MainActivity.kt +++ b/app/src/main/java/com/kouros/navigation/ui/MainActivity.kt @@ -50,7 +50,6 @@ import com.kouros.navigation.model.BaseStyleModel import com.kouros.navigation.model.MockLocation import com.kouros.navigation.model.RouteModel import com.kouros.navigation.model.SimulationType -import com.kouros.navigation.model.gpx import com.kouros.navigation.model.simulate import com.kouros.navigation.model.simulationJob import com.kouros.navigation.model.test @@ -112,11 +111,10 @@ class MainActivity : ComponentActivity() { when (type) { SimulationType.SIMULATE -> simulate(routeModel, mock) SimulationType.TEST -> test(applicationContext, routeModel) - SimulationType.GPX -> gpx( - context = applicationContext, mock - ) + SimulationType.TEST_SINGLE -> testSingle(applicationContext, routeModel, mock) + else -> {} } } } diff --git a/app/src/main/java/com/kouros/navigation/ui/MapView.kt b/app/src/main/java/com/kouros/navigation/ui/MapView.kt index 206960f..2f08337 100644 --- a/app/src/main/java/com/kouros/navigation/ui/MapView.kt +++ b/app/src/main/java/com/kouros/navigation/ui/MapView.kt @@ -13,10 +13,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.unit.dp import androidx.lifecycle.MutableLiveData import androidx.window.layout.WindowMetricsCalculator -import com.kouros.navigation.car.ViewStyle import com.kouros.navigation.car.map.MapLibre import com.kouros.navigation.car.map.NavigationImage import com.kouros.navigation.data.StepData +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.ui.app.AppViewModel import com.kouros.navigation.ui.app.appViewModel import com.kouros.navigation.ui.navigation.NavigationInfo diff --git a/app/src/main/java/com/kouros/navigation/ui/navigation/AppNavGraph.kt b/app/src/main/java/com/kouros/navigation/ui/navigation/AppNavGraph.kt index 1b137c4..fe5c397 100644 --- a/app/src/main/java/com/kouros/navigation/ui/navigation/AppNavGraph.kt +++ b/app/src/main/java/com/kouros/navigation/ui/navigation/AppNavGraph.kt @@ -48,5 +48,11 @@ fun AppNavGraph(mainActivity: MainActivity) { navController ) { navController.popBackStack() } } + composable("car_settings") { + SettingsRoute( + "car_settings", + navController + ) { navController.popBackStack() } + } } } diff --git a/app/src/main/java/com/kouros/navigation/ui/settings/CarScreen.kt b/app/src/main/java/com/kouros/navigation/ui/settings/CarScreen.kt new file mode 100644 index 0000000..cc9fd16 --- /dev/null +++ b/app/src/main/java/com/kouros/navigation/ui/settings/CarScreen.kt @@ -0,0 +1,90 @@ +package com.kouros.navigation.ui.settings + +import androidx.compose.foundation.layout.Column +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.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.OutlinedCard +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.kouros.data.R +import com.kouros.navigation.model.SettingsViewModel +import com.kouros.navigation.ui.components.RadioButtonSingleSelection +import com.kouros.navigation.ui.components.SectionTitle + + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun CarScreen(viewModel: SettingsViewModel, navigateBack: () -> Unit) { + + val engineType by viewModel.engineType.collectAsState() + + Scaffold( + topBar = { + TopAppBar( + title = { + Text( + stringResource(id = R.string.car_settings), + ) + }, + navigationIcon = { + IconButton(onClick = navigateBack) { + Icon( + painter = painterResource(R.drawable.arrow_back_24px), + contentDescription = stringResource(id = R.string.accept_action_title), + modifier = Modifier.size(48.dp, 48.dp), + ) + } + }, + ) + }, + ) + { paddingValues -> + val scrollState = rememberScrollState() + Column( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + .padding(top = 10.dp) + .verticalScroll(scrollState) + ) { + + + OutlinedCard(modifier = Modifier.fillMaxWidth()) { + Column( + modifier = Modifier.padding(10.dp), + ) { + SectionTitle(stringResource(R.string.engine_type)) + + val radioOptions = listOf( + stringResource(R.string.combustion), + stringResource(R.string.electric), + ) + RadioButtonSingleSelection( + modifier = Modifier.padding(), + selectedOption = engineType, + radioOptions = radioOptions, + onClick = viewModel::onEngineTypeChanged + ) + } + } + } + } +} + diff --git a/app/src/main/java/com/kouros/navigation/ui/settings/SettingsRoute.kt b/app/src/main/java/com/kouros/navigation/ui/settings/SettingsRoute.kt index dce7e9d..d88b22e 100644 --- a/app/src/main/java/com/kouros/navigation/ui/settings/SettingsRoute.kt +++ b/app/src/main/java/com/kouros/navigation/ui/settings/SettingsRoute.kt @@ -39,4 +39,7 @@ fun SettingsRoute(route: String, navController: NavHostController, function: () if (route == "settings_screen") { SettingsScreen(viewModel, navController, function) } + if (route == "car_settings") { + CarScreen (viewModel = viewModel, function) + } } diff --git a/app/src/main/java/com/kouros/navigation/ui/settings/SettingsScreen.kt b/app/src/main/java/com/kouros/navigation/ui/settings/SettingsScreen.kt index 2285bb7..db9d386 100644 --- a/app/src/main/java/com/kouros/navigation/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/kouros/navigation/ui/settings/SettingsScreen.kt @@ -51,7 +51,14 @@ fun SettingsScreen( name = "Navigation Settings", description = "", icon = R.drawable.navigation_24px + ), + Item( + id = "car_settings", + name = "Car Settings", + description = "", + icon = R.drawable.electric_car_24px ) + ) Scaffold( diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index 7010fed..1b2a683 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -3,7 +3,7 @@ android:height="108dp" android:viewportWidth="960" android:viewportHeight="960" - android:tint="#000000"> + android:tint="#1A7416"> - + + \ 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 index bbd3e02..ef49c99 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,6 @@ - + + \ 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 index da24c35fec0b2cd51f61561bf7c44b4956109715..e0d523c38c3b985b48a64bcaca0d6ece3110362d 100644 GIT binary patch literal 2192 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 940caf57b8fa2e2c381731b615ff19f4ba84fec8..6662a13b885b61afd37497d536ad00f7a31894c0 100644 GIT binary patch literal 2178 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 U;t4?F3FDrB`}X4*@CSqe0IIhBGynhq diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp index c52ae699fcb54f19665dd80cbe54c92410c94f4d..5b55a3a83f586b1bb67e96f4b5d839bba675637f 100644 GIT binary patch literal 2828 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 IQr1w40td`hvj6}9 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index 56b8e2b2a3f1b5d9c2bd326c9e1e8c3303e56ce8..c9189876af5395c50eaddd14d1206bdfa7203050 100644 GIT binary patch literal 4788 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 MnVDM6%g#ms0L=neF8}}l diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp index 284db5a46566966f4be924538d219c63aaa40920..97c50707582088bef0efed2720098e4a6326fca7 100644 GIT binary patch literal 4258 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 E^5uygT>t<8 literal 5712 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 literal 8638 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 Qk%+XU%Mn)r5(&R^Y5$|=S^xk5 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index 9b5e24cba67d5f24e7e9443d49fddfa29ca82da1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7460 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 56a171bf30c14d5fccae2ea729d8bca28d5f20a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11906 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 Ij?Ci%0AOAaCjbBd 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..1edb315 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #98DABB + \ No newline at end of file diff --git a/automotive/src/main/res/drawable/ic_launcher_background.xml b/automotive/src/main/res/drawable/ic_launcher_background.xml index 07d5da9..ca3826a 100644 --- a/automotive/src/main/res/drawable/ic_launcher_background.xml +++ b/automotive/src/main/res/drawable/ic_launcher_background.xml @@ -1,170 +1,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:android="http://schemas.android.com/apk/res/android"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/automotive/src/main/res/drawable/ic_launcher_foreground.xml b/automotive/src/main/res/drawable/ic_launcher_foreground.xml index 7010fed..1b2a683 100644 --- a/automotive/src/main/res/drawable/ic_launcher_foreground.xml +++ b/automotive/src/main/res/drawable/ic_launcher_foreground.xml @@ -3,7 +3,7 @@ android:height="108dp" android:viewportWidth="960" android:viewportHeight="960" - android:tint="#000000"> + android:tint="#1A7416"> - + + \ No newline at end of file diff --git a/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index bbd3e02..ef49c99 100644 --- a/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/automotive/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,6 @@ - + + \ No newline at end of file diff --git a/automotive/src/main/res/mipmap-hdpi/ic_launcher.webp b/automotive/src/main/res/mipmap-hdpi/ic_launcher.webp index da24c35fec0b2cd51f61561bf7c44b4956109715..e0d523c38c3b985b48a64bcaca0d6ece3110362d 100644 GIT binary patch literal 2192 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 diff --git a/automotive/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/automotive/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 940caf57b8fa2e2c381731b615ff19f4ba84fec8..6662a13b885b61afd37497d536ad00f7a31894c0 100644 GIT binary patch literal 2178 zcmV-|2z~cbNk&F`2mk-`nH!HIi<#sw|Gsk_^oTu}fBxUp^9 z$&}jNY}>Xrn;&4ivu$&a=Gt!W@*KF0q)4u1hPmE*18Ge^KxjYBhj+Yz$Q;s0jyXr7 zRHonASy|CwZvA?EIG-7lSI+mNXCc{ z8kGIj&Qm(M+nu|3BC~F!9FlrW$-L-bHhL%lV8O{Y3r+?ZkpXutiuOk1xe^&99pn)8 znv%|S)B1^nU|4brw>U@q=U|4LxMD9@we#l5V?;T+^j%uKEW&gHR)WUo<5U2Eg`n68 zmXm65)1m;=6lyx|+u_f3hv)%}4_L@>#K-k&s4R+m&fedb!< zxhBdMkG-{r9*|A&(4xe8*sHBmJ^4m?d&))eI0vjb&7YbQi>Lc2D9o&wlwCVm3mU-r zQ}y!xv;YWYb`nu?@%OlB9_PT2cxUO}bBflinBXk-f&p;utay!@x9>%gG#RMN6fYgY zIpB?oRyCyPl-4!mg9?CKG9u`%B}rScg2Ziz$V^>F(J9h&1K@zaX=*>k6oxi6!o1}6 z?IeIS0Jmg>&|@#q>{8W@%$gewJH-Tep`u-jDGXbbISjq91+();6=1UBl$f%6CIG@H zUA(N*lFxPI3@*b?vRX|Mg{94O!AYJgCOK`Uh{8(iDRL9!B0I@xwiS!WAR5o_wsA4u zXtd;%k+9~JIA>u$s~X+`RQEQ8nJ=<2(u$EP1iPuql{85`GEl2En|v4td`Z)F*Fhz?FOIG$3N>cur^&{M&gHB8s@{GB z4sTK^%r=#!$p=+^<_gp0DrJNIw)mU-5~3P69?HudhM&L@WLlU~YG5BtY01^c6hbX3 z;ePTt^vQD#QPtZ|m8I?E6F7oQ8%yuG@)Z~<90iBPL2@2s$x(*EkEObIfSCmEVEIy|bX~Si z`QIUkp}aN@t5mGx5_fB9UcuW2{T=qqMS}I%dR9VdE2i zzw_7-XgXiP;ft!{#5(uH5HWknagZ!AJHhDKPBb2mA8KI1$e_{7_P$v^dg(%m>pVgt z0gw{a13A*y{nMycX)!b6Dwc%p1S(eE@1^9icWk`ZmrC<(ZA zz49jmQ94cf`?s)MvYPZGk-el^^L(U#!wVI){K5em&2NEDJy9zx4SGW_y5R(G$;L=4 zMhLHq<_Z7&m52(BK>);*y?(vQRDd7bORVomh5#rHyBM8wM3HePz?xICj@7ow?|!7o26i$!q9E{MbU^@= zW%Or%r*;zn<)PP#(=Mbin#KSqjJCQ%me6S0heSC;A%HO^qcbT2uV-fkK*er}>pX(k z8MvDODDl60vopYt{$yvWC-euO?W`Ie2sIt|J#f<52kX^Snc03}^vCzk&8{c4_C)EE z0HOxW@aA=Vsl|O^s~fBsDbrLSgAuvFl=+s8Ziw817t_6YojBl%{^u<3xqAlC;peCvqc*VfSSVL%ew%=Quog#LjWWdJ~?=T z|7btiufN`t|NQTB?eRwsezNei3`07lGSa}NV}6Qj zTVKjJscqYhZ5y>E*tV@E(wlmXr4@;N$xm>12*KT{c)D>1xwZfhbYt7Llc{#Q*|u$M zHb202XWI(9C+~E&jn`fWk|aq<6*r6lIQIGmW}#)uAhgWCQ20RA^~jl+IcFMgrq`Jz zEhGI3>s6YLkbKh6lu$zH|G#pJSA|M1c=;vCEy!0}dP`dss2YGxX0Sl*9##>O*@*Jom{4@4Cfnk{$Q{3QlXY%U?FcV{gQ^MVHj}#hQyxiIT```rNF9%g_;x;?vke3?< zuMT%(Y$ikIzBp)Q;+s{_-p?B+06_o;J9~TZSh(<&I*MX7#e3M=^k`qnqdRsv7{F-U z-uGLg+jX!H9$IPfG!tWmI@A07M|WUSfP*92EsZU<6>NzsN#SW|f|BI{f*K01Bu!AL zIp*1j4%@+iVuIh;UI#sy0~SqJGuDPiJL@fX#yQ~N`z^A^Rd6V8Fr3k_5DgpAVU$k5 zR1nnRvbig4yH%mVyr^!+YXIk7^JlFXn&${WD0O)BF6YO4~_GIIkzbGeJY8cA|1owM-#3+?QiHd;gj%KPmo|%V& z`b-F)4=~yN`A9!qYa#$)OwwU8>z~FiaQS@46*zyryHBOjt$^{6zi?N)=tjuUQ17e+ zg}Z#d=|;eoGFh@7rW(hYEp^&#MuYvIw-l>g6$ML6ReFLE>+~q07cl8(bwJuVoepPo zgsh^V9+#DtMTm7NSGtzPXf};)_S-w?FDHpBne{A-P4k;N;y`%6XCO>Air_Xn9wydl zIY=>_2@u-@{KfZ%#${R_Cf9`{^hso@9#`2Km8!!RwlO?69 z!&KT%^NJcrpHG0p&zF3PD%y_vTY=Fcz=TZGmD_uW-Q6FbRK_wJUxl|G+T$8jsG?Gg zCP-p306;>Mp(s;CWiXK{tjht8=oa&9f$n@gn`u1OlUSMaoq~fKS?LQY`mFRp7F|IN1rboPTn8d>PpdY2^#a%vOfWdH6Kis zs0g63UOOF0PTrruPt2gHpLl8}_EZL4b3uyVoTMGzQ(1}!AT7w^)Y_ao{07NiWM4C!Sy4(qX!&~M=Ll@~q z3M~gS3hIRl9ZDIE#=MFeTYn!?&d;l;G8&CKgwl%@M!_HT;s~SH>=`&3-Ri$cs%fV( z)}?^vH@4Dy1&&Z2mrC0yUKte5WrI0qEM5^r+fkneM}1p^*IB0Z62>}hVC6L)&pv=7 zhRHysqlTzT=Gmo4V-%HGMgusix?Fy2o-EWbmcKn(DH6kMpi#6cq~`qzP^|G_s%TXZ zjo3y5II6r{e$1+<)-%>>U%sf}^}%a!JWZo74&tVCMZ@*e&0RDe14rGvqcSqW*q&yx02+iM} zUizJ)(E2d(%^EB)!QBR}4;964e6P9j@|vfFKFl>cVWW$?a50dyxqk1knP_O0Ovb@ zeW>bmA%AN^ftI+cPv_YAVrVwHJEY-Z67rKp=fi{)TI~S=NEUu}@}Dh@SC;usA1MmL z27J$zqVNR!Z;A^V+X3JwbyVlY+z5MzUjhge-|Md>LA;0O!ufqr6d&1> zENX4dpR$+(L1TVl!#l%vF$YqucKs+=Kv882z=^>EzRU(q-?9jefI0I=!SWg*b7L00 zCb-{s;;tR2>V6a)ds&QTQ_sOP5HRt-gk3G>3;~E~X`ryy`RkpcV23UwDpger4&)>- ze#<*jFff%z&%J?ZynG`C2_C<7Fr25VYF8q~|4@`lIpoDnAIj1kBLKOn)Qy&{O~5!k zp@cLC=t%pv7lfD*FxmZiYjUproB$NCA~T_IX{=f`HP;-O@Ot$dqX84FXecX2v6_I< z5ch8TyMeXdIIC94dL(1gi2$VJBuhJdB@Pr0Ty~#fEb}zL6(6aC^vcGbmt{)MS2F|Q z1RyWHx_;JE@k)~ODOb7%!ewH%Yv=+kQzA)w4O1l64UAF;?f`J^p>&gMrhQ?y3a`_~ zk=qGCX^QR9MbE`6j0P+l&hP7Bv|um+vyYa8=m^=rlCttY?sIqkk%9bkGx`Mr zP+=uAy0R4kD9Joo+mqmK{mcIMn<5$67P9u7I}7P`#eMh|?|v(!*K@P=LXuHUIW6A9 z=2r$qb?&UM53t=?yb`uh6>AeI1R z6M*U@ciSPUXPO(DT)cfD?kLdMTCd@=irW!@n#$+D zpH>24miy;&I{`?leBKIfi;qr`>_)$MMx+1Q$85C1d6n0=UA~%G(%0o8(q7c|x1Ub{ U;t4?F3FDrB`}X4*@CSqe0IIhBGynhq diff --git a/automotive/src/main/res/mipmap-xhdpi/ic_launcher.webp b/automotive/src/main/res/mipmap-xhdpi/ic_launcher.webp index c52ae699fcb54f19665dd80cbe54c92410c94f4d..5b55a3a83f586b1bb67e96f4b5d839bba675637f 100644 GIT binary patch literal 2828 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 IQr1w40td`hvj6}9 diff --git a/automotive/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/automotive/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index 56b8e2b2a3f1b5d9c2bd326c9e1e8c3303e56ce8..c9189876af5395c50eaddd14d1206bdfa7203050 100644 GIT binary patch literal 4788 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 MnVDM6%g#ms0L=neF8}}l diff --git a/automotive/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/automotive/src/main/res/mipmap-xxhdpi/ic_launcher.webp index 284db5a46566966f4be924538d219c63aaa40920..97c50707582088bef0efed2720098e4a6326fca7 100644 GIT binary patch literal 4258 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 E^5uygT>t<8 literal 5712 zcmV-W7O&}2Nk&FU761TOMM6+kP&iCH761S*kH8}kRr%fa|NLzC|DM~nZQHiZ*mjn- zZQHhObJi@c?ZsKI^?J>$S!?r;*hgl~>;8D&AJ5rcFh!i!?##-z)7f^XiIb^fv$d^O zm2I=NvAQ^URIzQ_$tx%`$5i{6mE*9{*=qS0*iNg`HcETSomQ3e7r1kJOl($8ZQJVH zIoXKO+o+6H?o_Lb?M!S{>v+VrZQJT{>~^gkt#(h)S(RL*YAN>*bd>w&zs_?1l3jW}kMTnDnPNp&_ha-(6s9ydwgTgq#k`*`gL@rqU{aP?YBrp zzw{?0qu|G76zraig1vS5@82&O1#4s!tff1e2-i|n(ybX0qSYw2vyy6^Vlkv1E#BFTbfwuXI$@_On2>(Is9Y5_+*U;u^ITEQ_{vx0H4Npr!WCKq zWPyZe%XFH23898_gj1laAoZTIWZe~s`KxL@5UKt|Th-=z;#nApePt}3g`uY`p)H+E z)?Jo*cS!+VMO!5F(rglqf>c`zLtNo1pu$(aat#*w{g7rIXC|7pY{?P6 zZ_9ExfUp$X6^&xg#&i%tDa& z7ruUc2mr*#m(PzN9Z&m$)J{8gv{~LW7DoH*r)#Dqd#n zL4JT2{mdQ39(gtMVkSrAXwDdfLiwUp+jGJ=+4Jw|f#K6?Z>hBB6oN`_kHwe4?Mc+v zRf$jf>w7`n3jiICOURR7IV8t&j3U{qOmQrY1)RHKv@(v)jmt4#g2ZJMtV%_Zf>q{e z^D0oQA_1VwIgPmgm8&B;WK%Nj4MnrJ=HvGdqZuE+zoOpX$hg180f&O)f{K+3o}fsX z{y+fe&f_oHg;_RFz0Dh}LBrmEMTuFP1Ykyb;f&kEyt;Sk> zMDZM#kW%W*^W*J}Ng3bY-%@ntIVy<}&9+#n#Qo*<=SHYP0O-ru;w=-eI4&=W%#sg3 zKTO&zF^bGWaa@jQR{Lukdz+lU){BvWEwx;xO)BwClJRMvUT(4I~)p ztNLtLRpxv8XJoW%kC=b@U~bRSaioZ4rN6dG3Z<0ASRn)MME--cI;!+sV>2 z&Sotu?4unsMix;1CYIHSEOj=!RWz;>adgEbE3GBgm9c>GcVd2#VIA$LAsi_joM2g- zv8AqFZY-uc7 zQk@2!K%j|murhELmMge?<4U4%ZSt}iLTmm0*Oms=>U-H_NLyne z)YMj6j?;Ij#AsgBS@MGrb2ne; zxR)H0<3?$+r!vdRaB~ygr`75>Azd6Xk`OOXawP+^<4O_#G$C??mwU)ZZoW~qI+m30 za`$i!w-|x^!pbDiIie#7|-WzOk1E(va2pa3Dg*Kcau82It-G8{rrHw6vTV()iw68OS2))Z95Z%1&xH)?|pn&k;>(f$%AUzCHV% z6m~m!!Zn)IoZTu0$0@8yG{AyU2@Zc>bcs2_<*sv+zzdcLzcrfV%<4FfLC;u%^L;zP z;qUt^{Kh3F-&H`LeGbJP1NH439LdC==O^a(%hSh^_}wqh!0gwAww>&nu=edX$4bms z!5B+8P=&?SYZ)P*A22YnEsq&eHZH>Yt{EJwjUCY8ZA)0ZQo{PLa=IoS(e4`jYLG@t z#vsvhP?{=aj8&MO+Jt6&OAAnhdutP?YJ>v>_1lo+0Dn}mtxW6$i|?d{qfPM3LnbB% zO>JB_{Bp1*j&^>(USD*1Y^7-2Av+=D^CNf%_0Ke9;I1y$Y!aJMd_bjAW!4+25ZtiI zJ?vA#DLWh}y){ckNI63h*OnBO%4)Qa=}v9p11gn=daDR&+Up55@(lUF&7KNBqf)uj zS}D_!X5ZwMm5JUaoD5nE%U!alMw2hvzMRLavlCPj&He`X>#WMcNSz63nwH!|>QP2d znL?EzXk?QLF{5O$mX~_&tBlW0ybO2oYt>ut)c3Ce(o6y-+m}RBE zxrxR?&T^ekUtf^U+LRkOM=xY%a9Ak6cw}Vupcgn-m+At3c>!O~b5s~;Jv~TI;JuBN zvBTmSLMzzG8sfby;pH*#F0RFqK~hp=gCOvSD@dT(D|^-y3UZU`{Car-JT_OEjsgc3 zPoUWwNMMgwg*S;Pxg~?#Y%>&8YpR1msrpP81&6ju1{jpoTeIjGWSGZ$5YJUoppGI9 z1+7mFLntT|m4KsqA8}5@Lq!2XB!I#lB-WJ)V+xWB`OM&zYtm$hf@Q_AGy*w#z9KnP zq}G;IAz%?%=`0-2wJj~Q+cO3y)VmAU_B0Bz)>@#oMun-iF$_-8(I3Ty;@W<(WQ4F@PF zyiqVgz-Ch(j8Kq3VirhL=>;cD5}rXT7&%8bz%#rJB%bsf1;IXE14$qLqC}URt2PasA4 zD%`twf1I+s748YC_nW{HcDhR}M6s~dQvxLF}gig zys;rj+zX>ZtJ-`Iq-R(i8V7>s!kYwGRh{dB#JV~yw0IVVAS1;})K|eUNhnZ-Rn6%x zNOXxs>7AP`c|!^9^uT^4h2Bl9E7PL+^bC<&>lI~*nHy{rpVl)UHpucBE_WRywNJEc zJ+t1+SFC6?lE2SS`G^&IX1#ZINEZ!IYBp5Iu&K##1Bz1yDYlg{NG%7WLQB?NLhE(& z??F6Vp#}bM@jgBBy7}}px=T(C9g*Fu3l?Q}!+M7nuGt+S9uxwZuFsUZD-VBId5NiY z73k`xz+@gswKZ|g$%eJN-4!WTfZG*`lR=@kyNYbj@$=&o2IMJ-?JhUAl<;oP7(U_L zoei1Jc9$QYU%7fKwG-@u%UZ@(A&*BaaMyq8E|w{{U!0w*fC5K+6mZ<&PhwTh zXyuqKR zmE)2nuo5EPSz%B-{+UB5tu!XWgAJvBfoe~6P)s(rdtFDTVLW( z+So$|xqKUG9=FX>XM=|*YB<)i6Uh04c)VhaSp<~7>t50IJkGgjN-2iN>8fW79f4(U z3J}U5JE`$V6N6a%Kd0%E@DPqg8m(Ez97xtdUjVN!UW2>-lVWGyl{lw>^FE~1nHT)k ziC6z$U$O}Kz~kC!JJKvbk#4PAlJ0T;Ggb)C;;R(=u-u&)>DxR8oa2Bo$iV8!)tRA! z6oeu0z(<8^r#&xX;0#R2=SS+bEW&mm2JSei2agPN+nvy!H?k$aUSHtWmp=y;bmxt@ zdmsIIHL12|5$4sj<9(8|&!PO0Ft6t6Qp`KLLWS@rh<;<{eG)U8=n@$y`ozp`rI?px zvyL@Y!j{Zm?=Gpkx1Ml)O}C|)x0b#wg|L-icKJO>$OCDDy}J!cHLuTl$Vb{B{&uCt z5-}dVM+RpR*1|q6l~T)M;#?dtV{kkV*iaHX8L(&4R$~`SDUXwGUg*cSK^)Mo;b>DE zCD6tik2F{?f)0F~ONV#6hl~`Dc?Esc0!4y33gtw7ADbFm{IU0aBQnB zgJPr{p&HSF_7IAV<}ZXA?-~uEhApYCT5~-j<`vHe?j=W2+{g{Jn^%mTckK#Sxi))o zCDpSrxYcYnSkeg znC#^#S?F#1x{YTuk>g^u?h8$v>lK{eGN`)?COYf#_2Z)(I_JgAa9?xU*9?t}cHNEr zu8WCIP{v>@oB+ zM-TvdLcThW5&$MAONOUx7CnxF1bSHPO2?OQSPHb z!=u!og2^~B&)z4$`iBVmrj`v3IRBU_04%gI);gD`CH>VVp>xtG zx$jJrQ@YXNMq!u9;1-GK9tnGLoy)z`-?zFGhn z7eMhjPXJi#|Lbdga^c`kw$9A6y!GzS!jP@w)s`LGdV`)+`uFop!^s*w`Ue^UpCSH|Dzqb2At3&n5 zg7j;ygkHsIlhs60?c()zsaf25zpfM`)!IeMjlcQmouAn{)6bF#hj;ydeQg-Va4z&} zx67Ej-U)d*fW598^l2srkV;H|7T?LCCw~ zT%8{z^@wwGesB`V9zT9JsmEuPd&HcW?VE;A04q08fyK9;*;`Y66!RfiK2rdg;LAJA z^6&Yz$dBjO5&>Yz2Fe5Zx#Yz0KEdhfEhPf02p&20bu-^`=h6`<~3hvBn=h-hAwz{Zm;-@ z`4G}mU6`4fnVFfH z8TT!UmKjc3W(F~H#4N3}AT1tzl^eZ%@Av!tfA1;K{lhAK)jy!QE*wJ@s<<;9jG@vg zs4mP~hIxZK=dHrnT2VI!VuHO}V7iLi0v8|b%>(rUuW<3*Tj;RjH9m5CMurAo~&Rfs5Ng>;| zt+uVsuiuY}03p=7#6iWeEZcI5EvM(U^xhLYd5~^vo0?Ydt)E*Vli(H{N^!Ru1)?(( zh2V7#KPb?)cI=H-V`pNkc2tdR+qP}nwrv}=Z5vbDY5xx!q9j>Womnm5a5y>UfrvLh zK%M?u!vWe2_v>F$@^Cz!%%w#6PVOW0a!?Y(vOVu~9ewF_yz&b_>2u!V<^Si`4bR$@72O(H zl9w2w_(h?}-VQ=@tZ$~Q+g`(DscbN0ZB-0u6#S)7#U}+z zv#n;d;OaEkSQT14MUfB;EfmRVq2Mm$G$D+VBSIvWBSOq3u{bK~F786Cs1X~rwyXA8 zBYN^J7yEsC-WEks!enmu7X~YK*ie$a5h%??wc{6M{2?Plra~nOR1EJTO3ard0z~n} zQFoz0NI1c>{=vBgN@LL)hL-eDAve2+UCywfSr<~U`vRpg( zicgakKk6>>vT$rDWFBtY`@Q>aWnteyZmk6?zJEx;KMR!R&I-YpnOXEdnPM87#CP#O zre?_-U*Q_xh8rtkaY74zLF@*6pdL?3WNk|dcyQg)3qIiB0n-L zbFTU#LW&wnvVB7({nJls+?@tZJwbjW6!2*dh|kbMK}R>I!7tZLKQyxaC`uU3H85*I z1+8DBPo^m5cBoJ(&ZIe}yHIA~_^W?!jeki|Lawn!2P=M8i(K1Q%Ini$aSTF2nxkT9 zBczYAlL(;#^hifl4-P!`AW?vP4Rp^`r4 zo2%^Yn(r6WTp+Q6CIt3Y)i3OWqIz(8=B0vb))0bpc=c#bkEdnQT%xbj7PduGQDknGxH?TWk{AAHVycBSOxgkslP-{{n(+%)x263bZt*;5 z5@HY`FcNt`8K~@M2|zoJg%DB!{W2{G`A_xYS2}t!W@w>^Mub5Gd0A8^d;3AvXs&kh z%2#Rv6%(vD1O*}GD|NNgH!F0oYC7d(5uK6eWo@2{>!fe|3+v~K$67iiOKxCRd%X%b*iOEh`sDtD(z&&WdjT~?%0!rg5OP;6d( zv^sF0Dx?CG)guV$>Jna;ycSB(C@2s@*T|?8&G<;20GoVJS2>&+L!OF|QfH7*VuBWE zuC7zty|EuXr~t{j2co%QpK=?a1dRZL5QRiu<#0-XSyjTR#doC<^oK4^gO6exYYd!5 z%$-6i5Y4(EG*|6Yo(c&XfiWtE6aHurVAsD^3MX_$7LB0Cc5xmxFWBmeL#qSUY8K@` z-~}PbW*7ImQ0fX)?XfjoFiL?-8V?P>Y zgrUf(pREWurUu!Hk&q!=gxrRZaC4iQReZu}o*@(4gd9ytf|34EE*McJVuFUE$Ry5A zLvyJSa8N$E=JTe4Uxy--5~aeChPCx80Z5{vG1(*`$eyg1ym~SkN&yyAIv5ggSPxY| zkAYu_3L!y_^i}nKDC>Up2UZu!_yjNYZ06#qH(siWcY;quys&Tb?lyt zC3qI)Q_%V#X>KwxWO76Zp*JOCA=|is3*?!PC?k>6u;!b+#!hD{3x`us!G;(2 zdbSNcU(`?P1mvlozN?!qVMs04R1`svZF_lLbsBpN0Z68zNzZtaAjKZ79xcp7Ly#u| z3$vsJngrwtQjEP-V{6w0Dh@+(ah7J;T4{)ssT7n?pH&;V&q;)&Bly*Jf8Sj7-h5d7 z9(|-nfPqHYNh`FcF1R%s}(n81@^9~~nN_Hbb& z@@iIWi`7=pNs>&WUlfe&gHnDU%(jw62(S={RC}7KKRkOpIX=$C!%RiOfhw*0r6`NU z7+*B|`Q&P(p(pUc?4q2QrU|)BFr-8!kRgv*y)q)t);CeUd9{CL+pusr14FXKsC(WW~$Cagv(*(J+Yx4*Psx|iCG0DiKcj+AJpKJ0GDW<_( z)0QzY4{alZmA~9LCY}x!;OlEv2DjPv1k@r~6r|Yi?oQKbQ4&JdS??&oM1^pwGb?h0 zC?AaB%CkYXHZ_>#IQearN6x^QWW=&*ZTIV@#S$R>*Dt_@fsw_YsJ@YfEzxI(bZhDf zl}n9t=N~G$8MG*Yiof^5a+HKLkTaVZ7d4X?%2dLR5(}#lKf{HeG|ULTJ_ZrOBGE{> zvHvAfkYq{q#;yvI=4K5&P7Hozs1#0NTfw-yZE}=g=W<=$rZdNt>uBJI3$Yqcs4?VQ zb^2XLNl_k8Mz|%2d@K9*eJc_%q=6JN3;fZ93va2~JSbO1BKizm#F>f$@D(Z&5*AD6 zifs9hh^#xL!ta<80+7-|(MeWjSrqvBu1Yi~z(py40DMWs{XT5TR*e?Yfk@4*vWg>n z1_8*BM8o?V4fp}RnL?QmVDB*mxR~Uh!5A8{IBe0b?8PP7^lf zF(TNxNIX$w>c5eFGmtg`NDEMW)ZU_iJj^7xXeL#fJc))%ohM-n+!84>vj~j7$f?k} z6A3`3BpQ6nEY~`ng3#QiLM43Qch}475a6O(v_K=MYB+-}WiPj58^FO6R3BJ7wECb) zbiUxx^@r{`wc=-rghVumS-f)vE&`FdCKN_Kdu+e)vjCHwxRiWjJKtXwquL`4*h2tP zeM;-4$kQSu1ftFpB5+YFc{K|Pn;Zuh!N_RnN#Lek(B{=`-%kN`L?168nE<5wm29xB zSpmkut`p$m`e`INIFGO;?PNa!FLo@Qs#2{xI%$MxP>p9r&^Q@XvdUm+?J;4DxpL~K+my$78j-cAsSI7g8^Lp z?0JAVElOe~jVNDhf%ZH&IL5l0r2;&&Yc|dqjnjAFduGl$G2w>>6EhDLV>7PBWq{4^0qW9zyr^_X|W#BG5G>YI7Rr`v%9AZtu^jslR9&{DDS28ImWz_k1hR!lL!=SJRI{{BAu&eWPn*9rpTbE&+-%^_Jus|@v z@*`)_0la;dWZwfT=bL>>f4*j~^{PsltG5KGFZ5JyY08G+Z3I`sCVxnmODhP|`L0*`PAXRV zp3^u!?wiQQ?ek2QK~vLoy;oh219Hz;ZhUe1^%%0`XHovrgeCV8fvB^X@|7B#%D<2O zd8+*~jUA(9(EJshurvKy$+FgxULStSms$eAm^_2|ws-Sf*^Rxiz-yvO%g~VhD~?7w z5DgYrp*Gr1{_k~P-pO^dRCZL44&8lnZTrf^m|Ys>8(qoMwPCt~ zbH_>izxD-jYNyvuK2qC&J5WS>8iUNNk_g;^$_?qJ<2?UvWM>54u|NLQ_@S|4$(UJy zx}JaoH9f9jwt{;eEM$G6MS*6F`A_7ps z8-W!9kaQ4$3<6N-SMsqrU~0rqNE3+6+u`B;0~AA=8u2smx@+wvC*D*7Q1S{QRwPI9 zhh`9ff~K|g%eihGh>O!e{+5}JhxDq^9QkKz@H$7&%yZlF2aYu*JI8u~ECR4k{Y~dB zTe}A9I`B0utTGyt?(sFrVrf-?*MX+)1H0|rml?4VHjeiUnFJue>d3jTaxejIe8;RL zX_T$aj*AiJ#JWx{mM#=p?4O?x2m+Ajv9&!H@*J_nw-{fH(doEyWrBZHqKDwL`M z$ER!WAHb;|Yw7FK+&}KuDBrX_7w|ZbpCw0gsng^s_;|$Txr*ev> zIoaQrqt|s3e`p3fOD6!?hxznd*97&Y+B^;1d`WVQsz3;QblDBY=TI%4RAj_g9{lUA zOZZ^}QrVygK=S?rvI#(0lada!wyMC64%P#57>Fzyqt;FiC#w!T(%h+W>DA&aZmPj{E0PN`8gUow8RThJn_g@4FdUOW%Oi-?|w;ucD=YjK?QUajc5P&=aP}Qum zh8u|-$jmnhI%R?p8nYgX#AJRE;8{;s$lN=BA_1tqkZu5|m?OU1=MsSOievwo_ZQ>Y zN8P}u;zo<7Yyi(bs?05&GV1s5CfT$ar{dz~p-6BNC5l9iGD9>-lL%aU0}_Ku8V-ke)#R>Km7Q`pDoyPh_F)!(Yi` z(}*Y#(MGj++SI5SJ@%}~`|#jW-^_9Cym;lF%>M>dbAMW{(pHZ021lU0UN(&quk8PGI zd#@YZ)D;=XZxm6Oz5OU``w}}-rV^yIo)7h1Cb)h6r8a5eB>!E`UKFzjh=?}`py+k$ zR($Nvz(xAUqJ6$M;liSB%68)4^q7yUbzBpGE*W zY@R0qBT2c@J-cjs_m&T*6p0vt^DiXw{uL?xu2AypQMc73+kj=(B;WXR_-<5Zq~+iO z3yVB(W)r*01+|0YGkZRSR}`f%+u-IQ-|TW0b+}Leo4gCU=HDRiNk>D$(8z)#tP7Jg8Vr~I(dux8RhzJHYwfcBL}?ys(X+j786y>sZtm;fI^ z>11P7HO&ViMk^#BUUi$l-(uu;0{m3@wIM#02O5`E?^YLA=okMv2*|$PtuQW6Z zmIFN|>cb86nFxAH4Xh&PnY;R6-+m9;&i;ISR|3W$51G$Gw|Z))mrE;DdZcA!h~W$2 z#@R*$r-}HYvw&WT_)vdb*|1UJmhjk1YQxX9v+TRsAwlP`kpD$Nz^V^7KRUhM=91ecvD(O)7B%SVuOk8IX}9fv=Oz~v zX*fi9VEVkL<0R{Jbs7*J&y;yb%iy<_&U;a8Hj<`w4G5^b4+7B3WotLoCh8fU zhHIh**&64VbAt#M@zUnWK;d~XiU2g;#{ht;b+OpU79w88;9tLWTO|NZUQ=(fOEQA; z&v@_jw|;2i4F1yadGAES$#hI6EO&M@2teyr&oF~0Vl7GgjJ5w?zwHS?*8~5&@9Wk1 z3#`J9bD|M6W949KQv6I>IhvW4M$kD~h8@;B!Qun^ydUr!A2}AliL_5b+9luaVL$yI z>NRneSVkS0NN+>FWA3;Hk%!9`JukwkGS3aU7=H2LYNbtBPE;wlw5L~ zMS4u#`3}jL6m2(q+VL^Y%DLm`pzSG29pVw|?d_sJY;(yg3r~?yxFkv;06B}=d7A_K zy6^9_mE60T`3|7MkJ!db*1jl>aTN~egI8{=E3)#wPK@E8d06|v51aN zPQ&}uPT%ArZJNxQyT12vvFl!OPn}Wom2T9v-q7uXpZftcxB1r8btQ(Kn2(%!-)=vE zM)kwvi(U;4b*%zY|1Yh~A`FFW&5u2L&GZ$^|Cz?cO}ap)YNl^Sf9y5?GpRS;m;Svj zBNi$jonPA&0q8dG9M%)}(R*e60~&@{-+B;$-Y0o>xx%gUR@kIt%0!H0IQDP5C{a=0 zE|-hrUzN|!CK2|&#dYjh_7J-Zh;I6UXk@|`9@ zlY%D1GHyU7PlVVcXmFg`I~9+QFLht(eLX?j1hf;=gq%bG3Kl-d`qnwm`qpbxM|1am zvgK|t%Cp}1UMa^bV(ERlZK{S`9>yHm^X;@vjk=J9uO=y*d@reW>iy@uZk})SyoFfC z>G@&jiT%H|oKfWom(J%T{NeXwlTFyooK>gx=lWReEv))=bMBvI9m>I@Rrt09pn8z? zt;;~)|9frf0DtZW>i5Ctu48MvZ8D-vC7EK5d1R^(k!?EW(z5Lu`};2s;OBnure1cC z)nC{5ZQDB$d~zm4QbsD%*!`$)zE3gi_rDcstvzN*-+o@2BVlAOt>WOL>D-mJ#S25XN|6vU88$;Nne2az?J|3O_BEROr!S85`F48jXFSuEe=%o1P%CFc zhOZ{|7YAP7x{ca5HqQ_CXPlg$Fx%Zu@NDQV^JGZJD#%MDGO4&1={~VkcFwwHj(IxZ zHKe;1dzz=0C-eN^fY`pHw)@4@)r13La)mLQ*P8$o5`c==-Ew^2?)?B-kLl*?+=54^ zcdfVm>9&p5W+!JftQ=)3Nta1wsII-_G$E2nW$B-_3j2J&Rb_+ zEfr3BOxzkZo{-MaLS#~@R3;XSf0Ze*SS(wPR4QA3`kN2w)|e(;j>RjFsk`n&FYef` zzAo+u&^LBd_wq86{bFjX+HTouTvpj_@6{~oeLD=izIBi97tp(V>>LNP!cixA{&kbu z{_(vb=i8ySowLYwWNs@y&^XBjy`WCpD$q7%vu*Sh)%Ap(sIr*d?BtDJaig$5t`!>2~e{hyY*yRnWlZ?;qCEOj1RD_vW* z-n}t4xi!WXw?^OM(HNWD8@k?g!dE&^>?Mv{{%ot=V65@-@aKawPA<<({e=4k*msWD z?wh)o_@3K|TyENY5)#>J+*u(2$tkVe=aaVFCm;X~{QYde&|83aLi%6{2hN-FMlWAaksbL^`G_w==bDvg!%UU`S?q`<)u6U)6#plDKV@y zuC0W*GYxHX79P2j{s5iYU1I$HexvD`?qyRf-EI6Ow)^&_L@qq1Ez=U_ z&syVtL&CZ;##&kGo}b_sm(pQ7-+s&O+V$+&uH7wv`*u1k;Q5>v97zTm#r%~c{1g(-$9mINdcPWw_pdGvn( literal 8638 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 Qk%+XU%Mn)r5(&R^Y5$|=S^xk5 diff --git a/automotive/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/automotive/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index 9b5e24cba67d5f24e7e9443d49fddfa29ca82da1..3464553e3fc7e4289285988ec89f719d6cedaeb1 100644 GIT binary patch literal 5422 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 YM9c*eanAR;0y*bI%;l0Rkge|`0CwR=v;Y7A literal 7460 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 diff --git a/automotive/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/automotive/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index 56a171bf30c14d5fccae2ea729d8bca28d5f20a3..dafc41734f39e98fa567c31178726c6addfaed7d 100644 GIT binary patch literal 10894 zcmV;9Dsk0PNk&G7DgXdiMM6+kP&iC^DgXd4zrZgLRbig?f7xUw&t^_MnK>GFcXz?v zA@1(l-sA2rJw2{%9<8E=8 zEpCnLAcxcF#AQcSeQOQ{(gm{#N8E# zn~*?U&))mkJ{I@zswiOFcK*qZysb4O+cjtFvu)e9ZQHiZY}@{@?6uYZ_x^sTL`jnC zwwVR$aX3J*od_TZ@&nlWLqUTE)Eo4-|LPA~4L5MhlA|H6+}s>=i=6$LH`1Vyn*$q2 z4sL5VFS2!~>)?jh-`e-h@8uR2M(cfy=be=cqeK;rehk!x?IR;23!`@EZO&|RpD@*J zT=`k89k070ldFT9Ih#cV7Q87VV;vcSjZqc)d4-vFFN4!}7)XC%Af3kGbQuHbe+;C% z7)a|FNK*`?F#~DBK&qWffAXmx&1sI-^v7mArNcY>nb=<(n?>es4n-D=xf`3QeGw#$ zkLil5iAC zOWW~JW{JAi>iS3De>ZD9hqE{-Rir1V3etUF1W98v$oDDv_!i9aq`XlB_TWDUDoD)ps@_ZFjP8Mns%rZCrKv)5jj z(SZ!44>6F;RA$ISu`JcQtx8+uT8;^;0;UWfewp z1q0avRiv`TzhYZe!bAu)jA+C%nt%`$Lu{+&{Wg9_g&DnapR#4PM(ReF>2Yz*GLSA+ zWJ~i7Z{!jmREY$Ln9!6^OGgqx%OqK&uHXCrW-pG-)*#;?Zn|t;Wlqmza5kr%oKa5% zJ)4LSF~apn?mp=VMmEVA_qB5@3?yghvUS}whIMibq<^R&ku~}eQO_lU(nDa$Q7BX6 z#j-^|?(146rvZ%2oJz`CPKAN=V4h@1(kwa>LFoZaJspXpS&}Cid5)>9n9Vk)x>Xgm za~R0hE3kz`?kn#^jErbX%1E4w(P6*hqx}V?jc#oAJ_lMmRnEQ`dWNvgzZ?!ik`U9B zl^_x0JIWA#8~T{|Y_=P9-IQ|ubOzGuM$@TSR+X3}MfXWlSz=U*=Ga&|v9K{x)JxZm zy-o(w*Hn?n6n6NLLy-|paT)oM!%?QFYvT+~USB8MO_z#p%8U$TaJq2J@tg*xmHHC< zE=E5)W(Kkag^&(ndQs0!nX^k(k?xyXNG%l!5+R`>NstJHs6>=X#HdV+DtyZ!LA8YN zdQKFpEQVPz$Jln=eCBw5zxYGuE1g}LI%P}28nplw8?}JaOMv$z&m9Q_Jqm=U`ZP?aWHlxBB0NwA;SDfRQ-W{ZjPg#vp`k#ib z#IX)B6A9N=F*WrW84)f)oc> z6%{%0i_8Cm%FncvrpO0TB8B%?$d(Eg#t&KYX#s_TIa?t&Iv-1cY$mE%3J{jJ;f=f` z-n-24FJ(?~plAd~JmZx^SP-9V{%l53u(>(*gLviAI9bLqd~7 zgi0!>@INUc!GWqRjWx1SRE6xvp7GojIbENtH2P6v3e|OED{?kk73tPI@qj-ioFeBY zOho?G2s!sf_GCbbQyl23+2k}vu{LrUe@Y}Zze0j-%~j}!QQ>oS9oQNg(sim}B2sIo;Y9^WYA%vbrF8Ec#se@J!dQI-WaU$D67kM57)Kkih6I7AZWemRg zBuYdk3R6iqBPVn8V@n)_+S0UIAm!kbDpAI;qmZC=IfndH9_p+)PZ`-UpO!9Y@kP~$ zL|jB*Jt1S%f#ZS9q20h*!XiinU-Dy=E@&$#Xq|lDIEiPDII1u*l7VzzhM{3RGLmAEVdXKpjaPTXK zQaO^oMhatHihj5$V9@sdD2sD=Rt43suy0*ljm=sY{&94#$Yz&}8qkK4*qi_Cz z0UEF!P<$Ypry}T+1+#^SdM*Z@?SpCwdDAft1vT3sdJ^yoAflO%8^(pKL-Pe5TNgzS zDo8Ha_!;s+^RmvfLP&5Zsb*x{XP{Y|Saw~bg)ZYjzmjK;ASz_bzN$!fw=7DeK!YJp z6$zaeBj8X}BS_%BXoUuo2$e%p|5M&l-;<)UhCmN)?9`)GmWt5l=86ZrQzZg)@=g`0 z{4X2|D`oJHxU2#UK8PG;%ZB8K*1}NhT^`R3u9GfLNwC*;98yh2fYF~4A)gLu!$m$B z_*KYLP?LU@2*40ROGUZ(QpU=7kEaXOr;!GYc#2#xl!TZDBA^;`#IR?S)?0@? zJ56hqU9cj=^{B+jX+w`;RT$AA_)#Jw(Um=1Dk!KTNQZy~4LWGhe_{dbhWeFd~NTuRn^#euJNmQ|zdIuQ(5 z)_Wm9ML?U%GX9$!J!8LY!$HkNK^{DA=)@^m58TNWsclT?@{l34)KX0w6RxI#?BfzK}n(&AWo*Iz_1IB_rE-=UI}U{T+CrZuE2&PN!uKySx)Qq5;@Oo^*_ZfV4r2x}SZs<3lm# zJn6_bXaISqa+D_dm9Dnt^y}4c#&aOc5n2|?^$Xhxt)+pa!c>+a>_D;%46Me`>U6?L z7MiWC03->mXXNS`3Q^WN`bL3)U8Rb3GZvc`R*!TG|^7Wbe) z0g32#704>SM*6fbZEY_RZMV4?pxzkCruhrw!j{5nX&`ApEpC|{1k`lI8@FRkBw>{x zNf;w5Ye7iO{p&4{kYw7AOQb1tHvQ}lfhOj*+U202F*fI&s&KbR8eWz!Na|P<35Sh8^20_#O-GO7+nlw$! z*>RB2ST+MNX{_>o(TqP+_>Cskq*J9m$w$_B43KW=0Gej5?J8BId%_zz0N%m$lq*6* z+Mo^K)@D;zh=yeb)l-P!hcojs4a|MvT5q`iWC6WB@|XJUg|azcRE+_8N$P(<^W)YG zrKiyVdTeDRI7pP#`vB0%II5S0Qk{?w==MMKv3 zmk(J5!e?ZSd(cpjE%{TTh!G}YND#Lq8{0E_@)l%SP8F=2alrd3A=xt{fbxHE(D2FLc?LxfJ)@OLW2?#5=H^>@Gmx9 z)|Yt9$J$#?6{MVK>~vJ&^q;6k5dg`&cN`=XU<)kXK+gZkL89gWrq0NAS(?hM_PJY^ z=uZ};oU>=1te7o@(2{J3X$B4QNncq|%6=9a3gHq!MQ}YOW1orC`WJf;uf25rh(<$h ze!(999q&|$X+pvn85}f()3az`y#NP|LK_*x!*4M;4#b)9*SHt0OT1*n0BH(>{XISb zDh6T_dvDN?FP-qMgn)AcAA*L1Bu0=3AxYAeXlzfz0Gaw1O<3a*cj|Ti;`b-65tkJU zL_$Sr=NU~xKT;71Z4=)OsuA05N>y9cBFCFD55kJcVt_`OhsI$Hq_HoeAnx^<(A=OZ z|Au6E!}4fuXFU^fr(4WCG~-ZP|8yrm>p^1zc$4MkD~+2K*n$|5W10{Nvw(wyP12;) z8V89aj6CAePc%!9i8}Wl;ZBxEFzf6NprL#ITz@A=)FUJ-ftXamKWOI6hB*%T7u+6^>G#j_ibuxelOBVxxGZbPcd ztnSzSt(#N-nsy@sPj1q&IY<$;eRH=VM8YgmL=BPy6vsxEW4j_GXBvo?E;f7@$eEfqvRb0xA*2Eze#X1&Q4^704n)MM$PH?U+^tal?R0RGOY9 zV(VO{Gss({^YC%cU79yEl8$+o)r2Nuv+S;7-eI}Bn&?JaA@qJJwNn6ZG zwElzc1Pt_a-o(Ceb-256c;*FU>XV$bc&76B8FYLvj>y(W%;Jn7hWh?nje*@#rbf7Y5MF1-abaB?jq z*k9S>9^z}hGAL?trDNNG!8X>5V&*5l4&!G``{X9}R1A>ibU?U$aXbHGovk3)tg+e< z!$Cko_YDn23B5NQ1Ogy&)FLE;<9bKDAWhY*`$uhL~1R-0o`{4o%M# z0j&@d%Wgn0|X~g_H0@6nvYlFkuT0=n7#Dp@k zQjGck{kYte>l_yk5BKn`TcUz=OK>%Tn2>r3f;sciX-KMkMesQyVuEQ&X)0^`fUoug z-TQHgG&}}+iYE4vTE9w_(Om${6~WijXkam#GlEYs5_YC54Gs2#L7z^HC zmD8GP#6&U6;1kDgprI+QT?d~iW(fcpDzjGfBp8Fw<}pA@Qtj;v%(i^IZECoPJs|vyF437#af-le+GXNQe zRwRD1KFYLz56Hm5a&@LLr}j`)P7hLmMbQwoDCoqnYXHblnJMv|f0XI5TH>&IEy;y9 zL={;r0MX4d=;vN(sG2SMLi)<86FOcWsr9XRe5+Q3b~R81X$=4qfW733Y1hDIjuVH> z9|E|fADXp;JlP(qwU_tEz$ery=%d2vP5{mscIrn7flI5flL%%W0BLG-_W-Vrqwwj+ zB}vorcf2W6=5*895))EOfxbNoSAhs+xm8Y9-_5od7w z;&qF5U@ZYQBh*H{Zb>$>|J$2~Qx!gYdNOOGwP!ys?G!j$S`P8LF-_329oTH=4-l^# zW4KKT8os)xe{MarcIT3$;W0}s3{Y4g*JrkccHKTxM;f}K+f_3~yKYYuwn)vKMHrx! zRyP2Ralrr?7@(lBQvWM^)B}JvOd4e~Gy*ls=Fna@Wk?6&%-yNhrnAI>=h2O4H?wNK zQvc*S`NaRU@?;Y**%%6>-Dfb#osEf52{9SiNYsV%Q`H(CJUs3e1LS8Pm`~?Th5+^r zQhJ{tatlHABotJ;1&EBb0wHIRM$Cj?dG8jzTU;#i^FQyl-Xok-oJ@Td)AScjvJ-iUp_Cz#th#jxy1E7&J z8M!Sq+!nlN0ImpN-*Q_?M&{oB-0Y8Y*_{_J6Bo;#-RS8UAiKBs`)&$?t}923FF9n@ z(7u-9*mX1_{oV+m?Hl`4LWn(MICTjc{@?EWJeF(r;K9zY#M^kX>>{9vF$QSSSkA_u zjQ|k?vVHptYZevFUKqN4``F=|STjBw1GF{nEFjI2jR$uy7@#;;$=;Ta`-EgU5R)?a z0_}o{My74RBBlR{7-1@flsF`@;9u7r3>P1#9{gBmV}PPmwRMX^wjfI7gxFES$b+?4 z9MVWbM<_j|8A!~PkU>!~5hHSvzE1_-dXF1En-eZPkGriJeiIx!G@n#OT=7gJfW!5Q z$_jLdQCZuN)O-!G!MZ{Bz|Cq`u` znO);-0nV)$0MCSJSJb&P6$7+$={O)mA0JDdZhUO>EHd`>$Fqe$#AP)xLUL|l8iGWG zk`||dUQG;dCZphI31hy-aH@63l?l`6tf6`4MQMf)YTMPHhXpuNansH zh9A+Xke)gJ_UipS*qWs!zT=iV1jxq#ZE_6EZ{?$3d=%%VmP8}gl2DwR;-_E(60P_5 zPO5C#gGYeAdzb&900Xp?n_9Oto=%Aq34(KLx9dZGgc={pqc+Ij$y*!oqEVd4QuGNw zyWnxXF8)EGyFL+?-0uF|7H)cZjCNC!EV zQaO9lr@%DdIQ+^>Avrj*k6|bE-jyXT`=V-+a>)2O3Z6Dwt-S}25PhAu)*Ha(W<>r% z-?9-KfN$1ilA;h2;q@FcloF+~k!6W{I4qjO$c~^CDd+O!&MgPi5&+6!%sjb<@7UYN z-O+ko{k_lE(IOK)<>wjc&jFr^NK*cWnITV=<=yG>>qk`_9qW}?Ofd3dX z)&`{zCqQ1f)8gHgYjOmnE+LwXZCBkL$nV;^JjCaQ1SKJk<~GPpti64>+n#LJxxdF^ zb!C9YUI97n2eiZhozqt4cNvpk+oy@;PmKV6ZmUU}7(Z&ne?WM=<`@5i3ozU!fuGxI z8srTWiTF_X*8R)&>Q5f0HR06h+S$Ly=5~I!!8wf;EQB+%0IKO7*91cesj(5RasD*9 z_o*2uJ5}1vT)>|$g76MaO=!=}@rRdqV#fnI-(G3gnZL&tu1?G{Skb=2fIJM)8Uu7q zU)dAVC%*(`IY4`EaTNqd)JC(Y%wbmnw#0#^VhgM`8iK=YInyC9GKSx73jiT1g~Y5c zQtQvc0Nous1jx7d-~qyP?&K$0VStW7kJgvx&50KPNgidHq*p{DRML7I(2qw>rV8n& zGnTnZpfu6QFz}1*EyX(ViPlVSH2|GE1Sl|@Z@Su^mN^|56cq!=93I1}0y!#C9;fG0 zrxDw#%9l+YEC;#{_VHi)G)m!g4B~u6(XA?==XO)@kw`0VJ_hJ%)OlcQD62jqGzh#JTGgH^bJgzl>kLG=Euig~k%uk|g5u+A%`?i=L# za+5&MO@}iJl8$*Y(97*@wL1QZwwmg^0i7{G)8UlB06kKUta0BbPL%-Zx%EqWC$(Hi zBc-jH9E7Ub)~Tpv-U(#pJbaLEN7_48Lc)9`{K}g?#1g~NQu78+++8~Hd2Vehbg?@( zSE(PY3{t(>z-k=GR6gPmdeVulVHN+$L9G8=#TriRh(-+b-T;uxVZMZ2BHP#p`*nA? z+_vLimo_f$>Qm5;htpm_`}roE*k5O1W8y@PX%I=fPi6{|m5=*yJdipp?UG=-W#}M*QyPDp(6(9Cb{&U%aIfQ;?Rdr?UnN+oAeg96aYI*JMWvMD_UW&Lw?7I*FzBfjru(Z+8Ac#p~B!@kb zmhRGyboZ)S^?sgPYqHdnOPsWd-f4BAv(5S0dV1<^Y-pg)7pO64dtEdL{HRWi%*0Oh z>*jD(^*b%9g;!5z?s4wO*QHbGm^1!Szv08=pAAkJdtjo zlW?j4g1R?39X=JwosK;U4H_lw3fZwm>}>PmBYlx0jt!QnlHru<0d&UzB@#>Tle9f5 zfEG`TK(l_-hzwze0uoeXnXPe~0>mhg5=|1+x&YhY+mf4TFQ9{AB_JEQ^`oZqp_G1) z*fV=Is zC?R1!7NPal_3+>Ih)<|*j~-1p;VpNe`e1;<67?R?^O5%Eet&#|iT!V)?3YjZF`~iM z^n@tUXqgjYzFr6zU$Pp>V2@<$R`1dK`D6^x`=v@)<2k|gF*e*uLkILO+55-yDRL95 zS}yG(6V?_$jY%K09Vu##G+p@Z*2>c0_@Zhg#ePUGoy~jua6GGILkE=X1OpTqyL(u& z;bZAxuUXgb=t}nSetU-O*sPYto^mt^RTy5oSA^7~-QiWBN$3@%c~9h}vt{od_ve)S zX1gYOu=ilvPy{D?7iSZ19eS7S?bG2j>4yKC5c^Khh}|&4K1N6=&so|JhDEsdllTZ2(yg+^# z*^&V%=SkCL$wl94I8IPbg*kiA;YX^x9k4{g3P6bs9XNteDNrqHdt6&y1X}wco?+vUs$GMR}0JrUI3LLHvXrHD@G!CA}lL`Ca+e^C5(d9{+H#i zdP^i`Bke7%dik@KF!Ib>p~*{x%0be55`S#)d$ju6v*gR0s6~BdL>(+lymj~9CA|R3 zeV?wLOwjP!IBA<0Re}+u(}1&yX;n?)Xzu}FO;Gb5lKGz|arU!;bi&ZcJ5fUI*mI{& z@O<-}RmtNwu}~M0hs9Xfb?|WOSr4GZYJgYktK!V~#)QRGFg=yAwjeKczvm%yL6U(j{)|YOiTC1Ze^KDfsKs(~V53VH>x!#OK>;Bu1+uik654$Bh zi^UK{gq^uK@1#9|ZeBZ-c>$F5_}B5Uh--iH=SK1y&cleNyo}xvV_3^X_cyCfL0iwV+RknUd6522j~}Y z7knTy;k9vjk8d?<+SFy*{}ms9#GX2JzE9Slv=1=As`zsit6jB{yN6n&PSA110C^U6 zBboar8uaCUf3ZaC%}Z44VnrWBi5ye35nqf*ah&j7!rBma@3Q- z>aau#1%0lTOImD;_3rLLpmRdJGE>4?}8tC^?Ewq;1lOw-K2I^V|#*+q)->Gi*YVtTMwX@*8?i7 zJo|LNzbMSw8=s)zsRa302s7tqD3syf%vUB7BQjGb6@2SY?CrzpQco-6!Pu5?UW_Y# z9~AR4)npn+;_YxN?ZDwyZspmZ%l-A?SMCg{i4nyY10k%ua^t23<1QD<%#q=Jjv+Vx z%zoVLZ}hY}j4h9ZY1K4U=SInl6Vq7N3q2Z+li&3{4L-5>)7CPp%d|SF&r#Kg0kVo(?8LSn zKu@n7%0JP-vyTsli-T^!QUSBTa;eF(2VXWW;}*5PC|?=tGih_ZFkLsQOoS!^Z5jyC+jyP zT5pB)SdXQOkuXk$FRHpeGzKI7^*!H@e5B0C3=voUO7YY6TfKQZpTNvbW-!-mSKHb} zONZGfYoxMKtq}$&s%>)3gDLLyaH}xz^!ER6aQ`kgw+7qzzr~!p)fZP%U#Z5AKQHJj8nRBNTqO7)Bf*S^wX>SBP_ zcGq0Gct<)^S{Zou_{a6=L7Z(L4zUi#Mqlu1xtd9sPet(Rf*Bb;sp1T3z^O9g*EoZV z3$CX{a_f?aiOY&Pv#Wz|g0TZT-#*&IpSNQ@4Xoxq?@hOLhQJE+a zV?ingKHmno>7b~X*zozAdjB%_7u$a&!+uDW6LMo~f0Tu{`qKw=eR!}ZKd;BVr>DWk z7&l+tb|JC^nMI?ZDwy)~1@FlV5)$&QRoR{c^BP@b?=?O`W|-Yg3|f zCPw;?q~9cAR|M5lniVEu!Uxg;Hyd0{khIF8cule5FN;fF8Dty2H|oM&9b)7CEquOy zrMHi#D>||Nf21eV(&qFAGm>H@EUfW!8Y_bVGBt}jJKEV+AI$VR(xI|}?p|SK;OPZW z)zSZdBlhO;c>aK{cMtmAtv(IC_9sd%ot5z>*7o=#qgHN6BIc%+tVXdGndx57-rXc;FAkY_D5 zD+2>h&pT`2KZZ`dcaMjw270x7NbGd|s=wp)*C95+-w{^cOv$CQc&jB_cky9`*aUz1KU#ft?*qBoKir4=-Bpj) zK!;&>=ILo*V0Aji&6j3c%$WWdAj{OaRO4N3?RzVDuq?YYSs?WFd5I_21r#HRg#oJ`6c=72??_ocBh^6OSeI&NEOmToPY4g*USi>tf6y{VR~Yb9f2O%@p&S8{dLGPSpNXYp05!?P5DTv?iWI5|0S kxm+CH=0OsKr(f|Me literal 11906 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 Ij?Ci%0AOAaCjbBd diff --git a/common/car/build.gradle.kts b/common/car/build.gradle.kts index 9c3dc48..b064eb1 100644 --- a/common/car/build.gradle.kts +++ b/common/car/build.gradle.kts @@ -29,6 +29,7 @@ android { } buildFeatures { compose = true + buildConfig = true } } @@ -52,7 +53,8 @@ dependencies { implementation(libs.play.services.location) implementation(libs.androidx.datastore.core) implementation(libs.androidx.monitor) - + implementation(libs.android.gpx.parser) + androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.runner) androidTestImplementation(libs.androidx.rules) diff --git a/common/car/src/main/ic_delete-playstore.png b/common/car/src/main/ic_delete-playstore.png deleted file mode 100644 index 60f9cbd92163fbff920b7ae245285da3ce52c901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22237 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 F{4eMP0_Ok# diff --git a/common/car/src/main/ic_launcher-playstore.png b/common/car/src/main/ic_launcher-playstore.png deleted file mode 100644 index 55787b02ad2fbe3bd080e17d8589259f9638ba75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37652 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%0DkS$IN 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 OpR&B#y&^gD=l>s%K}@9p diff --git a/common/car/src/main/java/com/kouros/navigation/car/CarSensorManager.kt b/common/car/src/main/java/com/kouros/navigation/car/CarSensorManager.kt index 3b56910..f7a6adf 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/CarSensorManager.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/CarSensorManager.kt @@ -137,7 +137,7 @@ class CarSensorManager( carCompassListener ) carSensors.addCarHardwareLocationListener( - CarSensors.UPDATE_RATE_FASTEST, + CarSensors.UPDATE_RATE_NORMAL, carContext.mainExecutor, carLocationListener ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/NavigationCarAppService.kt b/common/car/src/main/java/com/kouros/navigation/car/NavigationCarAppService.kt index e66897d..c103e48 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/NavigationCarAppService.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/NavigationCarAppService.kt @@ -1,7 +1,7 @@ package com.kouros.navigation.car import android.annotation.SuppressLint -import android.location.Location +import android.net.Uri import androidx.car.app.CarAppService import androidx.car.app.Session import androidx.car.app.SessionInfo @@ -10,6 +10,14 @@ import androidx.car.app.validation.HostValidator class NavigationCarAppService : CarAppService() { + val INTENT_ACTION_NAV_NOTIFICATION_OPEN_APP = + "com.kouros.navigation.INTENT_ACTION_NAV_NOTIFICATION_OPEN_APP" + + + fun createDeepLinkUri(deepLinkAction: String): Uri { + return Uri.fromParts(NavigationSession.uriScheme, NavigationSession.uriHost, deepLinkAction) + } + @SuppressLint("PrivateResource") override fun createHostValidator(): HostValidator { diff --git a/common/car/src/main/java/com/kouros/navigation/car/NavigationNotificationService.kt b/common/car/src/main/java/com/kouros/navigation/car/NavigationNotificationService.kt new file mode 100644 index 0000000..7a15cde --- /dev/null +++ b/common/car/src/main/java/com/kouros/navigation/car/NavigationNotificationService.kt @@ -0,0 +1,232 @@ +package com.kouros.navigation.car + +import android.annotation.SuppressLint +import android.app.Service +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import android.os.Handler +import android.os.IBinder +import android.os.Looper +import android.os.Message +import androidx.car.app.notification.CarAppExtender +import androidx.car.app.notification.CarNotificationManager +import androidx.car.app.notification.CarPendingIntent +import androidx.core.app.NotificationChannelCompat +import androidx.core.app.NotificationCompat +import androidx.core.app.NotificationManagerCompat +import com.kouros.data.R +import java.math.RoundingMode +import java.text.DecimalFormat +import java.util.concurrent.TimeUnit + +/** + * A simple foreground service that imitates a client routing service posting navigation + * notifications. + */ +class NavigationNotificationService : Service() { + /** + * The number of notifications fired so far. + * + * + * We use this number to post notifications with a repeating list of directions. See [ ][.getDirectionInfo] for details. + * + * Note: Package private for inner class reference + */ + var mNotificationCount: Int = 0 + + /** + * A handler that posts notifications when given the message request. See [ ] for details. + * + * Note: Package private for inner class reference + */ + val mHandler: Handler = + Handler(Looper.getMainLooper(), HandlerCallback()) + + override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { + initNotifications(this) + startForeground( + NAV_NOTIFICATION_ID, + getNavigationNotification(this, mNotificationCount).build() + ) + + // Start updating the notification continuously. + mHandler.sendMessageDelayed( + mHandler.obtainMessage(MSG_SEND_NOTIFICATION), NAV_NOTIFICATION_DELAY_IN_MILLIS + ) + + return START_NOT_STICKY + } + + override fun onDestroy() { + mHandler.removeMessages(MSG_SEND_NOTIFICATION) + } + + override fun onBind(intent: Intent): IBinder? { + return null + } + + /** + * A [Handler.Callback] used to process the message queue for the notification service. + */ + internal inner class HandlerCallback : Handler.Callback { + override fun handleMessage(msg: Message): Boolean { + if (msg.what == MSG_SEND_NOTIFICATION) { + val context: Context = this@NavigationNotificationService + CarNotificationManager.from(context).notify( + NAV_NOTIFICATION_ID, + getNavigationNotification(context, mNotificationCount) + ) + mNotificationCount++ + mHandler.sendMessageDelayed( + mHandler.obtainMessage(MSG_SEND_NOTIFICATION), + NAV_NOTIFICATION_DELAY_IN_MILLIS + ) + return true + } + return false + } + } + + /** + * A container class that encapsulates the direction information to use in the notifications. + */ + internal class DirectionInfo( + val mTitle: String, val mDistance: String, val mIcon: Int, + val mOnlyAlertOnce: Boolean + ) + + companion object { + private const val MSG_SEND_NOTIFICATION = 1 + private const val NAV_NOTIFICATION_CHANNEL_ID = "nav_channel_00" + private val NAV_NOTIFICATION_CHANNEL_NAME: CharSequence = "Navigation Channel" + private const val NAV_NOTIFICATION_ID = 10101 + val NAV_NOTIFICATION_DELAY_IN_MILLIS: Long = TimeUnit.SECONDS.toMillis(1) + + /** + * Initializes the notifications, if needed. + * + * + * [NotificationManager.IMPORTANCE_HIGH] is needed to show the alerts on top of the car + * screen. However, the rail widget at the bottom of the screen will show regardless of the + * importance setting. + */ + // Suppressing 'ObsoleteSdkInt' as this code is shared between APKs with different min SDK + // levels + @SuppressLint("ObsoleteSdkInt") + private fun initNotifications(context: Context) { + val navChannel = + NotificationChannelCompat.Builder( + NAV_NOTIFICATION_CHANNEL_ID, + NotificationManagerCompat.IMPORTANCE_HIGH + ) + .setName(NAV_NOTIFICATION_CHANNEL_NAME).build() + CarNotificationManager.from(context).createNotificationChannel(navChannel) + } + + /** Returns the navigation notification that corresponds to the given notification count. */ + fun getNavigationNotification( + context: Context, notificationCount: Int + ): NotificationCompat.Builder { + val builder = + NotificationCompat.Builder(context, NAV_NOTIFICATION_CHANNEL_ID) + val directionInfo = getDirectionInfo(context, notificationCount) + + // Set an intent to open the car app. The app receives this intent when the user taps the + // heads-up notification or the rail widget. + val pendingIntent = CarPendingIntent.getCarApp( + context, + NavigationCarAppService().INTENT_ACTION_NAV_NOTIFICATION_OPEN_APP.hashCode(), + Intent( + NavigationCarAppService().INTENT_ACTION_NAV_NOTIFICATION_OPEN_APP + ).setComponent( + ComponentName( + context, + NavigationCarAppService()::class.java + ) + ).setData( + NavigationCarAppService().createDeepLinkUri( + NavigationCarAppService().INTENT_ACTION_NAV_NOTIFICATION_OPEN_APP + ) + ), + 0 + ) + + return builder // This title, text, and icon will be shown in both phone and car screen. These + // values can + // be overridden in the extender below, to customize notifications in the car + // screen. + .setContentTitle(directionInfo.mTitle) + .setContentText(directionInfo.mDistance) + .setSmallIcon(directionInfo.mIcon) // The notification must be set to 'ongoing' and its category must be set to + // CATEGORY_NAVIGATION in order to show it in the rail widget when the app is + // navigating on + // the background. + // These values cannot be overridden in the extender. + + .setOngoing(true) + .setCategory(NotificationCompat.CATEGORY_NAVIGATION) // If set to true, the notification will only show the alert once in both phone and + // car screen. This value cannot be overridden in the extender. + + .setOnlyAlertOnce(directionInfo.mOnlyAlertOnce) // This extender must be set in order to display the notification in the car screen. + // The extender also allows various customizations, such as showing different title + // or icon on the car screen. + + .extend( + CarAppExtender.Builder() + .setContentIntent(pendingIntent) + .build() + ) + } + + /** + * Returns a [DirectionInfo] that corresponds to the given notification count. + * + * + * There are 5 directions, repeating in order. For each direction, the alert will only show + * once, but the distance will update on every count on the rail widget. + */ + private fun getDirectionInfo(context: Context, notificationCount: Int): DirectionInfo { + val formatter = DecimalFormat("#.##") + formatter.setRoundingMode(RoundingMode.DOWN) + val repeatingCount = notificationCount % 35 + if (repeatingCount in 0..<10) { + // Distance decreases from 1km to 0.1km + val distance = formatter.format((10 - repeatingCount) * 0.1) + "km" + return DirectionInfo( + context.getString(R.string.stop_action_title), + distance, + R.drawable.arrow_back_24px, + repeatingCount > 0 + ) + } else if (repeatingCount in 10..<20) { + // Distance decreases from 5km to 0.5km + val distance = formatter.format((20 - repeatingCount) * 0.5) + "km" + return DirectionInfo( + context.getString(R.string.route_preview), + distance, + R.drawable.ic_turn_normal_right, /* onlyAlertOnce= */ + repeatingCount > 10 + ) + } else if (repeatingCount in 20..<25) { + // Distance decreases from 200m to 40m + val distance = formatter.format(((25 - repeatingCount) * 40).toLong()) + "m" + return DirectionInfo( + context.getString(R.string.route_preview), + distance, + R.drawable.navigation_48px, /* onlyAlertOnce= */ + repeatingCount > 20 + ) + } else { + // Distance decreases from 1km to 0.1km + val distance = formatter.format((35 - repeatingCount) * 0.1) + "km" + return DirectionInfo( + context.getString(R.string.charging_station), + distance, + R.drawable.local_gas_station_24, + repeatingCount > 25 + ) + } + } + } +} diff --git a/common/car/src/main/java/com/kouros/navigation/car/NavigationSession.kt b/common/car/src/main/java/com/kouros/navigation/car/NavigationSession.kt index 14057ca..98950f4 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/NavigationSession.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/NavigationSession.kt @@ -26,6 +26,7 @@ import com.kouros.navigation.car.navigation.RouteCarModel import com.kouros.navigation.car.navigation.Simulation import com.kouros.navigation.car.screen.NavigationListener import com.kouros.navigation.car.screen.NavigationScreen +import com.kouros.navigation.car.screen.NavigationType import com.kouros.navigation.car.screen.RequestPermissionScreen import com.kouros.navigation.car.screen.SearchScreen import com.kouros.navigation.car.screen.checkPermission @@ -37,6 +38,7 @@ import com.kouros.navigation.data.Constants.MAXIMAL_SNAP_CORRECTION import com.kouros.navigation.data.Constants.TAG import com.kouros.navigation.data.Place import com.kouros.navigation.data.RouteEngine +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.data.osrm.OsrmRepository import com.kouros.navigation.data.tomtom.TomTomRepository import com.kouros.navigation.data.valhalla.ValhallaRepository @@ -229,9 +231,10 @@ class NavigationSession : Session(), NavigationListener { override fun onStopNavigation() { // Called when the user stops navigation in the car screen // Stop turn-by-turn logic and clean up - routeModel.stopNavigation() - autoDriveEnabled = false - deviceLocationManager.startLocationUpdates() + stopNavigation() + if (autoDriveEnabled) { + deviceLocationManager.startLocationUpdates() + } } }) surfaceRenderer = SurfaceRenderer(carContext, lifecycle, routeModel, viewModelStoreOwner) @@ -387,6 +390,7 @@ class NavigationSession : Session(), NavigationListener { * Snaps location to route and checks for deviation requiring reroute. */ private fun handleNavigationLocation(location: Location) { + if (guidanceAudio == 1) { handleGuidanceAudio() } @@ -420,6 +424,9 @@ class NavigationSession : Session(), NavigationListener { simulation.stopSimulation() autoDriveEnabled = false } + surfaceRenderer.routeData.value = "" + surfaceRenderer.viewStyle = ViewStyle.VIEW + navigationScreen.navigationType = NavigationType.VIEW } /** diff --git a/common/car/src/main/java/com/kouros/navigation/car/SurfaceRenderer.kt b/common/car/src/main/java/com/kouros/navigation/car/SurfaceRenderer.kt index fb7f6ce..8f1ecf7 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/SurfaceRenderer.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/SurfaceRenderer.kt @@ -10,12 +10,17 @@ import androidx.car.app.AppManager import androidx.car.app.CarContext import androidx.car.app.SurfaceCallback import androidx.car.app.SurfaceContainer +import androidx.compose.animation.core.LinearOutSlowInEasing +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.PaddingValues import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.platform.ComposeView import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle @@ -29,9 +34,11 @@ import com.kouros.navigation.car.map.MapLibre import com.kouros.navigation.car.map.cameraState import com.kouros.navigation.car.map.getPaddingValues import com.kouros.navigation.car.navigation.RouteCarModel +import com.kouros.navigation.data.Constants.TAG import com.kouros.navigation.data.Constants.TILT import com.kouros.navigation.data.Constants.homeVogelhart import com.kouros.navigation.data.RouteEngine +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.model.BaseStyleModel import com.kouros.navigation.utils.bearing import com.kouros.navigation.utils.calculateTilt @@ -45,9 +52,10 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import org.maplibre.compose.camera.CameraPosition import org.maplibre.compose.camera.CameraState -import org.maplibre.compose.expressions.dsl.zoom import org.maplibre.compose.style.BaseStyle import org.maplibre.spatialk.geojson.Position +import java.time.Duration +import java.time.LocalDateTime /** @@ -123,6 +131,8 @@ class SurfaceRenderer( // Camera tilt angle (default 60 degrees for navigation) var tilt = TILT + var lastLocationUpdate: LocalDateTime = LocalDateTime.now() + // Map base style (day/night) val style: MutableLiveData by lazy { MutableLiveData() @@ -238,7 +248,6 @@ class SurfaceRenderer( init { lifecycle.addObserver(this) speed.value = 0F - } fun onBaseStyleStateUpdated(style: BaseStyle) { @@ -287,7 +296,7 @@ class SurfaceRenderer( darkMode: Boolean ) { val cameraDuration = - duration(viewStyle == ViewStyle.PREVIEW, position!!.bearing, lastBearing) + duration(viewStyle == ViewStyle.PREVIEW, position!!.bearing, lastBearing, lastLocationUpdate) val currentSpeed: Float? by speed.observeAsState() val maximumSpeed: Int? by maxSpeed.observeAsState() val streetName: String? by street.observeAsState() @@ -311,9 +320,10 @@ class SurfaceRenderer( tilt = tilt, padding = paddingValues ), - duration = cameraDuration + duration = cameraDuration, ) } + lastLocationUpdate = LocalDateTime.now() } override fun onCreate(owner: LifecycleOwner) { @@ -396,6 +406,15 @@ class SurfaceRenderer( viewStyle = ViewStyle.VIEW } + /** + * Activates navigation View + */ + fun activateNavigationView() { + viewStyle = ViewStyle.VIEW + tilt = TILT + updateLocation(lastLocation) + } + /** * Updates camera position with new bearing, zoom, and target. * Posts update to LiveData for UI observation. @@ -414,21 +433,6 @@ class SurfaceRenderer( } } - /** - * Sets route data for active navigation and switches to VIEW mode. - */ - fun clearRouteData() { - updateLocation(lastLocation) - routeData.value = "" - viewStyle = ViewStyle.VIEW - cameraPosition.postValue( - cameraPosition.value!!.copy( - zoom = 16.0 - ) - ) - tilt = TILT - } - /** * Updates traffic incident data on the map. */ @@ -492,9 +496,9 @@ class SurfaceRenderer( } /** - * Centers the map on a specific category/POI location. + * Centers the map on a specific POI location. */ - fun setCategoryLocation(location: Location, category: String) { + fun setCategoryLocation(location: Location) { viewStyle = ViewStyle.AMENITY_VIEW cameraPosition.postValue( cameraPosition.value!!.copy( @@ -502,22 +506,4 @@ class SurfaceRenderer( ) ) } - - companion - object { - private const val TAG = "MapRenderer" - } -} - - -/** - * Enum representing different map view modes. - * - VIEW: Active navigation mode with follow-car camera - * - PREVIEW: Route overview before starting navigation - * - PAN_VIEW: User-controlled map panning - * - AMENITY_VIEW: Displaying POI/amenity locations - */ -enum class ViewStyle { - VIEW, PREVIEW, PAN_VIEW, AMENITY_VIEW - } diff --git a/common/car/src/main/java/com/kouros/navigation/car/map/MapView.kt b/common/car/src/main/java/com/kouros/navigation/car/map/MapView.kt index 9410eda..7dd7c67 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/map/MapView.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/map/MapView.kt @@ -26,11 +26,12 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.kouros.data.R -import com.kouros.navigation.car.ViewStyle import com.kouros.navigation.data.Constants -import com.kouros.navigation.data.NavigationColor +import com.kouros.navigation.data.NavigationColorDark +import com.kouros.navigation.data.NavigationColorLight import com.kouros.navigation.data.RouteColor import com.kouros.navigation.data.SpeedColor +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.utils.isMetricSystem import org.maplibre.compose.camera.CameraPosition import org.maplibre.compose.camera.CameraState @@ -74,9 +75,9 @@ fun cameraState( latitude = position!!.target.latitude, longitude = position.target.longitude ), - zoom = 15.0, + zoom = position.zoom, tilt = tilt, - padding = padding + padding = padding, ) ) } @@ -317,7 +318,10 @@ fun NavigationImage( ) { val imageSize = (height / 8) - val navigationColor = remember { NavigationColor } + val navigationColor = if (darkMode) + remember { NavigationColorDark } + else + remember { NavigationColorLight } val textMeasurerStreet = rememberTextMeasurer() val street = streetName.toString() @@ -545,7 +549,7 @@ fun DebugInfo( fun getPaddingValues(height: Int, viewStyle: ViewStyle): PaddingValues { return when (viewStyle) { ViewStyle.VIEW, ViewStyle.PAN_VIEW -> PaddingValues( - start = 50.dp, + start = 100.dp, top = distanceFromTop(height).dp ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/navigation/NavigationUtils.kt b/common/car/src/main/java/com/kouros/navigation/car/navigation/NavigationUtils.kt deleted file mode 100644 index 370f3a8..0000000 --- a/common/car/src/main/java/com/kouros/navigation/car/navigation/NavigationUtils.kt +++ /dev/null @@ -1,80 +0,0 @@ -package com.kouros.navigation.car.navigation - -import android.graphics.Canvas -import android.graphics.Color -import android.graphics.Paint -import android.media.AudioAttributes -import android.media.AudioFocusRequest -import android.media.AudioManager -import android.media.MediaPlayer -import android.media.MediaPlayer.OnCompletionListener -import android.speech.tts.TextToSpeech -import android.util.Log -import androidx.annotation.DrawableRes -import androidx.annotation.RawRes -import androidx.annotation.StringRes -import androidx.car.app.CarContext -import androidx.car.app.CarToast -import androidx.car.app.model.Action -import androidx.car.app.model.CarIcon -import androidx.car.app.model.CarText -import androidx.car.app.model.Row -import androidx.core.graphics.createBitmap -import androidx.core.graphics.drawable.IconCompat -import com.kouros.data.R -import com.kouros.navigation.data.Constants.CHARGING_STATION -import com.kouros.navigation.data.Constants.FUEL_STATION -import com.kouros.navigation.data.Constants.PHARMACY -import com.kouros.navigation.data.Constants.TAG -import java.io.IOException -import java.util.Locale - -class NavigationUtils(private var carContext: CarContext) { - - - fun createCarIcon(@DrawableRes iconRes: Int): CarIcon { - return CarIcon.Builder(IconCompat.createWithResource(carContext, iconRes)).build() - } - - fun buildRowForTemplate(title: Int, resource: Int): Row { - return Row.Builder() - .setTitle(carContext.getString(title)) - .setImage( - CarIcon.Builder( - IconCompat.createWithResource( - carContext, - resource - ) - ) - .build() - ) - .build() - } - - fun createNumberIcon(category: String, number: String): IconCompat { - val size = 24 - val bitmap = createBitmap(size, size) - val canvas = Canvas(bitmap) - val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply { - color = Color.WHITE - textSize = size * 0.7f - textAlign = Paint.Align.CENTER - isFakeBoldText = true - } - val xPos = size / 2f - val yPos = (size / 2f) - ((paint.descent() + paint.ascent()) / 2f) - - val color = when (category) { - CHARGING_STATION -> Color.GREEN - FUEL_STATION -> Color.BLUE - PHARMACY -> Color.RED - else -> Color.WHITE - } - paint.color = color - canvas.drawCircle(size / 2f, size / 2f, size / 2f, paint) - - paint.color = Color.WHITE - canvas.drawText(number, xPos, yPos, paint) - return IconCompat.createWithBitmap(bitmap) - } -} \ No newline at end of file diff --git a/common/car/src/main/java/com/kouros/navigation/car/navigation/RouteCarModel.kt b/common/car/src/main/java/com/kouros/navigation/car/navigation/RouteCarModel.kt index f3ddb0b..9e8cd12 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/navigation/RouteCarModel.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/navigation/RouteCarModel.kt @@ -3,6 +3,7 @@ package com.kouros.navigation.car.navigation import android.text.SpannableString import android.text.SpannableStringBuilder import android.text.Spanned +import android.util.Log import androidx.annotation.StringRes import androidx.car.app.AppManager import androidx.car.app.CarContext @@ -184,7 +185,6 @@ class RouteCarModel : RouteModel() { return CarText.create(carContext.getString(stringRes)) } - fun createCarIcon(iconCompat: IconCompat): CarIcon { return CarIcon.Builder(iconCompat).build() } @@ -235,4 +235,17 @@ class RouteCarModel : RouteModel() { .setFlags(flags) .build() } + + fun backGroundColor(): CarColor { + return if (isNavigating()) { + when (route.currentStep().countryCode) { + "DEU", "FRA", "AUT", "POL", "BEL", "NLD", "ESP", "PRT", "CZE", "SVK", "BGR", "HUN" -> CarColor.BLUE + else -> { + CarColor.GREEN + } + } + } else { + CarColor.GREEN + } + } } diff --git a/common/car/src/main/java/com/kouros/navigation/car/navigation/Simulation.kt b/common/car/src/main/java/com/kouros/navigation/car/navigation/Simulation.kt index 86d260e..c4e18b1 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/navigation/Simulation.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/navigation/Simulation.kt @@ -4,47 +4,126 @@ import android.location.Location import android.location.LocationManager import android.os.SystemClock import androidx.lifecycle.LifecycleCoroutineScope -import com.kouros.navigation.data.Constants.homeVogelhart -import com.kouros.navigation.utils.location +import com.kouros.android.cars.carappservice.BuildConfig +import com.kouros.navigation.data.tomtom.TomTomRepository +import io.ticofab.androidgpxparser.parser.GPXParser +import io.ticofab.androidgpxparser.parser.domain.Gpx +import io.ticofab.androidgpxparser.parser.domain.TrackSegment +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking +import org.joda.time.DateTime class Simulation { private var simulationJob: Job? = null - + fun startSimulation( routeModel: RouteCarModel, lifecycleScope: LifecycleCoroutineScope, updateLocation: (Location) -> Unit ) { if (routeModel.navState.route.isRouteValid()) { - val points = routeModel.curRoute.waypoints - if (points.isEmpty()) return - simulationJob?.cancel() + if (BuildConfig.DEBUG) { + gpxSimulation(routeModel, lifecycleScope, updateLocation) + } else { + currentSimulation(routeModel, lifecycleScope, updateLocation) + } + return + } + } + + private fun currentSimulation( + routeModel: RouteCarModel, + lifecycleScope: LifecycleCoroutineScope, + updateLocation: (Location) -> Unit + ) { + val points = routeModel.curRoute.waypoints + if (points.isEmpty()) return + simulationJob?.cancel() + var lastLocation = Location(LocationManager.FUSED_PROVIDER) + var curBearing = 0f + simulationJob = lifecycleScope.launch { + for (point in points) { + val fakeLocation = Location(LocationManager.FUSED_PROVIDER).apply { + latitude = point[1] + longitude = point[0] + bearing = curBearing + speedAccuracyMetersPerSecond = 1.0f // ~1 m/s + speed = 13.0f // ~50 km/h + time = System.currentTimeMillis() + elapsedRealtimeNanos = SystemClock.elapsedRealtimeNanos() + } + curBearing = lastLocation.bearingTo(fakeLocation) + // Update your app's state as if a real GPS update occurred + updateLocation(fakeLocation) + // Wait before moving to the next point (e.g., every 1 second) + delay(1000) + lastLocation = fakeLocation + } + routeModel.stopNavigation() + } + } + + private fun gpxSimulation( + routeModel: RouteCarModel, + lifecycleScope: LifecycleCoroutineScope, + updateLocation: (Location) -> Unit + ) { + var route = "" + simulationJob?.cancel() + runBlocking { + simulationJob = launch(Dispatchers.IO) { + route = TomTomRepository().fetchUrl( + "https://kouros-online.de/vh.gpx", + false + ) + } + simulationJob?.join() + } + simulationJob?.cancel() + simulationJob =lifecycleScope.launch() { var lastLocation = Location(LocationManager.FUSED_PROVIDER) var curBearing = 0f - simulationJob = lifecycleScope.launch { - for (point in points) { - val fakeLocation = Location(LocationManager.FUSED_PROVIDER).apply { - latitude = point[1] - longitude = point[0] - bearing = curBearing - speedAccuracyMetersPerSecond = 1.0f // ~1 m/s - speed = 13.0f // ~50 km/h - time = System.currentTimeMillis() - elapsedRealtimeNanos = SystemClock.elapsedRealtimeNanos() + val parser = GPXParser() + val parsedGpx: Gpx? = + parser.parse(route.byteInputStream()) + parsedGpx?.let { + val tracks = parsedGpx.tracks + tracks.forEach { tr -> + val segments: MutableList? = tr.trackSegments + segments!!.forEach { seg -> + var lastTime = DateTime.now() + seg!!.trackPoints.forEach { p -> + val ext = p.extensions + var curSpeed = 0F + if (ext != null) { + curSpeed = ext.speed.toFloat() + } + val duration = p.time.millis - lastTime.millis + val fakeLocation = Location(LocationManager.FUSED_PROVIDER).apply { + latitude = p.latitude + longitude = p.longitude + speedAccuracyMetersPerSecond = 1.0f // ~1 m/s + speed = curSpeed + time = System.currentTimeMillis() + elapsedRealtimeNanos = SystemClock.elapsedRealtimeNanos() + } + // Update your app's state as if a real GPS update occurred + updateLocation(fakeLocation) + // Wait before moving to the next point (e.g., every 1 second) + if (duration > 100) { + delay(duration / 4) + } + lastTime = p.time + lastLocation = fakeLocation + } } - curBearing = lastLocation.bearingTo(fakeLocation) - // Update your app's state as if a real GPS update occurred - updateLocation(fakeLocation) - // Wait before moving to the next point (e.g., every 1 second) - delay(500) - lastLocation = fakeLocation } - routeModel.stopNavigation() } + routeModel.stopNavigation() } } diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/CategoriesScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/CategoriesScreen.kt index ef87d91..a0f1d6b 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/CategoriesScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/CategoriesScreen.kt @@ -1,6 +1,5 @@ package com.kouros.navigation.car.screen -import androidx.activity.OnBackPressedCallback import androidx.car.app.CarContext import androidx.car.app.Screen import androidx.car.app.model.Action @@ -13,18 +12,12 @@ import androidx.car.app.model.Template import androidx.core.graphics.drawable.IconCompat import com.kouros.data.R import com.kouros.navigation.car.SurfaceRenderer -import com.kouros.navigation.car.ViewStyle import com.kouros.navigation.data.Category import com.kouros.navigation.data.Constants.CHARGING_STATION import com.kouros.navigation.data.Constants.FUEL_STATION import com.kouros.navigation.data.Constants.PHARMACY +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.model.NavigationViewModel -import com.kouros.navigation.car.navigation.NavigationUtils -import com.kouros.navigation.car.screen.observers.CategoryObserver -import com.kouros.navigation.car.screen.observers.CategoryObserverCallback -import com.kouros.navigation.data.overpass.Elements -import com.kouros.navigation.utils.GeoUtils.createPointCollection -import com.kouros.navigation.utils.location class CategoriesScreen( private val carContext: CarContext, @@ -100,7 +93,7 @@ fun carIcon(context: CarContext, category: String, index: Int): CarIcon { return CarIcon.Builder(IconCompat.createWithResource(context, resId)).build() } else { return CarIcon.Builder( - NavigationUtils(context).createNumberIcon( + createNumberIcon( category, index.toString() ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/CategoryScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/CategoryScreen.kt index 8276d28..fb3ff9f 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/CategoryScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/CategoryScreen.kt @@ -21,7 +21,6 @@ import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import com.kouros.data.R import com.kouros.navigation.car.SurfaceRenderer -import com.kouros.navigation.car.navigation.NavigationUtils import com.kouros.navigation.car.screen.observers.CategoryObserver import com.kouros.navigation.car.screen.observers.CategoryObserverCallback import com.kouros.navigation.data.Constants @@ -130,7 +129,7 @@ class CategoryScreen( val row = Row.Builder() .setOnClickListener { val location = location(it.lon, it.lat) - surfaceRenderer.setCategoryLocation(location, category) + surfaceRenderer.setCategoryLocation(location) } .setTitle(name) .setImage(carIcon(carContext, category, index)) diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/NavigationScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/NavigationScreen.kt index bcd6e06..9372964 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/NavigationScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/NavigationScreen.kt @@ -9,7 +9,6 @@ import androidx.car.app.Screen import androidx.car.app.model.Action import androidx.car.app.model.Action.FLAG_IS_PERSISTENT import androidx.car.app.model.ActionStrip -import androidx.car.app.model.CarColor import androidx.car.app.model.CarIcon import androidx.car.app.model.Distance import androidx.car.app.model.Header @@ -31,28 +30,25 @@ import androidx.lifecycle.asLiveData import androidx.lifecycle.lifecycleScope import com.kouros.data.R import com.kouros.navigation.car.SurfaceRenderer -import com.kouros.navigation.car.ViewStyle import com.kouros.navigation.car.navigation.RouteCarModel import com.kouros.navigation.car.screen.observers.NavigationObserverCallback import com.kouros.navigation.car.screen.observers.NavigationObserverManager import com.kouros.navigation.car.screen.settings.SettingsScreen import com.kouros.navigation.data.Constants import com.kouros.navigation.data.Constants.DESTINATION_ARRIVAL_DISTANCE -import com.kouros.navigation.data.Constants.TILT import com.kouros.navigation.data.Constants.TRAFFIC_UPDATE import com.kouros.navigation.data.Place +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.data.overpass.Elements import com.kouros.navigation.model.NavigationViewModel import com.kouros.navigation.model.RouteModel import com.kouros.navigation.utils.GeoUtils -import com.kouros.navigation.utils.calculateZoom import com.kouros.navigation.utils.formattedDistance import com.kouros.navigation.utils.getSettingsRepository import com.kouros.navigation.utils.getSettingsViewModel import com.kouros.navigation.utils.location import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import org.maplibre.spatialk.geojson.Position import java.time.Duration import java.time.LocalDateTime import java.time.ZoneOffset @@ -70,8 +66,6 @@ open class NavigationScreen( private val navigationViewModel: NavigationViewModel ) : Screen(carContext), NavigationObserverCallback { - val backGroundColor = CarColor.GREEN - var currentNavigationLocation = Location(LocationManager.GPS_PROVIDER) var recentPlaces = mutableListOf() @@ -191,7 +185,7 @@ open class NavigationScreen( ) }) ) - .setBackgroundColor(backGroundColor) + .setBackgroundColor(routeModel.backGroundColor()) .build() } @@ -200,7 +194,7 @@ open class NavigationScreen( */ private fun navigationViewTemplate(actionStripBuilder: ActionStrip.Builder): Template { return NavigationTemplate.Builder() - .setBackgroundColor(backGroundColor) + .setBackgroundColor(routeModel.backGroundColor()) .setActionStrip(actionStripBuilder.build()) .setMapActionStrip( mapActionStrip( @@ -261,7 +255,7 @@ open class NavigationScreen( ) .build() ) - .setBackgroundColor(backGroundColor) + .setBackgroundColor(routeModel.backGroundColor()) .setActionStrip(actionStripBuilder.build()) .setMapActionStrip( mapActionStrip( @@ -298,7 +292,7 @@ open class NavigationScreen( ) } val listBuilder = ItemList.Builder() - recentPlaces.filter { it.category == Constants.RECENT }.forEach { + recentPlaces.filter { it.category == Constants.RECENT && it.distance > 300F }.forEach { val row = Row.Builder() .setTitle(it.name!!) .addAction( @@ -355,7 +349,7 @@ open class NavigationScreen( return NavigationTemplate.Builder() .setNavigationInfo(RoutingInfo.Builder().setLoading(true).build()) .setActionStrip(actionStripBuilder.build()) - .setBackgroundColor(backGroundColor) + .setBackgroundColor(routeModel.backGroundColor()) .build() } @@ -421,12 +415,6 @@ open class NavigationScreen( * Creates an action to start the settings screen. */ private fun settingsAction(): Action { -// return Action.Builder() -// .setIcon(createCarIcon(carContext, R.drawable.settings_48px)) -// .setOnClickListener { -// screenManager.push(SettingsScreen(carContext, navigationViewModel)) -// } -// .build() return createAction( carContext, R.drawable.settings_48px, 0, @@ -514,13 +502,7 @@ open class NavigationScreen( navigationViewModel.route.value = preview } routeModel.navState = routeModel.navState.copy(destination = place) - surfaceRenderer.viewStyle = ViewStyle.VIEW - surfaceRenderer.updateCameraPosition( - 0.0, - 16.0, - Position(surfaceRenderer.lastLocation.longitude, surfaceRenderer.lastLocation.latitude), - TILT - ) + surfaceRenderer.activateNavigationView() invalidate() } @@ -530,7 +512,6 @@ open class NavigationScreen( fun stopNavigation() { navigationType = NavigationType.VIEW listener.stopNavigation() - surfaceRenderer.routeData.value = "" lastCameraSearch = 0 invalidate() } @@ -573,9 +554,9 @@ open class NavigationScreen( * Updates navigation state with the current location, checks for arrival, and traffic updates. */ fun updateTrip(location: Location) { - val current = LocalDateTime.now(ZoneOffset.UTC) - checkRoute(current, location) - checkTraffic(current, location) + val currentDate = LocalDateTime.now(ZoneOffset.UTC) + checkRoute(currentDate, location) + checkTraffic(currentDate, location) updateSpeedCamera(location) @@ -588,11 +569,11 @@ open class NavigationScreen( /** * Checks if a new route is needed based on the time since the last update. */ - private fun checkRoute(current: LocalDateTime, location: Location) { - val duration = Duration.between(current, lastRouteDate) - val routeUpdate = routeModel.curRoute.summary.duration / 6 + private fun checkRoute(currentDate: LocalDateTime, location: Location) { + val duration = Duration.between(currentDate, lastRouteDate) + val routeUpdate = routeModel.curRoute.summary.duration / 4 if (duration.abs().seconds > routeUpdate) { - lastRouteDate = current + lastRouteDate = currentDate val destination = location( routeModel.navState.destination.longitude, routeModel.navState.destination.latitude diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/RoutePreviewScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/RoutePreviewScreen.kt index 6d87a1f..25764ab 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/RoutePreviewScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/RoutePreviewScreen.kt @@ -36,10 +36,9 @@ import androidx.lifecycle.asLiveData import androidx.lifecycle.lifecycleScope import com.kouros.data.R import com.kouros.navigation.car.SurfaceRenderer -import com.kouros.navigation.car.ViewStyle -import com.kouros.navigation.car.navigation.NavigationUtils import com.kouros.navigation.car.navigation.RouteCarModel import com.kouros.navigation.data.Place +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.data.route.Routes import com.kouros.navigation.model.NavigationViewModel import com.kouros.navigation.utils.getSettingsRepository @@ -324,7 +323,7 @@ class RoutePreviewScreen( .addAction(navigateAction) if (route.summary.trafficDelay > 60) { row.addText(createDelay(route)) - row.setImage(NavigationUtils(carContext).createCarIcon(R.drawable.traffic_jam_48px)) + row.setImage(createCarIcon(carContext = carContext, R.drawable.traffic_jam_48px)) } return row.build() } diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/ScreenUtils.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/ScreenUtils.kt index 96a2a8c..137c762 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/ScreenUtils.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/ScreenUtils.kt @@ -1,13 +1,63 @@ package com.kouros.navigation.car.screen +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint import androidx.annotation.DrawableRes import androidx.car.app.CarContext import androidx.car.app.model.Action import androidx.car.app.model.Action.FLAG_DEFAULT import androidx.car.app.model.ActionStrip import androidx.car.app.model.CarIcon +import androidx.car.app.model.Row +import androidx.core.graphics.createBitmap import androidx.core.graphics.drawable.IconCompat -import com.kouros.navigation.car.ViewStyle +import com.kouros.navigation.data.Constants.CHARGING_STATION +import com.kouros.navigation.data.Constants.FUEL_STATION +import com.kouros.navigation.data.Constants.PHARMACY +import com.kouros.navigation.data.ViewStyle + +fun buildRowForTemplate(carContext: CarContext, title: Int, resource: Int): Row { + return Row.Builder() + .setTitle(carContext.getString(title)) + .setImage( + CarIcon.Builder( + IconCompat.createWithResource( + carContext, + resource + ) + ) + .build() + ) + .build() +} + +fun createNumberIcon(category: String, number: String): IconCompat { + val size = 24 + val bitmap = createBitmap(size, size) + val canvas = Canvas(bitmap) + val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + color = Color.WHITE + textSize = size * 0.7f + textAlign = Paint.Align.CENTER + isFakeBoldText = true + } + val xPos = size / 2f + val yPos = (size / 2f) - ((paint.descent() + paint.ascent()) / 2f) + + val color = when (category) { + CHARGING_STATION -> Color.GREEN + FUEL_STATION -> Color.BLUE + PHARMACY -> Color.RED + else -> Color.WHITE + } + paint.color = color + canvas.drawCircle(size / 2f, size / 2f, size / 2f, paint) + + paint.color = Color.WHITE + canvas.drawText(number, xPos, yPos, paint) + return IconCompat.createWithBitmap(bitmap) +} fun createActionStrip(executeAction: () -> Action): ActionStrip { val actionStripBuilder: ActionStrip.Builder = ActionStrip.Builder() @@ -17,7 +67,7 @@ fun createActionStrip(executeAction: () -> Action): ActionStrip { return actionStripBuilder.build() } - fun createActionStripBuilder(action1: () -> Action, action2: () -> Action): ActionStrip.Builder { +fun createActionStripBuilder(action1: () -> Action, action2: () -> Action): ActionStrip.Builder { val actionStripBuilder: ActionStrip.Builder = ActionStrip.Builder() actionStripBuilder.addAction( action1() @@ -31,7 +81,12 @@ fun createActionStrip(executeAction: () -> Action): ActionStrip { /** * Creates an ActionStrip builder for map-related actions like zoom and pan. */ -fun mapActionStrip(viewStyle: ViewStyle, zoomPlus: () -> Action, zoomMinus: () -> Action , panAction: () -> Action): ActionStrip { +fun mapActionStrip( + viewStyle: ViewStyle, + zoomPlus: () -> Action, + zoomMinus: () -> Action, + panAction: () -> Action +): ActionStrip { val actionStripBuilder = ActionStrip.Builder() .addAction(zoomPlus()) .addAction(zoomMinus()) @@ -47,7 +102,12 @@ fun mapActionStrip(viewStyle: ViewStyle, zoomPlus: () -> Action, zoomMinus: () - /** * Creates an action to do something. */ -fun createAction(carContext: CarContext, @DrawableRes iconRes: Int, flag: Int = FLAG_DEFAULT, onClickAction: () -> Unit): Action { +fun createAction( + carContext: CarContext, + @DrawableRes iconRes: Int, + flag: Int = FLAG_DEFAULT, + onClickAction: () -> Unit +): Action { return Action.Builder() .setIcon(createCarIcon(carContext, iconRes)) .setFlags(flag) @@ -60,3 +120,6 @@ fun createAction(carContext: CarContext, @DrawableRes iconRes: Int, flag: Int = fun createCarIcon(carContext: CarContext, @DrawableRes iconRes: Int): CarIcon { return CarIcon.Builder(IconCompat.createWithResource(carContext, iconRes)).build() } + + + diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/SearchScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/SearchScreen.kt index 029518d..2136246 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/SearchScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/SearchScreen.kt @@ -14,12 +14,12 @@ import androidx.core.graphics.drawable.IconCompat import androidx.lifecycle.Observer import com.kouros.data.R import com.kouros.navigation.car.SurfaceRenderer -import com.kouros.navigation.car.ViewStyle import com.kouros.navigation.data.Category import com.kouros.navigation.data.Constants.CATEGORIES import com.kouros.navigation.data.Constants.FAVORITES import com.kouros.navigation.data.Constants.RECENT import com.kouros.navigation.data.Place +import com.kouros.navigation.data.ViewStyle import com.kouros.navigation.data.nominatim.SearchResult import com.kouros.navigation.model.NavigationViewModel diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/AudioSettings.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/AudioSettings.kt index 1d6cc45..a5b99d6 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/AudioSettings.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/AudioSettings.kt @@ -13,7 +13,7 @@ import androidx.car.app.model.Template import androidx.core.graphics.drawable.IconCompat import androidx.lifecycle.lifecycleScope import com.kouros.data.R -import com.kouros.navigation.car.navigation.NavigationUtils +import com.kouros.navigation.car.screen.buildRowForTemplate import com.kouros.navigation.utils.getSettingsViewModel import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch @@ -40,19 +40,22 @@ class AudioSettings( val radioList = ItemList.Builder() .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate( + carContext, R.string.muted, R.drawable.volume_off_24px ) ) .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate( + carContext, R.string.unmuted, R.drawable.volume_up_24px, ) ) .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate( + carContext, R.string.alerts_only, R.drawable.warning_24px, ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/CarSettings.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/CarSettings.kt new file mode 100644 index 0000000..6933485 --- /dev/null +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/CarSettings.kt @@ -0,0 +1,77 @@ +package com.kouros.navigation.car.screen.settings + +import androidx.car.app.CarContext +import androidx.car.app.Screen +import androidx.car.app.model.Action +import androidx.car.app.model.Header +import androidx.car.app.model.ItemList +import androidx.car.app.model.ListTemplate +import androidx.car.app.model.SectionedItemList +import androidx.car.app.model.Template +import androidx.lifecycle.lifecycleScope +import com.kouros.data.R +import com.kouros.navigation.car.screen.buildRowForTemplate +import com.kouros.navigation.data.EngineType +import com.kouros.navigation.model.NavigationViewModel +import com.kouros.navigation.utils.getSettingsViewModel +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.launch + +class CarSettings( + private val carContext: CarContext, + private var navigationViewModel: NavigationViewModel +) : + Screen(carContext) { + + private var engineType = EngineType.COMBUSTION.ordinal + + val settingsViewModel = getSettingsViewModel(carContext) + + init { + lifecycleScope.launch { + settingsViewModel.engineType.first() + } + } + override fun onGetTemplate(): Template { + engineType = settingsViewModel.engineType.value + val templateBuilder = ListTemplate.Builder() + val radioList = + ItemList.Builder() + .addItem( + buildRowForTemplate(carContext, + R.string.combustion, + R.drawable.ev_station_24px + ) + ) + .addItem( + buildRowForTemplate(carContext, + R.string.electric, + R.drawable.electric_car_24px + ) + ) + .setOnSelectedListener { index: Int -> + this.onSelected(index) + } + .setSelectedIndex(engineType) + .build() + + return templateBuilder + .addSectionedList( + SectionedItemList.create( + radioList, + carContext.getString(R.string.engine_type) + ) + ) + .setHeader( + Header.Builder() + .setTitle(carContext.getString(R.string.car_settings)) + .setStartHeaderAction(Action.BACK) + .build() + ) + .build() + } + + private fun onSelected(index: Int) { + settingsViewModel.onEngineTypeChanged(index) + } +} diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/DarkModeSettings.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/DarkModeSettings.kt index 9d1bf90..6e72269 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/DarkModeSettings.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/DarkModeSettings.kt @@ -11,7 +11,7 @@ import androidx.car.app.model.SectionedItemList import androidx.car.app.model.Template import androidx.lifecycle.lifecycleScope import com.kouros.data.R -import com.kouros.navigation.car.navigation.NavigationUtils +import com.kouros.navigation.car.screen.buildRowForTemplate import com.kouros.navigation.utils.getSettingsViewModel import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch @@ -34,19 +34,19 @@ class DarkModeSettings(private val carContext: CarContext) : Screen(carContext) val radioList = ItemList.Builder() .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate(carContext, R.string.off_action_title, R.drawable.light_mode_24px ) ) .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate(carContext, R.string.on_action_title, R.drawable.dark_mode_24px ) ) .addItem( - NavigationUtils(carContext).buildRowForTemplate( + buildRowForTemplate(carContext, R.string.use_car_settings, R.drawable.directions_car_24px ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/NavigationSettings.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/NavigationSettings.kt index 5432c99..de4fa1c 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/NavigationSettings.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/NavigationSettings.kt @@ -13,7 +13,7 @@ import androidx.car.app.model.Toggle import androidx.core.graphics.drawable.IconCompat import androidx.lifecycle.lifecycleScope import com.kouros.data.R -import com.kouros.navigation.car.navigation.NavigationUtils +import com.kouros.navigation.car.screen.createCarIcon import com.kouros.navigation.model.NavigationViewModel import com.kouros.navigation.utils.getSettingsViewModel import kotlinx.coroutines.flow.first @@ -62,7 +62,7 @@ class NavigationSettings( buildRowForTemplate( R.string.avoid_highways_row_title, highwayToggle, - NavigationUtils(carContext).createCarIcon(R.drawable.baseline_add_road_24) + createCarIcon(carContext, R.drawable.baseline_add_road_24) ) ) @@ -72,7 +72,7 @@ class NavigationSettings( settingsViewModel.onAvoidTollway(checked) tollWayToggleState = !tollWayToggleState }.setChecked(tollWayToggleState).build() - listBuilder.addItem(buildRowForTemplate(R.string.avoid_tolls_row_title, tollwayToggle, NavigationUtils(carContext).createCarIcon(R.drawable.baseline_toll_24))) + listBuilder.addItem(buildRowForTemplate(R.string.avoid_tolls_row_title, tollwayToggle, createCarIcon(carContext,R.drawable.baseline_toll_24))) // Ferry val ferryToggle: Toggle = @@ -80,7 +80,7 @@ class NavigationSettings( settingsViewModel.onAvoidFerry(checked) ferryToggleState = !ferryToggleState }.setChecked(ferryToggleState).build() - listBuilder.addItem(buildRowForTemplate(R.string.avoid_ferries, ferryToggle, NavigationUtils(carContext).createCarIcon(R.drawable.baseline_directions_boat_filled_24))) + listBuilder.addItem(buildRowForTemplate(R.string.avoid_ferries, ferryToggle, createCarIcon(carContext, R.drawable.baseline_directions_boat_filled_24))) // CarLocation val carLocationToggle: Toggle = @@ -93,7 +93,7 @@ class NavigationSettings( buildRowForTemplate( R.string.use_car_location, carLocationToggle, - NavigationUtils(carContext).createCarIcon(R.drawable.ic_place_white_24dp) + createCarIcon(carContext,R.drawable.ic_place_white_24dp) ) ) diff --git a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/SettingsScreen.kt b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/SettingsScreen.kt index df9efa3..0ff6900 100644 --- a/common/car/src/main/java/com/kouros/navigation/car/screen/settings/SettingsScreen.kt +++ b/common/car/src/main/java/com/kouros/navigation/car/screen/settings/SettingsScreen.kt @@ -85,7 +85,7 @@ class SettingsScreen( ) ) - // Navigation -------------- + // Drive settings -------------- listBuilder = ItemList.Builder() listBuilder.addItem( buildRowForTemplate( @@ -94,10 +94,17 @@ class SettingsScreen( ) ) + listBuilder.addItem( + buildRowForTemplate( + CarSettings(carContext, navigationViewModel), + R.string.car_settings + ) + ) + templateBuilder.addSectionedList( SectionedItemList.create( listBuilder.build(), - carContext.getString(R.string.navigation_settings) + carContext.getString(R.string.drive_settings) ) ) @@ -109,6 +116,8 @@ class SettingsScreen( .setStartHeaderAction(Action.BACK) .build()) .build() + + } private fun getTitle(): String { diff --git a/common/data/src/main/java/com/kouros/navigation/data/Color.kt b/common/data/src/main/java/com/kouros/navigation/data/Color.kt index 7c27b77..7b79ca6 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/Color.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/Color.kt @@ -2,7 +2,9 @@ package com.kouros.navigation.data import androidx.compose.ui.graphics.Color -val NavigationColor = Color(0xFF16BBB6) +val NavigationColorLight = Color(0xFF066462) + +val NavigationColorDark = Color(0xFF10DED9) val RouteColor = Color(0xFF7B06E1) diff --git a/common/data/src/main/java/com/kouros/navigation/data/Data.kt b/common/data/src/main/java/com/kouros/navigation/data/Data.kt index 9f21254..49fdd30 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/Data.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/Data.kt @@ -77,9 +77,10 @@ data class Locations ( ) data class SearchFilter( - var avoidMotorway: Boolean = false, - var avoidTollway : Boolean = false, - var avoidFerry : Boolean = false, + val avoidMotorway: Boolean = false, + val avoidTollway : Boolean = false, + val avoidFerry : Boolean = false, + val engineType : Int = 0, ) @@ -139,11 +140,27 @@ object Constants { const val TILT = 60.0 } +/** + * Enum representing different map view modes. + * - VIEW: Active navigation mode with follow-car camera + * - PREVIEW: Route overview before starting navigation + * - PAN_VIEW: User-controlled map panning + * - AMENITY_VIEW: Displaying POI/amenity locations + */ +enum class ViewStyle { + VIEW, PREVIEW, PAN_VIEW, AMENITY_VIEW + +} enum class RouteEngine { VALHALLA, OSRM, TOMTOM } +enum class EngineType { + COMBUSTION, ELECTRIC +} + + enum class NavigationThemeColor(val color: Long) { RED(0xFFD32F2F), ORANGE(0xFFF57C00), diff --git a/common/data/src/main/java/com/kouros/navigation/data/NavigationRepository.kt b/common/data/src/main/java/com/kouros/navigation/data/NavigationRepository.kt index 56a8a76..2a157c4 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/NavigationRepository.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/NavigationRepository.kt @@ -2,6 +2,7 @@ package com.kouros.navigation.data import android.content.Context import android.location.Location +import android.util.Log import com.kouros.navigation.utils.GeoUtils.calculateSquareRadius import java.net.Authenticator import java.net.HttpURLConnection @@ -66,7 +67,7 @@ abstract class NavigationRepository { } }) } - println(url) + Log.d("fetchUrl", url) val httpURLConnection = URL(url).openConnection() as HttpURLConnection httpURLConnection.setRequestProperty( "Accept", @@ -81,7 +82,7 @@ abstract class NavigationRepository { return response } } catch (e: Exception) { - println("Exception ${e.message}") + Log.e("fetchUrl", e.toString()) } return "" } diff --git a/common/data/src/main/java/com/kouros/navigation/data/Route.kt b/common/data/src/main/java/com/kouros/navigation/data/Route.kt index b0ed13d..895201f 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/Route.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/Route.kt @@ -1,5 +1,6 @@ package com.kouros.navigation.data +import android.util.Log import com.google.gson.GsonBuilder import com.kouros.navigation.data.osrm.OsrmResponse import com.kouros.navigation.data.osrm.OsrmRoute diff --git a/common/data/src/main/java/com/kouros/navigation/data/datastore/DataStoreManager.kt b/common/data/src/main/java/com/kouros/navigation/data/datastore/DataStoreManager.kt index 99840a4..10efc41 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/datastore/DataStoreManager.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/datastore/DataStoreManager.kt @@ -8,6 +8,7 @@ import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore +import com.kouros.navigation.data.EngineType import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map @@ -55,6 +56,8 @@ class DataStoreManager(private val context: Context) { val TRIP_SUGGESTION = booleanPreferencesKey("TripSuggestion") + val ENGINE_TYPE = intPreferencesKey("EngineType") + } // Read values @@ -136,6 +139,12 @@ class DataStoreManager(private val context: Context) { preferences[PreferencesKeys.TRIP_SUGGESTION] == true } + val engineTypeFlow: Flow = + context.dataStore.data.map { preferences -> + preferences[PreferencesKeys.ENGINE_TYPE] + ?: EngineType.COMBUSTION.ordinal + } + // Save values suspend fun setShow3D(enabled: Boolean) { context.dataStore.edit { preferences -> @@ -220,4 +229,10 @@ class DataStoreManager(private val context: Context) { preferences[PreferencesKeys.TRIP_SUGGESTION] = enabled } } + + suspend fun setEngineType(mode: Int) { + context.dataStore.edit { prefs -> + prefs[PreferencesKeys.ENGINE_TYPE] = mode + } + } } diff --git a/common/data/src/main/java/com/kouros/navigation/data/tomtom/TomTomRepository.kt b/common/data/src/main/java/com/kouros/navigation/data/tomtom/TomTomRepository.kt index 5451efa..7c5f5e8 100644 --- a/common/data/src/main/java/com/kouros/navigation/data/tomtom/TomTomRepository.kt +++ b/common/data/src/main/java/com/kouros/navigation/data/tomtom/TomTomRepository.kt @@ -3,6 +3,7 @@ package com.kouros.navigation.data.tomtom import android.content.Context import android.location.Location import com.kouros.data.R +import com.kouros.navigation.data.EngineType import com.kouros.navigation.data.NavigationRepository import com.kouros.navigation.data.SearchFilter import com.kouros.navigation.utils.GeoUtils.calculateSquareRadius @@ -19,9 +20,9 @@ const val tomtomTrafficUrl = "https://api.tomtom.com/traffic/services/5/incident private const val tomtomFields = "{incidents{type,geometry{type,coordinates},properties{iconCategory,events{description}}}}" -const val useLocal = true +const val useLocal = false -const val useLocalTraffic = true +const val useLocalTraffic = false class TomTomRepository : NavigationRepository() { @@ -38,6 +39,7 @@ class TomTomRepository : NavigationRepository() { false ) } + var engineType = "combustion" var filter = "" if (searchFilter.avoidMotorway) { filter = "$filter&avoid=motorways" @@ -48,6 +50,9 @@ class TomTomRepository : NavigationRepository() { if (searchFilter.avoidFerry) { filter = "$filter&avoid=ferries" } + if (searchFilter.engineType == EngineType.ELECTRIC.ordinal) { + engineType = "electric" + } val repository = getSettingsRepository(context) val tomtomApiKey = runBlocking { repository.tomTomApiKeyFlow.first() } val currentLocale = Locale.getDefault() @@ -60,7 +65,7 @@ class TomTomRepository : NavigationRepository() { "&instructionsType=text&language=$language§ionType=lanes" + "&routeRepresentation=encodedPolyline" + "&maxAlternatives=2" + - "&vehicleEngineType=combustion$filter&key=$tomtomApiKey" + "&vehicleEngineType=$engineType$filter&key=$tomtomApiKey" return fetchUrl( url, false diff --git a/common/data/src/main/java/com/kouros/navigation/model/NavigationViewModel.kt b/common/data/src/main/java/com/kouros/navigation/model/NavigationViewModel.kt index f3afdf5..c200c96 100644 --- a/common/data/src/main/java/com/kouros/navigation/model/NavigationViewModel.kt +++ b/common/data/src/main/java/com/kouros/navigation/model/NavigationViewModel.kt @@ -163,7 +163,7 @@ class NavigationViewModel(private val repository: NavigationRepository) : ViewMo } } } - recentPlaces.postValue(pl) + recentPlaces.postValue(pl.sortedBy { it.distance }) } catch (e: Exception) { e.printStackTrace() } @@ -538,7 +538,8 @@ class NavigationViewModel(private val repository: NavigationRepository) : ViewMo val avoidMotorway = runBlocking { repository.avoidMotorwayFlow.first() } val avoidTollway = runBlocking { repository.avoidTollwayFlow.first() } val avoidFerry = runBlocking { repository.avoidFerryFlow.first() } - return SearchFilter(avoidMotorway, avoidTollway, avoidFerry) + val engineType = runBlocking { repository.engineTypeFlow.first() } + return SearchFilter(avoidMotorway, avoidTollway, avoidFerry, engineType) } /** diff --git a/common/data/src/main/java/com/kouros/navigation/model/RouteCalculator.kt b/common/data/src/main/java/com/kouros/navigation/model/RouteCalculator.kt index cbddb81..c5eb723 100644 --- a/common/data/src/main/java/com/kouros/navigation/model/RouteCalculator.kt +++ b/common/data/src/main/java/com/kouros/navigation/model/RouteCalculator.kt @@ -1,6 +1,7 @@ package com.kouros.navigation.model import android.location.Location +import android.util.Log import androidx.car.app.navigation.model.Step import com.kouros.navigation.data.Constants.MAXIMUM_LOCATION_DISTANCE import com.kouros.navigation.data.Constants.NEAREST_LOCATION_DISTANCE diff --git a/common/data/src/main/java/com/kouros/navigation/model/SettingsViewModel.kt b/common/data/src/main/java/com/kouros/navigation/model/SettingsViewModel.kt index 0828beb..20a78cd 100644 --- a/common/data/src/main/java/com/kouros/navigation/model/SettingsViewModel.kt +++ b/common/data/src/main/java/com/kouros/navigation/model/SettingsViewModel.kt @@ -96,6 +96,12 @@ class SettingsViewModel(private val repository: SettingsRepository) : ViewModel( false ) + val engineType = repository.engineTypeFlow.stateIn( + viewModelScope, + SharingStarted.WhileSubscribed(5_000), + 0 + ) + fun onShow3DChanged(enabled: Boolean) { viewModelScope.launch { repository.setShow3D(enabled) } } @@ -148,4 +154,9 @@ class SettingsViewModel(private val repository: SettingsRepository) : ViewModel( fun onTripSuggestion(enabled: Boolean) { viewModelScope.launch { repository.setTripSuggestion(enabled) } } + + fun onEngineTypeChanged(mode: Int) { + viewModelScope.launch { repository.setEngineType(mode) } + } + } diff --git a/common/data/src/main/java/com/kouros/navigation/repository/SettingsRepository.kt b/common/data/src/main/java/com/kouros/navigation/repository/SettingsRepository.kt index 2a8efa5..7469645 100644 --- a/common/data/src/main/java/com/kouros/navigation/repository/SettingsRepository.kt +++ b/common/data/src/main/java/com/kouros/navigation/repository/SettingsRepository.kt @@ -47,6 +47,9 @@ class SettingsRepository( val tripSuggestionFlow: Flow = dataStoreManager.tripSuggestionFlow + val engineTypeFlow: Flow = + dataStoreManager.engineTypeFlow + suspend fun setShow3D(enabled: Boolean) { dataStoreManager.setShow3D(enabled) } @@ -102,4 +105,8 @@ class SettingsRepository( suspend fun setTripSuggestion(enabled: Boolean) { dataStoreManager.setTripSuggestion(enabled) } + + suspend fun setEngineType(mode: Int) { + dataStoreManager.setEngineType(mode) + } } diff --git a/common/data/src/main/java/com/kouros/navigation/utils/NavigationUtils.kt b/common/data/src/main/java/com/kouros/navigation/utils/NavigationUtils.kt index 17f85ea..fa14350 100644 --- a/common/data/src/main/java/com/kouros/navigation/utils/NavigationUtils.kt +++ b/common/data/src/main/java/com/kouros/navigation/utils/NavigationUtils.kt @@ -10,7 +10,6 @@ import com.kouros.navigation.data.osrm.OsrmRepository import com.kouros.navigation.data.tomtom.TomTomRepository import com.kouros.navigation.data.valhalla.ValhallaRepository import com.kouros.navigation.model.NavigationViewModel -import com.kouros.navigation.utils.GeoUtils.calculateSquareRadius import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import java.lang.Math.toDegrees @@ -29,6 +28,8 @@ import kotlin.math.pow import kotlin.math.roundToInt import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds +import kotlin.time.DurationUnit +import kotlin.time.toDuration object NavigationUtils { @@ -50,7 +51,7 @@ fun calculateZoom(speed: Double?): Double { } val speedKmh = (speed * 3.6).toInt() val zoom = when (speedKmh) { - in 0..10 -> 18.0 + in 0..10 -> 17.0 in 11..30 -> 17.5 in 31..65 -> 17.0 in 66..70 -> 16.5 @@ -128,14 +129,20 @@ fun Double.round(numFractionDigits: Int): Double { return (this * factor).roundToInt() / factor } -fun duration(preview: Boolean, bearing: Double, lastBearing: Double): Duration { +fun duration( + preview: Boolean, + bearing: Double, + lastBearing: Double, + lastLocationUpdate: LocalDateTime +): Duration { if (preview) { return 3.seconds } val cameraDuration = if ((lastBearing - bearing).absoluteValue > 20.0) { 2.seconds } else { - 1.seconds + val updateDuration = java.time.Duration.between(LocalDateTime.now(), lastLocationUpdate) + ((updateDuration!!.toMillis().absoluteValue * 1.2).toDuration(DurationUnit.MILLISECONDS)) } return cameraDuration } diff --git a/common/data/src/main/res/values-de/strings.xml b/common/data/src/main/res/values-de/strings.xml index d786a06..7673c57 100644 --- a/common/data/src/main/res/values-de/strings.xml +++ b/common/data/src/main/res/values-de/strings.xml @@ -66,4 +66,9 @@ Allgemein Verkehr anzeigen Fahrten-Vorschläge + Drive settings + Car settings + Combustion + Electric + Engine type diff --git a/common/data/src/main/res/values-el/strings.xml b/common/data/src/main/res/values-el/strings.xml index 33fc688..9cb7f14 100644 --- a/common/data/src/main/res/values-el/strings.xml +++ b/common/data/src/main/res/values-el/strings.xml @@ -50,4 +50,9 @@ Γενικά Εμφάνιση κίνησης Προτάσεις διαδρομής + Drive settings + Car settings + Combustion + Electric + Engine type diff --git a/common/data/src/main/res/values-pl/strings.xml b/common/data/src/main/res/values-pl/strings.xml index 8a45bc3..9338f09 100644 --- a/common/data/src/main/res/values-pl/strings.xml +++ b/common/data/src/main/res/values-pl/strings.xml @@ -50,4 +50,9 @@ Ogólne Pokaż natężenie ruchu Sugestie dotyczące podróży + Drive settings + Car settings + Combustion + Electric + Engine type diff --git a/common/data/src/main/res/values/strings.xml b/common/data/src/main/res/values/strings.xml index f51af49..17e79fb 100644 --- a/common/data/src/main/res/values/strings.xml +++ b/common/data/src/main/res/values/strings.xml @@ -53,4 +53,9 @@ General Show traffic Trip suggestions + Drive settings + Car settings + Combustion + Electric + Engine type \ No newline at end of file