diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8247bdc..baa4f27 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -74,43 +74,62 @@ dependencies { debugImplementation(libs.ui.tooling) debugImplementation(libs.ui.test.manifest) - - //-- Navigation val nav_version = "2.5.3" + // Java language implementation + implementation("androidx.navigation:navigation-fragment:$nav_version") + implementation("androidx.navigation:navigation-ui:$nav_version") + + // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") + + // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") + + // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") + + // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") + val room_version = "2.5.1" + + implementation("androidx.room:room-runtime:$room_version") + annotationProcessor("androidx.room:room-compiler:$room_version") - //-- Room // To use Kotlin annotation processing tool (kapt) //kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) - val room_version = "2.5.1" - ksp("androidx.room:room-compiler:$room_version") - annotationProcessor("androidx.room:room-compiler:$room_version") - implementation("androidx.room:room-runtime:$room_version") + + // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$room_version") + + // optional - RxJava2 support for Room + implementation("androidx.room:room-rxjava2:$room_version") + + // optional - RxJava3 support for Room + implementation("androidx.room:room-rxjava3:$room_version") + + // optional - Guava support for Room, including Optional and ListenableFuture implementation("androidx.room:room-guava:$room_version") + + // optional - Test helpers testImplementation("androidx.room:room-testing:$room_version") + + // optional - Paging 3 Integration implementation("androidx.room:room-paging:$room_version") - - //-- Ktor - val ktor_version = "2.3.1" - implementation("io.ktor:ktor-client-core:$ktor_version") - implementation("io.ktor:ktor-client-cio:$ktor_version") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0") + implementation(platform("dev.forkhandles:forkhandles-bom:2.6.0.0")) implementation("dev.forkhandles:result4k") + implementation("io.ktor:ktor-client-core:2.3.1") implementation("io.ktor:ktor-client-okhttp:2.3.1") - implementation("androidx.security:security-crypto-ktx:1.1.0-alpha06") + implementation("androidx.security:security-crypto-ktx:1.1.0-alpha06") // For Identity Credential APIs implementation("androidx.security:security-identity-credential:1.0.0-alpha03") @@ -125,13 +144,4 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") - //-- Map Compose library - implementation("ovh.plrapps:mapcompose:2.7.1") - - - //-- Glide - implementation("com.github.bumptech.glide:glide:4.14.2") - implementation("com.github.bumptech.glide:compose:1.0.0-alpha.1") - - } \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/MainActivity.kt b/app/src/main/java/ru/nm17/narodmon/MainActivity.kt index fb62ffc..4a14373 100644 --- a/app/src/main/java/ru/nm17/narodmon/MainActivity.kt +++ b/app/src/main/java/ru/nm17/narodmon/MainActivity.kt @@ -1,4 +1,6 @@ - +@file:OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3Api::class, + ExperimentalMaterial3Api::class +) package ru.nm17.narodmon @@ -23,44 +25,74 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController import androidx.room.Room +import androidx.security.crypto.EncryptedSharedPreferences +import androidx.security.crypto.MasterKeys import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import ru.nm17.narodmon.db.AppDatabase import ru.nm17.narodmon.db.entities.KVSetting -import ru.nm17.narodmon.ui.dialogs.AgreementDialog -import ru.nm17.narodmon.ui.navHost.AppNavHost +import ru.nm17.narodmon.ui.elements.AgreementDialog +import ru.nm17.narodmon.ui.pages.SensorsPage import ru.nm17.narodmon.ui.theme.NarodMonTheme +@Composable +fun AppNavHost() { + val navController = rememberNavController() + val coScope = rememberCoroutineScope() + + + + NavHost(navController = navController, startDestination = "sensors") { + composable("agreement") { + + } + composable("sensors") { + + SensorsPage(navController) + } + + /*...*/ + } +} + class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val db = Room.databaseBuilder( applicationContext, AppDatabase::class.java, "data" ).build() -// val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) -// -// val sharedPreferences = EncryptedSharedPreferences.create( -// "secret_shared_prefs", -// masterKeyAlias, -// createDeviceProtectedStorageContext(), -// EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, -// EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM -// ) + val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) + + val sharedPreferences = EncryptedSharedPreferences.create( + "secret_shared_prefs", + masterKeyAlias, + createDeviceProtectedStorageContext(), + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) // use the shared preferences and editor as you normally would // use the shared preferences and editor as you normally would -// val credSharedPreferences = sharedPreferences + val credSharedPreferences = sharedPreferences + + setContent { val coScope = rememberCoroutineScope() + //var asd = getPreferences() NarodMonTheme { @@ -93,15 +125,44 @@ class MainActivity : ComponentActivity() { Text(text = stringResource(R.string.waiting_for_user_agreement)) } } + } else { AppNavHost() } + + + + // A surface container using the 'background' color from the theme + + + + } } } } + + +@Composable +fun Greeting(name: String, modifier: Modifier = Modifier) { + Text( + text = "Hello $name!", + modifier = modifier + ) +} + @Composable fun NavHolderEl() { //NavHost(navController = NavHostController(N), graph =) } + + + +@Preview(showBackground = true) +@Composable +fun GreetingPreview() { + NarodMonTheme { + Greeting("Android") + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/client.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/client.kt index d3a4fe8..ec594fe 100644 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/client.kt +++ b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/client.kt @@ -16,10 +16,8 @@ import io.ktor.http.headers import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn -import kotlinx.coroutines.flow.take import kotlinx.datetime.Clock import kotlinx.serialization.Serializable import kotlinx.serialization.SerializationException @@ -122,7 +120,7 @@ class Client private constructor( val client = this.httpClient1Min return flow> { - val resp = this@Client.httpClient1Min.take(1).first().post("https://narodmon.ru/api") { + val resp = client.post("https://narodmon.ru/api") { contentType(ContentType.Application.Json) setBody( getJSONRequestBody("appInit", request) @@ -134,7 +132,7 @@ class Client private constructor( }.flowOn(Dispatchers.IO) } - /*public fun jjhgjhg(request: AppInitRequest): Flow> { + public fun appInit(request: AppInitRequest): Flow> { val client = this.httpClient1Min return flow> { @@ -149,5 +147,5 @@ class Client private constructor( }.flowOn(Dispatchers.IO) - }*/ + } } \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/SensorEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/SensorEntity.kt deleted file mode 100644 index 438c953..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/SensorEntity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities - - -data class SensorEntity( - val changed: Int, - val fav: Int, - val id: Int, - val mac: String, - val name: String, - val pub: Int, - val time: Int, - val trend: Int, - val type: Int, - val unit: String, - val value: Double -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeRequestEntity.kt deleted file mode 100644 index a755a22..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeRequestEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.addLike - -data class AddLikeRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeResponseEntity.kt deleted file mode 100644 index a70ff7e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/addLike/AddLikeResponseEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.addLike - -data class AddLikeResponseEntity( - val id: Int, - val liked: Int, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitRequestEntity.kt deleted file mode 100644 index 85c311f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitRequestEntity.kt +++ /dev/null @@ -1,11 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.appInit - -data class AppInitRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val platform: String, - val utc: Int, - val uuid: String, - val version: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitResponseEntity.kt deleted file mode 100644 index 563bc0b..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitResponseEntity.kt +++ /dev/null @@ -1,14 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.appInit - -data class AppInitResponseEntity( - val addr: String, - val favorites: List, - val lat: Double, - val latest: String, - val login: String, - val lon: Double, - val timestamp: Int, - val types: List, - val url: String, - val vip: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitTypeEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitTypeEntity.kt deleted file mode 100644 index d04303b..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/appInit/AppInitTypeEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.appInit - -data class AppInitTypeEntity( - val name: String, - val type: Int, - val unit: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/bugReport/BugReportRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/bugReport/BugReportRequestEntity.kt deleted file mode 100644 index bb3fabb..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/bugReport/BugReportRequestEntity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.bugReport - -data class BugReportRequestEntity( - val api_key: String, - val cmd: String, - val email: String, - val logs: String, - val mess: String, - val name: String, - val time: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeRequestEntity.kt deleted file mode 100644 index 0066457..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeRequestEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.disLike - -data class DisLikeRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeResponseEntity.kt deleted file mode 100644 index 4d863e2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/disLike/DisLikeResponseEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.disLike - -data class DisLikeResponseEntity( - val id: Int, - val liked: Int, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsDeviceEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsDeviceEntity.kt deleted file mode 100644 index cab15fa..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsDeviceEntity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.mapBounds - -data class MapBoundsDeviceEntity( - val id: Int, - val lat: Double, - val lon: Double, - val name: String, - val time: Int, - val type: Int, - val unit: String, - val value: Double -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsRequestEntity.kt deleted file mode 100644 index 14b1dad..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsRequestEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.mapBounds - -data class MapBoundsRequestEntity( - val api_key: String, - val bounds: List, - val cmd: String, - val lang: String, - val limit: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsResponseEntity.kt deleted file mode 100644 index b14d742..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsResponseEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.mapBounds - -data class MapBoundsResponseEntity( - val devices: List, - val webcams: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsWebcamEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsWebcamEntity.kt deleted file mode 100644 index 3a3f613..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/mapBounds/MapBoundsWebcamEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.mapBounds - -data class MapBoundsWebcamEntity( - val id: Int, - val image: String, - val lat: Double, - val lon: Double, - val name: String, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/nameSensor/NameSensorRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/nameSensor/NameSensorRequestEntity.kt deleted file mode 100644 index 3dc5ebe..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/nameSensor/NameSensorRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.nameSensor - -data class NameSensorRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val name: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorRequestEntity.kt deleted file mode 100644 index 024c610..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorRequestEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.pubSensor - -data class PubSensorRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorResponseEntity.kt deleted file mode 100644 index ea4a731..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/pubSensor/PubSensorResponseEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.pubSensor - -data class PubSensorResponseEntity( - val code: Int, - val id: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendCommand/SendCommandRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendCommand/SendCommandRequestEntity.kt deleted file mode 100644 index a57b0ca..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendCommand/SendCommandRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sendCommand - -data class SendCommandRequestEntity( - val api_key: String, - val cmd: String, - val command: String, - val id: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendComplaint/SendComplaintRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendComplaint/SendComplaintRequestEntity.kt deleted file mode 100644 index ea19abe..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendComplaint/SendComplaintRequestEntity.kt +++ /dev/null @@ -1,13 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sendComplaint - -data class SendComplaintRequestEntity( - val api_key: String, - val cmd: String, - val email: String, - val id: Int, - val name: String, - val problem: String, - val time: Int, - val uuid: String, - val value: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendMessage/SendMessageRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendMessage/SendMessageRequestEntity.kt deleted file mode 100644 index 376e59e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sendMessage/SendMessageRequestEntity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sendMessage - -data class SendMessageRequestEntity( - val api_key: String, - val cmd: String, - val email: String, - val mess: String, - val name: String, - val subj: String, - val uid: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistoryDataEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistoryDataEntity.kt deleted file mode 100644 index 5b8d10b..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistoryDataEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsHistory - -data class HistoryDataEntity( - val id: Int, - val time: Int, - val value: Double -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistorySensorEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistorySensorEntity.kt deleted file mode 100644 index 9552e72..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/HistorySensorEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsHistory - -data class HistorySensorEntity( - val id: Int, - val name: String, - val type: Int, - val unit: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryRequestEntity.kt deleted file mode 100644 index ae1cd97..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryRequestEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsHistory - -data class SensorsHistoryRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val offset: Int, - val period: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryResponseEntity.kt deleted file mode 100644 index d3290de..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsHistory/SensorsHistoryResponseEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsHistory - -data class SensorsHistoryResponseEntity( - val `data`: List, - val sensors: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/NearbyDeviceEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/NearbyDeviceEntity.kt deleted file mode 100644 index 3966c5b..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/NearbyDeviceEntity.kt +++ /dev/null @@ -1,19 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsNearby - -import ru.nm17.narodmon.appNarodMonApiClient.entities.SensorEntity - - -data class NearbyDeviceEntity( - val cmd: Int, - val distance: Double, - val id: Int, - val lat: Double, - val location: String, - val lon: Double, - val mac: String, - val my: Int, - val name: String, - val owner: String, - val sensors: List, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyRequestEntity.kt deleted file mode 100644 index 3f7b7a8..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyRequestEntity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsNearby - -data class SensorsNearbyRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val lat: Double, - val lon: Double, - val radius: Int, - val types: List, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyResponseEntity.kt deleted file mode 100644 index 1417fa2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsNearby/SensorsNearbyResponseEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsNearby - -data class SensorsNearbyResponseEntity( - val devices: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorOnDeviceEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorOnDeviceEntity.kt deleted file mode 100644 index 3c223f2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorOnDeviceEntity.kt +++ /dev/null @@ -1,19 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsOnDevice - -import ru.nm17.narodmon.ui.entities.SensorEntity - -data class SensorOnDeviceEntity( - val cmd: Int, - val distance: Double, - val id: Int, - val info: String, - val location: String, - val mac: String, - val my: Int, - val name: String, - val owner: String, - val photo: String, - val sensors: List, - val site: String, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceRequestEntity.kt deleted file mode 100644 index 1c9a0ca..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsOnDevice - -data class SensorsOnDeviceRequestEntity( - val api_key: String, - val cmd: String, - val devices: List, - val lang: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceResponseEntity.kt deleted file mode 100644 index 7ca1537..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsOnDevice/SensorsOnDeviceResponseEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsOnDevice - -data class SensorsOnDeviceResponseEntity( - val devices: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorValueEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorValueEntity.kt deleted file mode 100644 index 2a26c28..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorValueEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsValues - -data class SensorValueEntity( - val changed: Int, - val id: Int, - val time: Int, - val trend: Int, - val type: Int, - val value: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesRequestEntity.kt deleted file mode 100644 index 1d0315f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesRequestEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsValues - -data class SensorsValuesRequestEntity( - val api_key: String, - val cmd: String, - val sensors: List, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesResponseEntity.kt deleted file mode 100644 index 36242aa..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/sensorsValues/SensorsValuesResponseEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.sensorsValues - -data class SensorsValuesResponseEntity( - val sensors: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteSensorEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteSensorEntity.kt deleted file mode 100644 index 6bb7817..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteSensorEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userFavorites - -data class FavoriteSensorEntity( - val id: Int, - val name: String, - val time: Int, - val type: Int, - val value: Double -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteWebcamEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteWebcamEntity.kt deleted file mode 100644 index 68157b6..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/FavoriteWebcamEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userFavorites - -data class FavoriteWebcamEntity( - val id: Int, - val image: String, - val name: String, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesRequestEntity.kt deleted file mode 100644 index a5a536f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesRequestEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userFavorites - -data class UserFavoritesRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val sensors: List, - val uuid: String, - val webcams: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesResponseEntity.kt deleted file mode 100644 index 8371cfc..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userFavorites/UserFavoritesResponseEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userFavorites - -data class UserFavoritesResponseEntity( - val sensors: List, - val webcams: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/CellEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/CellEntity.kt deleted file mode 100644 index a5e1a74..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/CellEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class CellEntity( - val bssid: String, - val rssi: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByAddrRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByAddrRequestEntity.kt deleted file mode 100644 index aacfd3a..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByAddrRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class UserLocationByAddrRequestEntity( - val addr: String, - val api_key: String, - val cmd: String, - val lang: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCellRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCellRequestEntity.kt deleted file mode 100644 index 8c61a53..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCellRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class UserLocationByCellRequestEntity( - val api_key: String, - val cells: List, - val cmd: String, - val lang: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCoordRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCoordRequestEntity.kt deleted file mode 100644 index 48e8b4c..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByCoordRequestEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class UserLocationByCoordRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val lat: Double, - val lon: Double, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByWifiRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByWifiRequestEntity.kt deleted file mode 100644 index 5c76ca2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationByWifiRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class UserLocationByWifiRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val uuid: String, - val wifi: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationResponseEntity.kt deleted file mode 100644 index aeddce1..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/UserLocationResponseEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class UserLocationResponseEntity( - val addr: String, - val lat: Double, - val lon: Double -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/WifiEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/WifiEntity.kt deleted file mode 100644 index 6ea7e0b..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLocation/WifiEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLocation - -data class WifiEntity( - val bssid: String, - val rssi: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonRequestEntity.kt deleted file mode 100644 index b3a08c6..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonRequestEntity.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLogon - -data class UserLogonRequestEntity( - val api_key: String, - val cmd: String, - val hash: String, - val lang: String, - val login: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonResponseEntity.kt deleted file mode 100644 index c93ba41..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogon/UserLogonResponseEntity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLogon - -data class UserLogonResponseEntity( - val login: String, - val tz: Int, - val uid: Int, - val vip: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutRequestEntity.kt deleted file mode 100644 index 995411d..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutRequestEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLogout - -data class UserLogoutRequestEntity( - val api_key: String, - val cmd: String, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutResponseEntity.kt deleted file mode 100644 index 6a9974e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/userLogout/UserLogoutResponseEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.userLogout - -data class UserLogoutResponseEntity( - val login: String, - val uid: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportRequestEntity.kt deleted file mode 100644 index 2536fa5..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportRequestEntity.kt +++ /dev/null @@ -1,14 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.weatherReport - -data class WeatherReportRequestEntity( - val api_key: String, - val cmd: String, - val humid: String, - val lang: String, - val lat: Double, - val lon: Double, - val press: String, - val temp: String, - val uuid: String, - val wind: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportResponseEntity.kt deleted file mode 100644 index 2d2ea8a..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/weatherReport/WeatherReportResponseEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.weatherReport - -data class WeatherReportResponseEntity( - val result: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImageEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImageEntity.kt deleted file mode 100644 index 17b1dd9..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImageEntity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamImages - -data class WebcamImageEntity( - val image: String, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesRequestEntity.kt deleted file mode 100644 index df1565e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesRequestEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamImages - -data class WebcamImagesRequestEntity( - val api_key: String, - val cmd: String, - val id: Int, - val limit: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesResponseEntity.kt deleted file mode 100644 index a94d70f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamImages/WebcamImagesResponseEntity.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamImages - -data class WebcamImagesResponseEntity( - val distance: Double, - val id: Int, - val images: List, - val location: String, - val name: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamNearbyEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamNearbyEntity.kt deleted file mode 100644 index 146a9b4..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamNearbyEntity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamsNearby - -data class WebcamNearbyEntity( - val distance: Double, - val fav: Int, - val id: Int, - val image: String, - val lat: Double, - val location: String, - val lon: Double, - val my: Int, - val name: String, - val owner: String, - val time: Int -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsNearbyRequestEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsNearbyRequestEntity.kt deleted file mode 100644 index cab52b4..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsNearbyRequestEntity.kt +++ /dev/null @@ -1,11 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamsNearby - -data class WebcamsNearbyRequestEntity( - val api_key: String, - val cmd: String, - val lang: String, - val lat: Double, - val lon: Double, - val radius: Int, - val uuid: String -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsResponseEntity.kt b/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsResponseEntity.kt deleted file mode 100644 index f766e9c..0000000 --- a/app/src/main/java/ru/nm17/narodmon/appNarodMonApiClient/entities/webcamsNearby/WebcamsResponseEntity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package ru.nm17.narodmon.appNarodMonApiClient.entities.webcamsNearby - -data class WebcamsResponseEntity( - val webcams: List -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/Font.kt b/app/src/main/java/ru/nm17/narodmon/ui/Font.kt deleted file mode 100644 index a1c20f0..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/Font.kt +++ /dev/null @@ -1,10 +0,0 @@ -package ru.nm17.narodmon.ui - -import androidx.compose.ui.text.font.Font -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import ru.nm17.narodmon.R - -val iosevkaFamily = FontFamily( - Font(R.font.iosevka, FontWeight.Medium) -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/Utils.kt b/app/src/main/java/ru/nm17/narodmon/ui/Utils.kt deleted file mode 100644 index 7b20986..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/Utils.kt +++ /dev/null @@ -1,9 +0,0 @@ -package ru.nm17.narodmon.ui - -fun String.toChipTitle(): String { - return if (length >= 20) { - this.slice(0..16) + ".." - } else { - this - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/FilterSensorsDialog.kt b/app/src/main/java/ru/nm17/narodmon/ui/dialogs/FilterSensorsDialog.kt deleted file mode 100644 index cd07cff..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/FilterSensorsDialog.kt +++ /dev/null @@ -1,127 +0,0 @@ -package ru.nm17.narodmon.ui.dialogs - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.heightIn -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material3.AlertDialog -import androidx.compose.material3.AlertDialogDefaults -import androidx.compose.material3.Button -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import ru.nm17.narodmon.R -import ru.nm17.narodmon.ui.elements.FilterCheckbox -import ru.nm17.narodmon.ui.entities.SensorFilterUiEntity -import ru.nm17.narodmon.ui.theme.NarodMonTheme - -@OptIn(ExperimentalMaterial3Api::class) -@Composable -fun FilterSensorsDialog( - onApply: (filters: List) -> Unit, - onDismissRequest: () -> Unit -) { - val filterItems = remember { - listOf( - /* TODO: - * Заменить `code` на настоящее значение - * либо динамически его подгружать из ответа АПИ - * (см. /appInit, ключ в жсоне: types.type) */ - SensorFilterUiEntity(R.string.filter_temp, 0), - SensorFilterUiEntity(R.string.filter_temp_water, 1), - SensorFilterUiEntity(R.string.filter_temp_ground, 2), - SensorFilterUiEntity(R.string.filter_temp_dew_point, 3), - SensorFilterUiEntity(R.string.filter_humidity, 4), - SensorFilterUiEntity(R.string.filter_pressure, 5), - SensorFilterUiEntity(R.string.filter_lightness, 6), - SensorFilterUiEntity(R.string.filter_uv, 7), - SensorFilterUiEntity(R.string.filter_radiation, 8), - SensorFilterUiEntity(R.string.filter_rainfall, 9), - SensorFilterUiEntity(R.string.filter_dust, 10), - SensorFilterUiEntity(R.string.filter_wind_speed, 11), - SensorFilterUiEntity(R.string.filter_wind_direction, 12), - SensorFilterUiEntity(R.string.filter_concentration, 13), - SensorFilterUiEntity(R.string.filter_power, 14), - SensorFilterUiEntity(R.string.filter_voltage, 15), - SensorFilterUiEntity(R.string.filter_amperage, 16), - SensorFilterUiEntity(R.string.filter_energy, 17), - SensorFilterUiEntity(R.string.filter_battery, 18), - SensorFilterUiEntity(R.string.filter_rxtx, 19), - SensorFilterUiEntity(R.string.filter_signal, 20), - SensorFilterUiEntity(R.string.filter_water_meter, 21), - SensorFilterUiEntity(R.string.filter_time, 22), - ) - } - - - AlertDialog( - onDismissRequest = { - onDismissRequest.invoke() - }) { - Surface( - shape = MaterialTheme.shapes.large, - tonalElevation = AlertDialogDefaults.TonalElevation - ) { - Column(modifier = Modifier.padding(vertical = 16.dp)) { - Text( - text = stringResource(id = R.string.sensors_filter_title), - style = MaterialTheme.typography.titleLarge, - textAlign = TextAlign.Center, - modifier = Modifier - .padding(horizontal = 16.dp) - .fillMaxWidth() - ) - LazyColumn( - modifier = Modifier - .fillMaxWidth() - .heightIn(128.dp, 312.dp) - .padding(horizontal = 4.dp), - ) { - items(filterItems) { - FilterCheckbox( - checked = it.enabled.value, - stringRes = it.stringRes, - ) { it.enabled.value = !it.enabled.value } - } - } - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.End - ) { - TextButton(onClick = { onDismissRequest.invoke() }) { - Text(text = "Отмена") - } - Spacer(modifier = Modifier.padding(horizontal = 8.dp)) - Button(onClick = { onApply.invoke(filterItems) }) { - Text(text = stringResource(id = R.string.apply)) - } - } - } - - } - } -} - -@Preview -@Composable -fun PreviewFilterSensorsDialog() { - NarodMonTheme { - FilterSensorsDialog({}) {} - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/SortSensorsDialog.kt b/app/src/main/java/ru/nm17/narodmon/ui/dialogs/SortSensorsDialog.kt deleted file mode 100644 index eb0f74e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/SortSensorsDialog.kt +++ /dev/null @@ -1,122 +0,0 @@ -package ru.nm17.narodmon.ui.dialogs - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material3.AlertDialog -import androidx.compose.material3.AlertDialogDefaults -import androidx.compose.material3.Button -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import ru.nm17.narodmon.R -import ru.nm17.narodmon.ui.elements.FilterRadioButton -import ru.nm17.narodmon.ui.entities.SensorSortingUiEntity -import ru.nm17.narodmon.ui.entities.SortingTypes -import ru.nm17.narodmon.ui.theme.NarodMonTheme - -@OptIn(ExperimentalMaterial3Api::class) -@Composable -fun SortSensorsDialog( - selected: SensorSortingUiEntity, - sortingTypes: List? = null, - onApply: (sortingType: SensorSortingUiEntity) -> Unit, - onDismissRequest: () -> Unit -) { - var selectedType by remember { - mutableStateOf(selected) - } - val sensorsSortingTypes = listOf( - SensorSortingUiEntity(R.string.sort_by_name, SortingTypes.NAME), - SensorSortingUiEntity(R.string.sort_by_name_desc, SortingTypes.NAME_DESC), - SensorSortingUiEntity(R.string.sort_by_distance, SortingTypes.DISTANCE), - SensorSortingUiEntity(R.string.sort_by_distance_desc, SortingTypes.DISTANCE_DESC), - SensorSortingUiEntity(R.string.sort_by_type, SortingTypes.TYPE), - SensorSortingUiEntity(R.string.sort_by_type_desc, SortingTypes.TYPE_DESC), - SensorSortingUiEntity(R.string.sort_update_time, SortingTypes.UPD_TIME), - ) - - - - - AlertDialog( - onDismissRequest = { - onDismissRequest.invoke() - }) { - Surface( - modifier = Modifier - .wrapContentWidth() - .wrapContentHeight(), - shape = MaterialTheme.shapes.large, - tonalElevation = AlertDialogDefaults.TonalElevation - ) { - Column(modifier = Modifier.padding(vertical = 16.dp)) { - Text( - text = stringResource(id = R.string.sensors_sort_title), - style = MaterialTheme.typography.titleLarge, - textAlign = TextAlign.Center, - modifier = Modifier - .padding(horizontal = 16.dp) - .fillMaxWidth() - ) - LazyColumn( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 4.dp), - ) { - items(sortingTypes ?: sensorsSortingTypes) { - FilterRadioButton( - selected = (selectedType == it), - onClick = { selectedType = it }, - stringRes = it.stringRes, - ) - } - } - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalArrangement = Arrangement.End - ) { - TextButton(onClick = { onDismissRequest.invoke() }) { - Text(text = "Отмена") - } - Spacer(modifier = Modifier.padding(horizontal = 8.dp)) - Button(onClick = { onApply.invoke(selectedType) }) { - Text(text = stringResource(id = R.string.apply)) - } - } - } - - } - } -} - -@Preview -@Composable -fun SortSensorsPreview() { - NarodMonTheme { - SortSensorsDialog( - SensorSortingUiEntity(R.string.sort_by_distance, SortingTypes.DISTANCE), - onApply = {}) {} - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/AgreementDialog.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/AgreementDialog.kt similarity index 89% rename from app/src/main/java/ru/nm17/narodmon/ui/dialogs/AgreementDialog.kt rename to app/src/main/java/ru/nm17/narodmon/ui/elements/AgreementDialog.kt index 0daf706..c50a53f 100644 --- a/app/src/main/java/ru/nm17/narodmon/ui/dialogs/AgreementDialog.kt +++ b/app/src/main/java/ru/nm17/narodmon/ui/elements/AgreementDialog.kt @@ -1,7 +1,10 @@ @file:OptIn(ExperimentalMaterial3Api::class) -package ru.nm17.narodmon.ui.dialogs +package ru.nm17.narodmon.ui.elements +import android.content.Context +import android.content.Intent +import android.net.Uri import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding @@ -19,13 +22,12 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import androidx.activity.ComponentActivity import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.tooling.preview.Preview +import androidx.core.content.ContextCompat.startActivity import ru.nm17.narodmon.R -import ru.nm17.narodmon.ui.theme.NarodMonTheme import kotlin.system.exitProcess -@OptIn(ExperimentalMaterial3Api::class) @Composable fun AgreementDialog(modifier: Modifier = Modifier, onClick: () -> Unit) { val uriHandler = LocalUriHandler.current @@ -38,7 +40,7 @@ fun AgreementDialog(modifier: Modifier = Modifier, onClick: () -> Unit) { Text(text = stringResource(id = R.string.agreement_dialog_text)) Divider(Modifier.padding(vertical = 8.dp)) ListItem( - headlineContent = { + headlineText = { Text( text = stringResource(id = R.string.privacy_policy), style = MaterialTheme.typography.titleSmall @@ -54,7 +56,7 @@ fun AgreementDialog(modifier: Modifier = Modifier, onClick: () -> Unit) { ) ListItem( - headlineContent = { + headlineText = { Text( text = stringResource(id = R.string.user_agreement), style = MaterialTheme.typography.titleSmall @@ -85,14 +87,4 @@ fun AgreementDialog(modifier: Modifier = Modifier, onClick: () -> Unit) { modifier = modifier ) -} - -@Preview -@Composable -fun PreviewAgreementDialog(){ - NarodMonTheme { - AgreementDialog { - - } - } } \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterCheckbox.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterCheckbox.kt deleted file mode 100644 index 5f39e69..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterCheckbox.kt +++ /dev/null @@ -1,31 +0,0 @@ -package ru.nm17.narodmon.ui.elements - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material3.Checkbox -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource - -@ExperimentalMaterial3Api -@Composable -fun FilterCheckbox(checked: Boolean, stringRes: Int, onCheckedChange: () -> Unit) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .fillMaxWidth() - .clickable { onCheckedChange() } - ) { - Checkbox( - checked = checked, - onCheckedChange = { onCheckedChange() }, - ) - Text( - text = stringResource(id = stringRes), - ) - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterRadioButton.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterRadioButton.kt deleted file mode 100644 index 86d90a4..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/FilterRadioButton.kt +++ /dev/null @@ -1,29 +0,0 @@ -package ru.nm17.narodmon.ui.elements - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.RadioButton -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource - -@ExperimentalMaterial3Api -@Composable -fun FilterRadioButton(selected: Boolean, onClick: () -> Unit, stringRes: Int) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .fillMaxWidth() - .clickable { onClick.invoke() } - ) { - RadioButton( - selected = selected, - onClick = onClick, - ) - Text(text = stringResource(id = stringRes)) - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/Scaffolds.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/Scaffolds.kt index 0c09c86..72709c1 100644 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/Scaffolds.kt +++ b/app/src/main/java/ru/nm17/narodmon/ui/elements/Scaffolds.kt @@ -47,7 +47,7 @@ import kotlinx.coroutines.launch @Composable fun GenericNavScaffold(title: @Composable () -> Unit, content: @Composable (PaddingValues) -> Unit) { val expanded = rememberDrawerState(initialValue = DrawerValue.Closed) - val coScope = rememberCoroutineScope() + val coScope = rememberCoroutineScope(); val navController = rememberNavController() // TODO: Используй меня LaunchedEffect(key1 = Unit) { @@ -60,7 +60,7 @@ fun GenericNavScaffold(title: @Composable () -> Unit, content: @Composable (Padd leadingContent = { Icon(Icons.Default.AccountCircle, contentDescription = "") }, - headlineContent = { Text(text = "Гость", style = MaterialTheme.typography.titleLarge)}, + headlineText = { Text(text = "Гость", style = MaterialTheme.typography.titleLarge)}, modifier = Modifier.height(72.dp) ) Divider() @@ -75,27 +75,29 @@ fun GenericNavScaffold(title: @Composable () -> Unit, content: @Composable (Padd } }) { Scaffold( - topBar = { - TopAppBar( - title = title, - colors = TopAppBarDefaults.largeTopAppBarColors( - containerColor = MaterialTheme.colorScheme.primaryContainer - ), - navigationIcon = { - IconButton(onClick = { coScope.launch { expanded.open() } }) { - Icon(Icons.Filled.Menu, contentDescription = null) - } - }, + topBar = { + TopAppBar( + title = title, + colors = TopAppBarDefaults.largeTopAppBarColors( + containerColor = MaterialTheme.colorScheme.primaryContainer + ), + navigationIcon = { + IconButton(onClick = { coScope.launch { expanded.open() } }) { + Icon(Icons.Filled.Menu, contentDescription = null) + } + }, + ) + }, + floatingActionButtonPosition = FabPosition.End, + floatingActionButton = { + FloatingActionButton(onClick = {}) { + Icon(imageVector = Icons.Default.Add, contentDescription = "fab icon") + } + }, + //drawerContent = { Text(text = "Drawer Menu 1") }, + content = content, + ) - }, - floatingActionButtonPosition = FabPosition.End, - floatingActionButton = { - FloatingActionButton(onClick = {}) { - Icon(imageVector = Icons.Default.Add, contentDescription = "fab icon") - } - }, - //drawerContent = { Text(text = "Drawer Menu 1") }, - content = content, - ) } + } \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/SensorItem.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/SensorItem.kt deleted file mode 100644 index 8662d3f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/SensorItem.kt +++ /dev/null @@ -1,56 +0,0 @@ -package ru.nm17.narodmon.ui.elements - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.material3.ElevatedCard -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.ListItem -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.RectangleShape -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import ru.nm17.narodmon.ui.entities.SensorEntity -import ru.nm17.narodmon.ui.iosevkaFamily - -@ExperimentalMaterial3Api -@Composable -fun SensorItem(sensorEntity: SensorEntity) { - ListItem( - overlineContent = { Text(text = "${sensorEntity.deviceName} от ${sensorEntity.deviceOwner}") }, - headlineContent = { Text(text = sensorEntity.type.name) }, - supportingContent = { Text(text = sensorEntity.name) }, - trailingContent = { - Column( - horizontalAlignment = Alignment.End, - ) { - Text(text = "${sensorEntity.distance} km") - Spacer(modifier = Modifier.size(2.dp)) - ElevatedCard( - shape = RectangleShape, - ) { - Text( - text = "${sensorEntity.value} ${sensorEntity.unit}", - fontFamily = iosevkaFamily, - fontWeight = FontWeight.Medium, - fontSize = 14.sp, - modifier = Modifier.padding(horizontal = 3.dp, vertical = 1.dp) - ) - } - } - } - ) -} - -@OptIn(ExperimentalMaterial3Api::class) -@Preview -@Composable -fun PreviewSensorItem() { -// SensorItem(SensorEntity(0, Se)) -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt deleted file mode 100644 index daf382f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt +++ /dev/null @@ -1,50 +0,0 @@ -package ru.nm17.narodmon.ui.elements - -import androidx.annotation.StringRes -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.material3.Icon -import androidx.compose.material3.Switch -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import ru.nm17.narodmon.R - -/** - * Кнопка, которая нужна для настроек. - * @param titleId Id заголовка кнопки - * @param leadingItem Заполнить, когда нужно вставить Composable перед заголовком(например [Icon], [FilterCheckbox] или [Switch] - */ -@Composable -fun SettingsItem( - @StringRes titleId: Int, - leadingItem: @Composable (() -> Unit)? = null, - onClick: () -> Unit = {} -) { - Row(modifier = Modifier.padding(16.dp)) { - if (leadingItem != null) { - leadingItem.invoke() - Spacer(modifier = Modifier.size(16.dp)) - } - Column(modifier = Modifier - .fillMaxWidth() - .clickable { onClick.invoke() }) { - Text(text = stringResource(id = titleId)) - } - } - -} - -@Preview(showBackground = true) -@Composable -fun PreviewSettingsItem() { - SettingsItem(R.string.about_app) {} -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/TileMap.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/TileMap.kt deleted file mode 100644 index 15f479d..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/elements/TileMap.kt +++ /dev/null @@ -1,61 +0,0 @@ -package ru.nm17.narodmon.ui.elements - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import io.ktor.client.HttpClient -import io.ktor.client.engine.okhttp.OkHttp -import io.ktor.client.request.get -import io.ktor.client.statement.bodyAsChannel -import io.ktor.utils.io.jvm.javaio.toInputStream -import ovh.plrapps.mapcompose.api.addLayer -import ovh.plrapps.mapcompose.api.onTouchDown -import ovh.plrapps.mapcompose.api.scale -import ovh.plrapps.mapcompose.api.setScroll -import ovh.plrapps.mapcompose.core.TileStreamProvider -import ovh.plrapps.mapcompose.ui.MapUI -import ovh.plrapps.mapcompose.ui.state.MapState -import java.io.InputStream - -const val mapSize = 32768 - -val client = HttpClient(OkHttp) -val tileStreamProvider = TileStreamProvider { row, col, zoom -> - requestTile(row, col, zoom) -} - -suspend fun requestTile(row: Int, col: Int, zoom: Int): InputStream { - val response = client.get("https://tile.openstreetmap.org/${zoom}/${col}/${row}.png") - return response.bodyAsChannel().toInputStream() -} - -@Composable -fun TileMap(modifier: Modifier = Modifier, onTap: () -> Unit) { - val state by remember { - mutableStateOf( - MapState( - levelCount = 8, - fullWidth = mapSize, - fullHeight = mapSize, - workerCount = 16, - ).apply { - addLayer(tileStreamProvider) - onTouchDown { - onTap.invoke() - } - } - ) - } - - LaunchedEffect(state) { - // TODO: Подгружать сохранённую позицию - state.setScroll(Offset(28702.6F, 14787.6F)) - state.scale = 1.4658884F - } - - MapUI(modifier = modifier, state = state) -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorEntity.kt b/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorEntity.kt deleted file mode 100644 index 84aeb23..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorEntity.kt +++ /dev/null @@ -1,21 +0,0 @@ -package ru.nm17.narodmon.ui.entities - -import ru.nm17.narodmon.db.entities.SensorType - - -data class SensorEntity( - // TODO: Вынести в отдельный класс, и явно не в директорию `ui` - val id: Int, - val type: SensorType, - val deviceName: String, - val deviceOwner: Int, - val name: String, - val favorite: Boolean, - val public: Boolean, - val mine: Boolean, - val location: String, - val distance: Double, // километры - val value: Double, - val unit: String, - val changed: Int, -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorFilterUiEntity.kt b/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorFilterUiEntity.kt deleted file mode 100644 index 62277d8..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorFilterUiEntity.kt +++ /dev/null @@ -1,11 +0,0 @@ -package ru.nm17.narodmon.ui.entities - -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf - -data class SensorFilterUiEntity( - // TODO: Можно попробовать объединить с db/SensorType.kt - val stringRes: Int, - val code: Int, - var enabled: MutableState = mutableStateOf(false), -) diff --git a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorSortingUiEntity.kt b/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorSortingUiEntity.kt deleted file mode 100644 index 96e4604..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/entities/SensorSortingUiEntity.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.ui.entities - - -data class SensorSortingUiEntity( - val stringRes: Int, - val sortingType: SortingTypes, -) \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingSensorsEntity.kt b/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingSensorsEntity.kt deleted file mode 100644 index 82e230c..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingSensorsEntity.kt +++ /dev/null @@ -1 +0,0 @@ -package ru.nm17.narodmon.ui.entities diff --git a/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingTypesEnum.kt b/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingTypesEnum.kt deleted file mode 100644 index 0cb7aa3..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/entities/SortingTypesEnum.kt +++ /dev/null @@ -1,13 +0,0 @@ -package ru.nm17.narodmon.ui.entities - -enum class SortingTypes { - DISTANCE, - DISTANCE_DESC, - TYPE, - TYPE_DESC, - UPD_TIME, - NAME, - NAME_DESC, - VALUE, - VALUE_DESC -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/messagesScreen/MessagesScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/messagesScreen/MessagesScreen.kt deleted file mode 100644 index f2c8b8f..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/messagesScreen/MessagesScreen.kt +++ /dev/null @@ -1,16 +0,0 @@ -package ru.nm17.narodmon.ui.messagesScreen - -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.tooling.preview.Preview - -@Composable -fun MessagesScreen() { - Text(text = "todo") -} - -@Preview -@Composable -fun PreviewMessagesScreen() { - MessagesScreen() -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/navHost/AppNavHost.kt b/app/src/main/java/ru/nm17/narodmon/ui/navHost/AppNavHost.kt deleted file mode 100644 index 9697fa4..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/navHost/AppNavHost.kt +++ /dev/null @@ -1,30 +0,0 @@ -package ru.nm17.narodmon.ui.navHost - -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.runtime.Composable -import androidx.compose.ui.tooling.preview.Preview -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import ru.nm17.narodmon.ui.settings.SettingsNavigation - - -@OptIn(ExperimentalMaterial3Api::class) -@Composable -fun AppNavHost() { - val navController = rememberNavController() - NavHost(navController = navController, startDestination = "main") { - composable("main") { - MainScreen(navController) - } - composable("settings") { - SettingsNavigation() - } - } -} - -@Preview -@Composable -fun PreviewAppNavHost() { - AppNavHost() -} diff --git a/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreen.kt deleted file mode 100644 index d2569b2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreen.kt +++ /dev/null @@ -1,83 +0,0 @@ -package ru.nm17.narodmon.ui.navHost - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Icon -import androidx.compose.material3.NavigationBar -import androidx.compose.material3.NavigationBarItem -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.navigation.NavController -import androidx.navigation.NavGraph.Companion.findStartDestination -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import ru.nm17.narodmon.ui.sensorsScreen.SensorsScreen -import ru.nm17.narodmon.ui.theme.NarodMonTheme -import ru.nm17.narodmon.ui.webCamsScreen.WebCamsScreen - - -val items = listOf( - MainScreenSealed.Sensors, - MainScreenSealed.Webcams, - MainScreenSealed.Messages -) - -@Composable -fun MainScreen(outerNavController: NavController) { - val navController = rememberNavController() - - Scaffold( - bottomBar = { - NavigationBar { - - items.forEach { screen -> - NavigationBarItem( - selected = navController.currentDestination?.route == screen.route, - onClick = { - navController.navigate(screen.route) { - popUpTo(navController.graph.findStartDestination().id) { - saveState = true - } - launchSingleTop = true - restoreState = true - } - }, - label = { Text(text = stringResource(id = screen.resourceId)) }, - icon = { - Icon( - painter = painterResource(id = screen.iconId), - contentDescription = "" - ) - }) - } - } - }, - modifier = Modifier.fillMaxSize() - ) { - NavHost( - navController, - startDestination = MainScreenSealed.Sensors.route, - Modifier.padding(it) - ) { - composable(MainScreenSealed.Sensors.route) { - SensorsScreen(outerNavController) - } - composable(MainScreenSealed.Webcams.route) { WebCamsScreen(navController) } - composable(MainScreenSealed.Messages.route) { } - } - } -} - -@Preview -@Composable -fun PreviewMainScreen() { - NarodMonTheme { - MainScreen(rememberNavController()) - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreenSealed.kt b/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreenSealed.kt deleted file mode 100644 index 89fcdde..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/navHost/MainScreenSealed.kt +++ /dev/null @@ -1,18 +0,0 @@ -package ru.nm17.narodmon.ui.navHost - -import androidx.annotation.DrawableRes -import androidx.annotation.StringRes -import ru.nm17.narodmon.R - -sealed class MainScreenSealed( - val route: String, - @StringRes val resourceId: Int, - @DrawableRes val iconId: Int -) { - object Sensors : MainScreenSealed("sensors", R.string.sensors_page_title, R.drawable.ic_home) - object Webcams : MainScreenSealed("webcams", R.string.webcams, R.drawable.ic_webcam) - - object Messages : MainScreenSealed("messages", R.string.messages, R.drawable.ic_message) - - object Settings : MainScreenSealed("settings", R.string.settings, R.drawable.ic_settings) -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt b/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt new file mode 100644 index 0000000..6942361 --- /dev/null +++ b/app/src/main/java/ru/nm17/narodmon/ui/pages/Sensors.kt @@ -0,0 +1,28 @@ +package ru.nm17.narodmon.ui.pages + +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Divider +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalDrawerSheet +import androidx.compose.material3.NavigationDrawerItem +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import ru.nm17.narodmon.Greeting +import ru.nm17.narodmon.R +import ru.nm17.narodmon.ui.elements.GenericNavScaffold + +@ExperimentalMaterial3Api +@Composable +fun SensorsPage(navController: NavController) { + GenericNavScaffold( + title = { Text(text = stringResource(R.string.sensors_page_title))} + ) { + Greeting(name = "world", modifier = Modifier.padding(it)) + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SensorsScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SensorsScreen.kt deleted file mode 100644 index 8ded59d..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SensorsScreen.kt +++ /dev/null @@ -1,260 +0,0 @@ -package ru.nm17.narodmon.ui.sensorsScreen - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.LazyRow -import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Settings -import androidx.compose.material.icons.rounded.Check -import androidx.compose.material3.BottomSheetScaffold -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.FilterChip -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.SearchBar -import androidx.compose.material3.SearchBarDefaults -import androidx.compose.material3.SheetValue -import androidx.compose.material3.Text -import androidx.compose.material3.rememberBottomSheetScaffoldState -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.navigation.NavController -import androidx.navigation.compose.rememberNavController -import ru.nm17.narodmon.R -import ru.nm17.narodmon.db.entities.SensorType -import ru.nm17.narodmon.ui.dialogs.FilterSensorsDialog -import ru.nm17.narodmon.ui.dialogs.SortSensorsDialog -import ru.nm17.narodmon.ui.elements.SensorItem -import ru.nm17.narodmon.ui.elements.TileMap -import ru.nm17.narodmon.ui.entities.SensorEntity -import ru.nm17.narodmon.ui.entities.SensorSortingUiEntity -import ru.nm17.narodmon.ui.entities.SortingTypes -import ru.nm17.narodmon.ui.navHost.MainScreenSealed -import ru.nm17.narodmon.ui.theme.NarodMonTheme -import ru.nm17.narodmon.ui.toChipTitle - - -@OptIn(ExperimentalMaterial3Api::class) -@Composable -fun SensorsScreen(outerNavController: NavController) { - - var searchQuery by remember { mutableStateOf("") } - var searchActive by remember { mutableStateOf(false) } - - val scaffoldState = rememberBottomSheetScaffoldState() - val sensorEntities = remember { - mutableListOf( - // TODO: загружать датчики с сервера. Этот список -- для макета - SensorEntity( - 0, - SensorType(0, "temp", "C"), - "device0", 0, - "sensor0", favorite = true, - public = true, mine = false, - "Москва", 0.4, - 20.0, "C", 1686142800, - ), - SensorEntity( - 1, - SensorType(4, "humidity", "%"), - "device1", 0, - "sensor1", favorite = true, - public = false, mine = false, - "Подмосковье", 1.1, - 39.0, "%", 1686142800, - ), - SensorEntity( - 2, - SensorType(11, "wind speed", "m/s"), - "device2", 1, - "sensor2", favorite = false, - public = true, mine = true, - "Москва", 0.01, - 3.2, "m/s", 1686142800, - ), - ) - } - - var filterShow by remember { mutableStateOf(false) } - var filterMine by remember { mutableStateOf(false) } - - var sortingShow by remember { mutableStateOf(false) } - var sortingType by remember { - mutableStateOf( - SensorSortingUiEntity(R.string.sort_by_distance, SortingTypes.DISTANCE) - ) - } - - var sheetHeight by remember { - mutableStateOf(SheetHeight.ExtraExpanded) - } - - BottomSheetScaffold(modifier = Modifier.fillMaxSize(), sheetPeekHeight = when (sheetHeight) { - SheetHeight.ExtraExpanded -> 256.dp - SheetHeight.Expanded -> 128.dp - SheetHeight.Hidden -> 0.dp - }, scaffoldState = scaffoldState, sheetContent = { - AnimatedVisibility(visible = scaffoldState.bottomSheetState.currentValue == SheetValue.Expanded) { - OutlinedTextField( - value = searchQuery, - onValueChange = { searchQuery = it }, - placeholder = { Text(stringResource(R.string.search)) }, - shape = SearchBarDefaults.inputFieldShape, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 8.dp, vertical = 8.dp) - ) - } - - LazyRow( - horizontalArrangement = Arrangement.spacedBy(12.dp, Alignment.CenterHorizontally), - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) { - item { - FilterChip( - selected = false, - onClick = { filterShow = true }, - leadingIcon = { - Icon( - painter = painterResource(id = R.drawable.ic_filter), - contentDescription = stringResource(id = R.string.sensors_filter) - ) - }, - trailingIcon = { -// Icon( -// Icons.Filled.ArrowDropDown, -// "", -// tint = MaterialTheme.colorScheme.onBackground -// ) - }, - - label = { Text(text = stringResource(R.string.sensors_filter)) }, - ) - } - item { - FilterChip(selected = sortingType.sortingType != SortingTypes.DISTANCE, - onClick = { sortingShow = true }, - leadingIcon = { - Icon( - painter = painterResource(id = R.drawable.ic_sort), - contentDescription = stringResource(id = R.string.sensors_sorting) - ) - }, - trailingIcon = { -// Icon( -// Icons.Filled.ArrowDropDown, -// "", -// tint = MaterialTheme.colorScheme.onBackground -// ) - }, - label = { - Text( - text = stringResource( - if (sortingType.sortingType == SortingTypes.DISTANCE) R.string.sensors_sorting - else sortingType.stringRes - ).toChipTitle(), - ) - }) - } - - item { - FilterChip( - selected = filterMine, - onClick = { filterMine = !filterMine }, - leadingIcon = { - if (filterMine) { - Icon( - Icons.Rounded.Check, contentDescription = "" - ) - } - }, - label = { Text(text = stringResource(R.string.sensors_mine)) }, - ) - } - } - - LazyColumn( - modifier = Modifier.fillMaxHeight(), - ) { - items(sensorEntities) { sensor -> - SensorItem(sensor) - } - } - }) { - Box(modifier = Modifier.fillMaxSize()) { - SearchBar( - query = searchQuery, - active = searchActive, - onActiveChange = { active -> - searchActive = active - sheetHeight = if (active) SheetHeight.Hidden else SheetHeight.ExtraExpanded - }, - onQueryChange = { query -> searchQuery = query }, - onSearch = { searchActive = false }, - placeholder = { Text(stringResource(R.string.search_sensors)) }, - trailingIcon = { - IconButton(onClick = { outerNavController.navigate(MainScreenSealed.Settings.route) }) { - Icon( - Icons.Outlined.Settings, - contentDescription = stringResource(R.string.settings) - ) - } - }, - modifier = Modifier - .fillMaxWidth() - .padding( - horizontal = if (!searchActive) 8.dp else 0.dp, - ) - ) {} - - TileMap( - modifier = Modifier.fillMaxSize() - ) { - sheetHeight = - SheetHeight.Expanded // TODO придумать, чтобы менялось на SheetHeight.ExtraExpanded после взаимодействия с картой - - } - } - } - if (sortingShow) { - SortSensorsDialog(sortingType, onApply = { - sortingType = it - sortingShow = false - }, onDismissRequest = { - sortingShow = false - }) - } - if (filterShow) { - FilterSensorsDialog(onApply = { - // TODO применение фильтров - filterShow = false - }, onDismissRequest = { filterShow = false }) - } -} - -@Preview -@Composable -fun PreviewNewSensors() { - NarodMonTheme { - SensorsScreen(rememberNavController()) - } -} diff --git a/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SheetHeight.kt b/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SheetHeight.kt deleted file mode 100644 index 1b2fe7c..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/sensorsScreen/SheetHeight.kt +++ /dev/null @@ -1,7 +0,0 @@ -package ru.nm17.narodmon.ui.sensorsScreen - -enum class SheetHeight { - ExtraExpanded, - Expanded, - Hidden -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/settings/Settings.kt b/app/src/main/java/ru/nm17/narodmon/ui/settings/Settings.kt deleted file mode 100644 index 6ff326e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/settings/Settings.kt +++ /dev/null @@ -1,12 +0,0 @@ -package ru.nm17.narodmon.ui.settings - -import androidx.annotation.StringRes -import ru.nm17.narodmon.R - -sealed class Settings(val route: String, @StringRes val resourceId: Int) { - - object Main : Settings("settings_main", R.string.settings) - object AboutApp : Settings("settings_about_app", R.string.about_app) - - object Debug : Settings("settings_debug_menu", R.string.debug_menu) -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsNavigation.kt b/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsNavigation.kt deleted file mode 100644 index f8cc7a2..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsNavigation.kt +++ /dev/null @@ -1,39 +0,0 @@ -package ru.nm17.narodmon.ui.settings - -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBar -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController - -@OptIn(ExperimentalMaterial3Api::class) -@Composable -fun SettingsNavigation() { - val navController = rememberNavController() - Scaffold(topBar = { - TopAppBar(title = { Text(text = navController.currentDestination?.route ?: "") }) - }) { - NavHost( - navController = navController, - startDestination = Settings.Main.route, - modifier = Modifier.padding(it) - ) { - composable(Settings.Main.route) { SettingsScreen(navController) } - composable(Settings.AboutApp.route) { } - composable(Settings.Debug.route) { } - } - - } -} - -@Preview -@Composable -fun PreviewSettingsNavigation() { - SettingsNavigation() -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt deleted file mode 100644 index fb75ba0..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt +++ /dev/null @@ -1,37 +0,0 @@ -package ru.nm17.narodmon.ui.settings - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview -import androidx.navigation.NavController -import androidx.navigation.compose.rememberNavController -import ru.nm17.narodmon.R -import ru.nm17.narodmon.ui.elements.SettingsItem -import ru.nm17.narodmon.ui.theme.NarodMonTheme - -@Composable -fun SettingsScreen(navController: NavController) { - LazyColumn(modifier = Modifier.fillMaxSize()) { - item { - SettingsItem(titleId = R.string.debug_menu) { - navController.navigate(Settings.Debug.route) - } - } - item { - SettingsItem(R.string.about_app) { - navController.navigate(Settings.AboutApp.route) - } - } - - } -} - -@Preview(showBackground = true, showSystemUi = false) -@Composable -fun PreviewSettingsScreen() { - NarodMonTheme { - SettingsScreen(rememberNavController()) - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/theme/Theme.kt b/app/src/main/java/ru/nm17/narodmon/ui/theme/Theme.kt index 4b5a002..666d520 100644 --- a/app/src/main/java/ru/nm17/narodmon/ui/theme/Theme.kt +++ b/app/src/main/java/ru/nm17/narodmon/ui/theme/Theme.kt @@ -10,16 +10,15 @@ import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.SideEffect -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView import androidx.core.view.WindowCompat private val DarkColorScheme = darkColorScheme( - primary = Purple80, - secondary = PurpleGrey80, - tertiary = Pink80 + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 ) private val LightColorScheme = lightColorScheme( @@ -27,23 +26,23 @@ private val LightColorScheme = lightColorScheme( secondary = PurpleGrey80, tertiary = Pink80 - /* Other default colors to override -background = Color(0xFFFFFBFE), -surface = Color(0xFFFFFBFE), -onPrimary = Color.White, -onSecondary = Color.White, -onTertiary = Color.White, -onBackground = Color(0xFF1C1B1F), -onSurface = Color(0xFF1C1B1F), -*/ + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ ) @Composable fun NarodMonTheme( - darkTheme: Boolean = isSystemInDarkTheme(), - // Dynamic color is available on Android 12+ - dynamicColor: Boolean = true, - content: @Composable () -> Unit + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit ) { val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { @@ -58,16 +57,14 @@ fun NarodMonTheme( if (!view.isInEditMode) { SideEffect { val window = (view.context as Activity).window - WindowCompat.setDecorFitsSystemWindows(window, false) - window.statusBarColor = Color.Transparent.toArgb() - - WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme } } MaterialTheme( - colorScheme = colorScheme, - typography = Typography, - content = content + colorScheme = colorScheme, + typography = Typography, + content = content ) } \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamItem.kt b/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamItem.kt deleted file mode 100644 index 1bf1928..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamItem.kt +++ /dev/null @@ -1,74 +0,0 @@ -package ru.nm17.narodmon.ui.webCamsScreen - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi -import com.bumptech.glide.integration.compose.GlideImage -import ru.nm17.narodmon.ui.iosevkaFamily - -@OptIn(ExperimentalGlideComposeApi::class) -@Composable -fun WebCamItem(webCamEntity: WebCamUiEntity) { - Box( - modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), - contentAlignment = Alignment.BottomStart - ) { - GlideImage( - model = webCamEntity.imageUrl, - contentDescription = webCamEntity.name, - contentScale = ContentScale.FillHeight, - modifier = Modifier - .clip(RoundedCornerShape(8.dp)) - .height(240.dp) - .fillMaxWidth() - ) - Row( - modifier = Modifier - .clip( - RoundedCornerShape(bottomEnd = 8.dp, bottomStart = 8.dp) - ) - .background(Color(0f, 0f, 0f, 0.55f)) - .padding(start = 16.dp, end = 16.dp, bottom = 12.dp, top = 8.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Column { - Text( - text = webCamEntity.time, - color = Color.White, - fontFamily = iosevkaFamily - ) - Text( - text = webCamEntity.name, - color = Color.White, - maxLines = 1, - fontFamily = iosevkaFamily - ) - - } - Text( - text = "${webCamEntity.distance} км", - color = Color.White, - fontFamily = iosevkaFamily, - modifier = Modifier.fillMaxWidth(), - textAlign = TextAlign.End - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamUiEntity.kt b/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamUiEntity.kt deleted file mode 100644 index e17a48e..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamUiEntity.kt +++ /dev/null @@ -1,13 +0,0 @@ -package ru.nm17.narodmon.ui.webCamsScreen - -import android.graphics.Bitmap -import androidx.compose.ui.graphics.ImageBitmap - -data class WebCamUiEntity( - val id: Int, - val name: String, - val distance: Int, - val location: String, - val time: String, - val imageUrl: String -) diff --git a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamsScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamsScreen.kt deleted file mode 100644 index 38a4a3a..0000000 --- a/app/src/main/java/ru/nm17/narodmon/ui/webCamsScreen/WebCamsScreen.kt +++ /dev/null @@ -1,62 +0,0 @@ -package ru.nm17.narodmon.ui.webCamsScreen - -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.tooling.preview.Preview -import androidx.navigation.NavController -import androidx.navigation.compose.rememberNavController -import ru.nm17.narodmon.ui.theme.NarodMonTheme - -@Composable -fun WebCamsScreen(navController: NavController) { - - var webCams by remember { - mutableStateOf( - listOf( - WebCamUiEntity( - 1, - "Крутая камера", - 1, - "Улица Пушкина, дом Калатушкина, кватира под номером 5", - "12:45", - "https://images-webcams.windy.com/51/1559159251/current/preview/1559159251.jpg?1686320054" - ), - WebCamUiEntity( - 2, - "Крутая камера 2", - 2, - "Улица Пушкина, дом Калатушкина, кватира под номером 5", - "12:45", - "https://images-webcams.windy.com/51/1559159251/current/preview/1559159251.jpg?1686320054" - ), - WebCamUiEntity( - 3, - "Крутая камера 3", - 3, - "Улица Пушкина, дом Калатушкина, кватира под номером 5", - "12:45", - "https://images-webcams.windy.com/51/1559159251/current/preview/1559159251.jpg?1686320054" - ) - ) - ) - } // TODO источник камер - - LazyColumn() { - items(webCams) { - WebCamItem(webCamEntity = it) - } - } -} - -@Preview -@Composable -fun PreviewWebCams() { - NarodMonTheme { - WebCamsScreen(rememberNavController()) - } -} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_filter.xml b/app/src/main/res/drawable/ic_filter.xml deleted file mode 100644 index d574422..0000000 --- a/app/src/main/res/drawable/ic_filter.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_home.xml b/app/src/main/res/drawable/ic_home.xml deleted file mode 100644 index 3cdad40..0000000 --- a/app/src/main/res/drawable/ic_home.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml deleted file mode 100644 index dfb81a6..0000000 --- a/app/src/main/res/drawable/ic_message.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml deleted file mode 100644 index c624d19..0000000 --- a/app/src/main/res/drawable/ic_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_sort.xml b/app/src/main/res/drawable/ic_sort.xml deleted file mode 100644 index ed8927f..0000000 --- a/app/src/main/res/drawable/ic_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_webcam.xml b/app/src/main/res/drawable/ic_webcam.xml deleted file mode 100644 index a6fd65e..0000000 --- a/app/src/main/res/drawable/ic_webcam.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/font/iosevka.ttf b/app/src/main/res/font/iosevka.ttf deleted file mode 100644 index bab9e51..0000000 Binary files a/app/src/main/res/font/iosevka.ttf and /dev/null differ diff --git a/app/src/main/res/layout/fragment_sensors.xml b/app/src/main/res/layout/fragment_sensors.xml new file mode 100644 index 0000000..e076d3b --- /dev/null +++ b/app/src/main/res/layout/fragment_sensors.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9e74ffa..50cd33f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,7 @@ Народный Мониторинг + Hello blank fragment Я принимаю соглашения Выйти @@ -14,48 +15,4 @@ Примите необходимые соглашения Сенсоры Ожидаю соглашение пользователя - Поиск - Тип датчиков - Сортировка - Мои датчики - Температура точки росы - Температура воздуха - Температура воды - Температура почвы - Влажность - Давление - Освещённость - УФ-индекс - Радиация - Осадки - Запылённость - Скорость ветра - Направление ветра - Концентрация - Мощность - Напряжение - Сила тока - Энергия - % батареи - Rx/Tx трафик - Сигнал в dBm - Счётчик воды - Время работы - Тип датчиков - От ближних к дальним - По типу (от А до Я) - По типу (от Я до А) - По названию (от А до Я) - По названию (от Я до А) - Сортировка датчиков - По времени обновления - Применить - От дальних к ближним - Отменить - Веб-камеры - Сообщения - Настройки - Поиск датчиков - О приложении - Debug-меню \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a1a48e8..a952870 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.2.0-alpha07" +agp = "8.2.0-alpha06" kotlin = "1.8.10" core-ktx = "1.9.0" junit = "4.13.2"