diff --git a/tv-app/effecticeTV/app/build.gradle b/tv-app/effecticeTV/app/build.gradle index 1eda2db6612394d36b1f3c2315988a29a7b88830..f911995027608f305c82e535cac6acf6d637ff90 100644 --- a/tv-app/effecticeTV/app/build.gradle +++ b/tv-app/effecticeTV/app/build.gradle @@ -1,7 +1,11 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' + alias libs.plugins.kotlin.kapt + alias libs.plugins.hilt.plug } +def localProperties = new Properties() +localProperties.load(new FileInputStream(rootProject.file("local.properties"))) android { namespace 'band.effective.office.tv' @@ -18,6 +22,8 @@ android { vectorDrawables { useSupportLibrary true } + + buildConfigField ("String", "apiLeaderUrl", localProperties['apiLeaderUrl']) } buildTypes { @@ -26,6 +32,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 @@ -62,10 +69,28 @@ dependencies { debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" //for tv - implementation "androidx.tv:tv-foundation:1.0.0-alpha04" - implementation "androidx.tv:tv-material:1.0.0-alpha04" + implementation libs.tv + implementation libs.tvMaterial - //Retrofit and Gson + //Retrofit implementation libs.retrofit - implementation libs.gson -} \ No newline at end of file + implementation libs.okhttp3 + implementation libs.okhttp3.logging + implementation libs.retrofit.moshi + + // moshi + implementation libs.moshi + implementation libs.moshi.adapter + kapt libs.moshi.gen + + //hilt di + implementation libs.hilt + implementation libs.hilt.nav + kapt libs.hitl.compiller + + //coil + implementation libs.coil +} +kapt { + correctErrorTypes true +} diff --git a/tv-app/effecticeTV/app/src/main/AndroidManifest.xml b/tv-app/effecticeTV/app/src/main/AndroidManifest.xml index cf7dd064044006d78ce5cda1570745fec5d95d26..fededefb12db867fd722c1b9de93ec39a9662111 100644 --- a/tv-app/effecticeTV/app/src/main/AndroidManifest.xml +++ b/tv-app/effecticeTV/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ - @GET("api/v4/events/search") - fun searchEventsByCity(@Query("paginationSize") count: Int, @Query("cityId") cityId: Int): Call - -} \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/PhotoJsonDeserializer.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/PhotoJsonDeserializer.kt deleted file mode 100644 index c2d9b2ee85fca3299712ffc533e701698a75c93f..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/PhotoJsonDeserializer.kt +++ /dev/null @@ -1,36 +0,0 @@ -package band.effective.office.tv.leader - -import band.effective.office.tv.leader.models.Photo -import band.effective.office.tv.leader.models.Thumb -import com.google.gson.* -import java.lang.reflect.Type - -class PhotoJsonDeserializer: JsonDeserializer { - fun getPhoto( json: JsonObject): Photo = Photo( - full = json.get("full").asString, - thumb = - if (json.has("thumb")) - Thumb( - json.get("thumb").asJsonObject.get("180")?.asString ?: "", - json.get("thumb").asJsonObject.get("360")?.asString ?: "", - json.get("thumb").asJsonObject.get("520")?.asString ?: "") - else - Thumb( - json.asJsonObject.get("180")?.asString ?: "", - json.asJsonObject.get("360")?.asString ?: "", - json.get("520")?.asString ?: "" - ) - ) - - override fun deserialize( - json: JsonElement?, - typeOfT: Type?, - context: JsonDeserializationContext? - ): Photo? = - if (json!!.isJsonNull) null - else if(json!!.isJsonArray) - if (json!!.asJsonArray.size() == 0) null - else getPhoto(json.asJsonArray.get(0).asJsonObject) - else if (!json.toString().contains("\"_")) getPhoto(json.asJsonObject) - else getPhoto(json.asJsonObject.entrySet().toList()[0].value.asJsonObject) -} \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/SearchResponse.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/SearchResponse.kt deleted file mode 100644 index 93651d67e88ab90c0a6d5203be3f50180340f17d..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/SearchResponse.kt +++ /dev/null @@ -1,7 +0,0 @@ -package band.effective.office.tv.leader - -import band.effective.office.tv.leader.models.Data - -data class SearchResponse( - val data: Data -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Address.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Address.kt deleted file mode 100644 index 3dbb680aeca8e2119d27e7adae313b1547e10ba8..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Address.kt +++ /dev/null @@ -1,24 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Address( - val id: Int, - val city_id:Int, - val region_id: Int, - val country_id: Int, - val post_code: Int?, - val street: String, - val house:String, - val building:Int?, - val wing:String?, - val apartment: String?, - val place: String?, - val geo_point: String, - val geo_point_zoom:Int, - val letter:String?, - val user_id:Int?, - val city:String, - val region: String, - val country: String, - val title: String, - val timezone: String? -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Data.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Data.kt deleted file mode 100644 index ff713a9f5b5f46ace1c7aeda55b568743a842fb7..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Data.kt +++ /dev/null @@ -1,10 +0,0 @@ -package band.effective.office.tv.leader.models - -import com.google.gson.annotations.SerializedName - -data class Data( - @SerializedName("_items") - val items: List, - @SerializedName("_meta") - val meta: Meta -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Event.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Event.kt deleted file mode 100644 index b29ad4a9bee07cbe66c7dcb001490f677ae13538..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Event.kt +++ /dev/null @@ -1,44 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Event( - val id: Int, - val createdBy: Int, - val live_public: Boolean, - val live: List?, - val stat: Stat, - val themes: List, - val type: Type, - val info: String?, // allways null - val status: String?, - val moderation: String, - val full_info: String, - val full_name: String, - val date_start: String, - val date_end: String, - val format: String, - val space: Space, - val plase: String?, // allways null - val schedules: List, - val networking: Networking?, - val participation_format: String, - val team_size_min: Int, - val team_size_max: Int, - val team_type: String?, // allways null - val finished: Boolean, - val afterQuizId: String?, - val needFeedback: Boolean, - val hash_tags: List, - val network_parent_id: Int?, - val city: String, - val city_id: Int, - val halls: List, - val photo: String, - val photo_520: String, - val photo_360: String, - val photo_180: String, - val timezone: TimeZone, - val needStartNotification: Boolean, - val delivered: Boolean, - val indexedAt: Int, - val isFavorite: Boolean -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Hall.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Hall.kt deleted file mode 100644 index d684f15e486c3bb73c2411910e1539639a9742e2..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Hall.kt +++ /dev/null @@ -1,18 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Hall( - val id: Int, - val name: String, - val capacity: Int, - val type:String, - val square:Int, - val tags:List, - val preparePeriod: Int, - val photos: Photo?, - val space_id: Int, - val active: Boolean, - val deleted_at: String?, - val deleted_by: String?, - val description: String, - val order:Int -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Meta.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Meta.kt deleted file mode 100644 index 0c013a3e661107d75a2feec1dd7dc14ca419ccca..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Meta.kt +++ /dev/null @@ -1,8 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Meta( - val totalCount:Int, - val pageCount:Int, - val currentPage:Int, - val perPage:Int -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Networking.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Networking.kt deleted file mode 100644 index 63d0e36ef975913bf15734d0fb3423ffdfb22c0b..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Networking.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Networking( - val spaceIds: List, - val broadcast: String -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Participants.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Participants.kt deleted file mode 100644 index b3310fc972394b5e97115bf9b3d19d9f3e9ee2a6..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Participants.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Participants( - val count: Int, - val list: List -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Persons.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Persons.kt deleted file mode 100644 index e9654dc1c71efd362f78bfb574a39e66c5b1b293..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Persons.kt +++ /dev/null @@ -1,7 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Persons( - val id:Int, - val name: String, - val photo: String? -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Photo.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Photo.kt deleted file mode 100644 index 47c4a756ca5ab49058245966e024c9e3ba266e9f..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Photo.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Photo( - val full: String, - val thumb: Thumb -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/PhotoUrl.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/PhotoUrl.kt deleted file mode 100644 index ebc631a40a14cf52fe7b3852505bded889177c2d..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/PhotoUrl.kt +++ /dev/null @@ -1,5 +0,0 @@ -package band.effective.office.tv.leader.models - -data class PhotoUrl( - val url: String -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Schedul.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Schedul.kt deleted file mode 100644 index 7fa2122f322d7abaf90be4345e522fdc5c8225c8..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Schedul.kt +++ /dev/null @@ -1,14 +0,0 @@ -package band.effective.office.tv.leader.models - -import band.effective.office.tv.leader.models.Hall - -data class Schedul( - val hallId: Int?, - val name: String, - val description: String?, - val speaker: String, - val area: String?, - val dateStart: String, - val dateEnd: String, - val hall: Hall? -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SocialNetwork.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SocialNetwork.kt deleted file mode 100644 index c5fbef26fa00fc3b776413b1cadc71894bf07a9c..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SocialNetwork.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class SocialNetwork( - val url: String, - val alias: String -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Space.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Space.kt deleted file mode 100644 index d5ecfa4fb86068e655541d48594ec892803834bf..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Space.kt +++ /dev/null @@ -1,27 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Space( - val id: Int, - val phone: String, - val phoneExtension: String?, // allways null - val addressId: Int, - val active: Boolean, - val kworkingState: String?, // allways null - val agenda: List, - val square:Double, - val email: String, - val name: String, - val description: String, - val rating: String?, // allways null - val type:String, - val minimalPeriod: Int, - val photos: List, - val tags: List, - val socialNetworks: List, - val scheduleOnRequest: Boolean, - val stat: SpaceStat, - val createdAt: String, - val updatedAt: String, - val restrictEventOwnerOfflineConfirm: Boolean, - val address: Address -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SpaceStat.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SpaceStat.kt deleted file mode 100644 index e4f98ec941607d744f4d37c399e448747c87b176..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/SpaceStat.kt +++ /dev/null @@ -1,12 +0,0 @@ -package band.effective.office.tv.leader.models - -data class SpaceStat( - val participantCount: Int, - val active_participants: Int, - val uniqueUsers: Int, - val participantAverage: Int, - val regionScope: Int, - val monthEventCount: Int, - val ntiPercent: Double, - val moderationTime: String -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Stat.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Stat.kt deleted file mode 100644 index 48dca509a618434546f8f3d35f167b1d06e5a5f7..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Stat.kt +++ /dev/null @@ -1,7 +0,0 @@ -package band.effective.office.tv.leader.models - -import band.effective.office.tv.leader.models.Participants - -data class Stat( - val participants: Participants -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Theme.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Theme.kt deleted file mode 100644 index 9832973bdafe127c5983f4fbf2e311ed4f2ccc80..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Theme.kt +++ /dev/null @@ -1,24 +0,0 @@ -package band.effective.office.tv.leader.models - -import band.effective.office.tv.leader.models.Photo -import band.effective.office.tv.leader.models.PhotoUrl - -data class Theme( - val id: Int, - val name: String, - val visible: Boolean, - val updated_at: String?, - val createdBy: Int, - val priority: Int, - val status: Int, - val keywords: List, - val photos: Photo?, - val old_type: String?, - val gid: Int, - val code: String?, - val parentId: Int?, // allways null - val childCount: Int, - val moderatedBy: Int?, - val moderatedAt: String?, - val photo: PhotoUrl -) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Thumb.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Thumb.kt deleted file mode 100644 index 2a58ec7031535252ece09a9f92ec5fd277491a15..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Thumb.kt +++ /dev/null @@ -1,13 +0,0 @@ -package band.effective.office.tv.leader.models - -import com.google.gson.annotations.SerializedName - -data class Thumb( - @SerializedName("180") - val p180: String, - @SerializedName("360") - val p360: String, - @SerializedName("520") - val p520: String - -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/TimeZone.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/TimeZone.kt deleted file mode 100644 index e5573ded72b17633f7deb1debd546ed813aa5d85..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/TimeZone.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class TimeZone( - val value: String, - val minutes: Int -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Type.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Type.kt deleted file mode 100644 index 1b0a7ebb586ba7be1b675c8249b2e20012d8333e..0000000000000000000000000000000000000000 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/leader/models/Type.kt +++ /dev/null @@ -1,6 +0,0 @@ -package band.effective.office.tv.leader.models - -data class Type( - val id: Int, - val name: String -) diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/ClientsAnnotation.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/ClientsAnnotation.kt new file mode 100644 index 0000000000000000000000000000000000000000..f72d26f152be19f65a5a888eb9ed92a723c380f5 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/ClientsAnnotation.kt @@ -0,0 +1,13 @@ +package band.effective.office.tv.network + +import javax.inject.Qualifier + + +//this annotations for retrofit +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class LeaderIdRetrofitClient + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class SynologyRetrofitClient \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/LeaderApi.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/LeaderApi.kt new file mode 100644 index 0000000000000000000000000000000000000000..507da763d71e1d26da9a2627d69e5bfb1255026f --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/LeaderApi.kt @@ -0,0 +1,15 @@ +package band.effective.office.tv.network.leader + +import band.effective.office.tv.network.leader.models.EventInfo.EventInfoResponse +import band.effective.office.tv.network.leader.models.SearchEvent.SearchEventsResponse +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.Path +import retrofit2.http.Query + +interface LeaderApi { + @GET("api/v4/events/search") + fun searchEvents(@Query("paginationSize") count: Int, @Query("cityId") cityId: Int, @Query("placeIds[]") placeId: Int): Call + @GET("api/v4/events/{eventId}") + fun eventInfo(@Path("eventId") eventId: Int): Call +} \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/AddressX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/AddressX.kt new file mode 100644 index 0000000000000000000000000000000000000000..92e33fb70c8cec0a46275552b14f38ef2ace4cb8 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/AddressX.kt @@ -0,0 +1,34 @@ +package band.effective.office.tv.network.leader.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class AddressX( + val apartment: Any?, + val building: Any?, + val city: String?, + @Json(name = "city_id") + val cityId: Int?, + val country: String?, + @Json(name = "country_id") + val countryId: Int?, + @Json(name = "geo_point") + val geoPoint: String?, + @Json(name = "geo_point_zoom") + val geoPoint_zoom: String?, + val house: String?, + val id: Int?, + val letter: Any?, + val place: Any?, + val postCode: Any?, + val region: String?, + @Json(name = "region_id") + val regionId: Int?, + val street: String?, + val timezone: Any?, + val title: String?, + @Json(name = "user_id") + val userId: Any?, + val wing: Any? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Data.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Data.kt new file mode 100644 index 0000000000000000000000000000000000000000..50947cac6f94ec76863103ae008b75698a44bfc6 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Data.kt @@ -0,0 +1,82 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import band.effective.office.tv.network.leader.models.* +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Data( + val access: String, + val address: AddressX, + val afterQuizId: Any?, + val certificate: Boolean, + val certificate_text: Any?, + val city: String, + @Json(name = "city_id") + val cityId: Int, + val createdBy: Int, + @Json(name = "date_end") + val dateEnd: String, + @Json(name = "date_start") + val dateStart: String, + val documents: List, + val ecpRequired: Boolean, + val expectedParticipantCount: Any?, + val finished: Boolean, + val format: String, + @Json(name = "full_info") + val fullInfo: String, + @Json(name = "full_name") + val fullName: String, + val halls: List, + @Json(name = "hash_tags") + val hashTags: List, + val hosts: List, + val id: Int, + val info: Any?, + @Json(name = "is_competition") + val isCompetition: Boolean, + val live: Any?, + @Json(name = "live_public") + val livePublic: Boolean, + val media: Any?, + val moderation: String, + val needFeedback: Boolean, + val needStartNotification: Boolean, + val networkProposals: List, + @Json(name = "network_parent_id") + val networkParentId: Any?, + val networking: Any?, + val organizers: List, + @Json(name = "participation_format") + val participationFormat: String, + val partners: List, + val photo: String, + @Json(name = "photo_180") + val photo180: String, + @Json(name = "photo_360") + val photo360: String, + @Json(name = "photo_520") + val photo520: String, + val place: Any?, + val quizId: Any?, + @Json(name = "registration_date_end") + val registrationDateEnd: String, + @Json(name = "registration_date_start") + val registrationDateStart: String, + val schedules: List, + val similar: List, + val space: SpaceX, + val speakers: List, + val stat: StatX, + val status: String, + @Json(name = "team_size_max") + val teamSizeMax: Any?, + @Json(name = "team_size_min") + val teamSizeMin: Any?, + @Json(name = "team_type") + val teamType: Any?, + val themes: List, + val timezone: TimezoneX, + val type: TypeX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/EventInfoResponse.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/EventInfoResponse.kt new file mode 100644 index 0000000000000000000000000000000000000000..f284a80f2eff49898638a0a82b0fb3a070451e96 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/EventInfoResponse.kt @@ -0,0 +1,8 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class EventInfoResponse( + val data: Data +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Organizer.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Organizer.kt new file mode 100644 index 0000000000000000000000000000000000000000..4067b59bda03101a355e20f671c6b58b5572536b --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Organizer.kt @@ -0,0 +1,27 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Organizer( + val company: Any?, + val companyId: Any?, + val email: String, + val id: Int, + val internationalPhone: Boolean, + val name: String, + val phone: String, + val photo: String, + @Json(name = "photo_180") + val photo180: String, + @Json(name = "photo_360") + val photo360: String, + @Json(name = "photo_520") + val photo520: String, + val photos: Any?, + val position: String, + val telegram: Any?, + val url: Any?, + val userId: Int +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Similar.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Similar.kt new file mode 100644 index 0000000000000000000000000000000000000000..51a463f0339df6deadf5f1886cad8a581cc5a88f --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Similar.kt @@ -0,0 +1,17 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Similar( + val city: Any?, + @Json(name = "date_end") + val date_end: String, + @Json(name = "date_start") + val date_start: String, + @Json(name = "full_name") + val full_name: String, + val id: Int, + val photo: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Speaker.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Speaker.kt new file mode 100644 index 0000000000000000000000000000000000000000..aaf0129035a810f1f2d699bf47932dcbf596b83f --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/Speaker.kt @@ -0,0 +1,42 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Speaker( + val completed: Boolean, + @Json(name = "completed_at") + val completedAt: Any?, + @Json(name = "control_passed") + val controlPassed: Any?, + @Json(name = "created_at") + val createdAt: String, + @Json(name = "event_id") + val eventId: Int, + val format: Any?, + val id: String, + val moderation: String, + @Json(name = "number_participants") + val numberParticipants: Any?, + @Json(name = "quiz_answer_id") + val quizAnswer_id: Any?, + @Json(name = "rejected_by") + val rejectedBy: Any?, + val role: String, + @Json(name = "role_id") + val roleId: Int, + @Json(name = "") + val spaceId: Any?, + val status: Int, + @Json(name = "team_id") + val teamId: Any?, + @Json(name = "updated_at") + val updatedAt: Any?, + val user: User, + @Json(name = "user_id") + val userId: Int, + val visible: Boolean, + @Json(name = "w_group_ids") + val wGroupIds: Any? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/User.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/User.kt new file mode 100644 index 0000000000000000000000000000000000000000..9960954864b11f64db03da0115f52aaa8c13ef97 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/EventInfo/User.kt @@ -0,0 +1,20 @@ +package band.effective.office.tv.network.leader.models.EventInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class User( + val email: Any?, + val employment: Any?, + val employments: List, + @Json(name = "father_name") + val fatherName: String, + @Json(name = "first_name") + val firstName: String, + val id: Int, + @Json(name = "last_name") + val lastName: String, + val phone: Any?, + val photo: Any? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/HallX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/HallX.kt new file mode 100644 index 0000000000000000000000000000000000000000..9277eb3c34b95fb8787c2cd4358ca7aa5066a714 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/HallX.kt @@ -0,0 +1,16 @@ +package band.effective.office.tv.network.leader.models + +import band.effective.office.tv.network.leader.models.SearchEvent.PhotoX +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class HallX( + val capacity: Int?, + val id: Int?, + val name: String?, + val photos: List, + val preparePeriod: Int?, + val square: String?, + val tags: List?, + val type: String? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/DataX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/DataX.kt new file mode 100644 index 0000000000000000000000000000000000000000..51e29597a3bda4c7bf7469dafa0edf26cf9659d9 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/DataX.kt @@ -0,0 +1,12 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class DataX( + @Json(name = "_items") + val items: List, + @Json(name = "_meta") + val meta: MetaX? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Item.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Item.kt new file mode 100644 index 0000000000000000000000000000000000000000..de0e1a2e466d7f49e5a28bf8022bd5b5e2483500 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Item.kt @@ -0,0 +1,64 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import band.effective.office.tv.network.leader.models.* +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Item( + val afterQuizId: Any?, + val city: String, + @Json(name = "city_id") + val cityId: Int, + val createdBy: Int, + @Json(name = "date_end") + val dateEnd: String, + @Json(name = "date_start") + val dateStart: String, + val delivered: Boolean, + val finished: Boolean, + val format: String, + @Json(name = "full_info") + val fullInfo: String, + @Json(name = "full_name") + val fullName: String, + val halls: List, + @Json(name = "hash_tags") + val hashTags: List, + val id: Int, + val indexedAt: Int, + val info: Any?, + val isFavorite: Boolean, + val live: Any?, + @Json(name = "live_public") + val livePublic: Boolean, + val moderation: String, + val needFeedback: Boolean, + val needStartNotification: Boolean, + @Json(name = "network_parent_id") + val networkParentId: Any?, + val networking: Any?, + @Json(name = "participation_format") + val participationFormat: String, + val photo: String, + @Json(name = "photo_180") + val photo180: String, + @Json(name = "photo_360") + val photo360: String, + @Json(name = "photo_520") + val photo520: String, + val place: Any?, + val schedules: List, + val space: SpaceX, + val stat: StatXX, + val status: String, + @Json(name = "team_size_max") + val teamSizeMax: Any?, + @Json(name = "team_size_min") + val teamSizeMin: Any?, + @Json(name = "team_type") + val teamType: Any?, + val themes: List, + val timezone: TimezoneX?, + val type: TypeX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/MetaX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/MetaX.kt new file mode 100644 index 0000000000000000000000000000000000000000..2b82311c4822bd842718255eca37e2d0b773142c --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/MetaX.kt @@ -0,0 +1,11 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class MetaX( + val currentPage: Int, + val pageCount: Int, + val perPage: Int, + val totalCount: Int +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsItem.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsItem.kt new file mode 100644 index 0000000000000000000000000000000000000000..2ea5fab3ae83a18ac3f29606c1212afc3f9c5836 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsItem.kt @@ -0,0 +1,10 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class ParticipantsItem( + val id: Int, + val name: String, + val photo: Any? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsX.kt new file mode 100644 index 0000000000000000000000000000000000000000..4d483905a8b0eb148c69777bf8c93d50e028ace0 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ParticipantsX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class ParticipantsX( + val count: Int, + val list: List +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoX.kt new file mode 100644 index 0000000000000000000000000000000000000000..e1c0d9b76559b59e43d9d1e678803d57c9846215 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class PhotoX( + val full: String, + val thumb: ThumbX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXX.kt new file mode 100644 index 0000000000000000000000000000000000000000..13f8d7f8779445e2f9dd679e4d8f92ff60200399 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class PhotoXX( + val full: String, + val thumb: ThumbXX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXXX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXXX.kt new file mode 100644 index 0000000000000000000000000000000000000000..f95ec9b5b4d10288cd6e70fca21639ea43cff1ab --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/PhotoXXX.kt @@ -0,0 +1,8 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class PhotoXXX( + val url: String? +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Photos.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Photos.kt new file mode 100644 index 0000000000000000000000000000000000000000..c85f65cfa9094fa7dc68c7ce679168ca6716bddc --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/Photos.kt @@ -0,0 +1,8 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class Photos( + val full: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SearchEventsResponse.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SearchEventsResponse.kt new file mode 100644 index 0000000000000000000000000000000000000000..c9e0c163ae879c36964e69d933b8c0414481ca03 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SearchEventsResponse.kt @@ -0,0 +1,8 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class SearchEventsResponse( + val data: DataX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SocialNetworkX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SocialNetworkX.kt new file mode 100644 index 0000000000000000000000000000000000000000..08d1a9f04ce3e510264a49b632ccc10c7d8de0dd --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/SocialNetworkX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class SocialNetworkX( + val alias: String, + val url: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/StatXX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/StatXX.kt new file mode 100644 index 0000000000000000000000000000000000000000..be486d2d147448922ca7e6dc15485b7a4f597b1a --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/StatXX.kt @@ -0,0 +1,8 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class StatXX( + val participants: ParticipantsX +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbX.kt new file mode 100644 index 0000000000000000000000000000000000000000..63bb176ec35f25702ea9927a7e8adf398fcdd32a --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbX.kt @@ -0,0 +1,12 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class ThumbX( + @Json(name = "360") + val size360: String, + @Json(name = "520") + val size520: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbXX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbXX.kt new file mode 100644 index 0000000000000000000000000000000000000000..e0229eef9c4ead7527c7b02620740c57c545c77e --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SearchEvent/ThumbXX.kt @@ -0,0 +1,14 @@ +package band.effective.office.tv.network.leader.models.SearchEvent + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class ThumbXX( + @Json(name = "180") + val size180: String, + @Json(name = "360") + val size360: String, + @Json(name = "520") + val size520: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SpaceX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SpaceX.kt new file mode 100644 index 0000000000000000000000000000000000000000..91483357fdafc8aa7fa3a9105cd9c07904d1bf73 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/SpaceX.kt @@ -0,0 +1,32 @@ +package band.effective.office.tv.network.leader.models + +import band.effective.office.tv.network.leader.models.SearchEvent.PhotoXX +import band.effective.office.tv.network.leader.models.SearchEvent.SocialNetworkX +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class SpaceX( + val active: Boolean, + val address: AddressX, + val addressId: Int, + val agenda: List, + val createdAt: String, + val description: String, + val email: String, + val id: Int, + val kworkingState: Any?, + val minimalPeriod: Int, + val name: String, + val phone: String, + val phoneExtension: Any?, + val photos: List, + val rating: Any?, + val restrictEventOwnerOfflineConfirm: Boolean, + val scheduleOnRequest: Boolean, + val socialNetworks: List, + val square: String, + val stat: StatX, + val tags: List, + val type: String, + val updatedAt: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/StatX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/StatX.kt new file mode 100644 index 0000000000000000000000000000000000000000..63359e1c2f9338add952d6e9ca4221dc714ca727 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/StatX.kt @@ -0,0 +1,18 @@ +package band.effective.office.tv.network.leader.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class StatX( + @Json(name = "active_participants") + val activeParticipants: Int = 0, + val moderationTime: String = "", + val monthEventCount: Int = 0, + val ntiPercent: Double = 0.0, + val participantAverage: String = "", + val participantCount: Int = 0, + val regionScope: Int = 0, + val uniqueUsers: Int = 0 +) + diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/ThemeX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/ThemeX.kt new file mode 100644 index 0000000000000000000000000000000000000000..15e3a037015929dff271eba0b824e6055beea997 --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/ThemeX.kt @@ -0,0 +1,28 @@ +package band.effective.office.tv.network.leader.models + +import band.effective.office.tv.network.leader.models.SearchEvent.PhotoXXX +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class ThemeX( + val childCount: Int, + val code: Any?, + val createdBy: Int, + val gid: Int, + val id: Int, + val keywords: List, + val moderatedAt: Any?, + val moderatedBy: Any?, + val name: String, + @Json(name = "old_type") + val oldType: String?, + val parentId: Int?, + val photo: PhotoXXX, + val photos: Any?, + val priority: Int, + val status: Int, + @Json(name = "updated_at") + val updatedAt: String?, + val visible: Boolean +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TimezoneX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TimezoneX.kt new file mode 100644 index 0000000000000000000000000000000000000000..ce22db62da868bb54915fbd3596da6a884157aca --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TimezoneX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class TimezoneX( + val minutes: Int, + val value: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TypeX.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TypeX.kt new file mode 100644 index 0000000000000000000000000000000000000000..96db5ded2ee4aa4c76698bf5449160985f6add0f --- /dev/null +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/network/leader/models/TypeX.kt @@ -0,0 +1,9 @@ +package band.effective.office.tv.network.leader.models + +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class TypeX( + val id: Int, + val name: String +) \ No newline at end of file diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListView.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListView.kt index d2c22a1353e9753bf480a678e00f61495bdeaeda..dc4e88833ba990ae4b8dd308005d8a9fb081b18d 100644 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListView.kt +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListView.kt @@ -4,17 +4,28 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.ui.platform.LocalContext +import androidx.hilt.navigation.compose.hiltViewModel import androidx.tv.material3.Text +import coil.compose.AsyncImage +import coil.request.ImageRequest @Composable -fun ListView(viewModel: ListViewModel){ +fun ListView(viewModel: ListViewModel = hiltViewModel()){ val response by viewModel.apiResponse.collectAsState() if (response!=null){ LazyColumn(){ items(7){i -> val item = response!!.data.items[i] - Text(item.full_name) + Text(item.fullName) Text(item.format) + AsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data(item.photo) + .crossfade(true) + .build(), + contentDescription = item.fullName + ) } } } diff --git a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListViewModel.kt b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListViewModel.kt index c5b93fe5e73df6e488d2834957843aea19bc4f6a..2ad430bd323fd5a3c871516d70d3cf4cd5daf65f 100644 --- a/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListViewModel.kt +++ b/tv-app/effecticeTV/app/src/main/java/band/effective/office/tv/view/ListViewModel.kt @@ -1,33 +1,24 @@ package band.effective.office.tv.view -import band.effective.office.tv.leader.models.Photo -import band.effective.office.tv.leader.LeaderApi -import band.effective.office.tv.leader.PhotoJsonDeserializer -import band.effective.office.tv.leader.SearchResponse import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.google.gson.GsonBuilder +import band.effective.office.tv.network.leader.LeaderApi +import band.effective.office.tv.network.leader.models.SearchEvent.SearchEventsResponse +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory +import javax.inject.Inject -class ListViewModel: ViewModel() { - private var mutableApiResponse = MutableStateFlow((null)) +@HiltViewModel +class ListViewModel @Inject constructor (val api: LeaderApi): ViewModel() { + private var mutableApiResponse = MutableStateFlow(null) val apiResponse = mutableApiResponse.asStateFlow() init { viewModelScope.launch(Dispatchers.IO) { - val builder = GsonBuilder() - builder.registerTypeAdapter(Photo::class.java, PhotoJsonDeserializer()) - val retrofit = Retrofit.Builder() - .baseUrl("https://leader-id.ru/") - .addConverterFactory(GsonConverterFactory.create(builder.create())) - .build(); - val api = retrofit.create(LeaderApi::class.java) - mutableApiResponse.update { api.searchEvents(10,3942).execute().body() } + mutableApiResponse.update { api.searchEvents(10,893,3942).execute().body() } } } } \ No newline at end of file diff --git a/tv-app/effecticeTV/app/tvconfig.gradle b/tv-app/effecticeTV/app/tvconfig.gradle new file mode 100644 index 0000000000000000000000000000000000000000..6ca438b9a22e92d3011afb17d30740f95a3bcb75 --- /dev/null +++ b/tv-app/effecticeTV/app/tvconfig.gradle @@ -0,0 +1 @@ +buildConfigField "String", "apiLeaderUrl", "\"https://leader-id.ru/\"" \ No newline at end of file diff --git a/tv-app/effecticeTV/build.gradle b/tv-app/effecticeTV/build.gradle index 36db330c3fb9bc3cb85d811f95c2210258ea2e33..0410023a0dda6ec562cc76fdcefd7bf6bdfa7f51 100644 --- a/tv-app/effecticeTV/build.gradle +++ b/tv-app/effecticeTV/build.gradle @@ -7,4 +7,6 @@ plugins { id 'com.android.application' version '7.4.2' apply false id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.8.0' apply false + alias libs.plugins.kotlin.kapt apply false + alias libs.plugins.hilt.plug apply false } \ No newline at end of file diff --git a/tv-app/effecticeTV/gradle/libs.versions.toml b/tv-app/effecticeTV/gradle/libs.versions.toml index d29cfab1213a1578cc5c2361016573660af92dd1..fd9c464084cb26a95f623f84676aeaed35f9bc7e 100644 --- a/tv-app/effecticeTV/gradle/libs.versions.toml +++ b/tv-app/effecticeTV/gradle/libs.versions.toml @@ -1,7 +1,30 @@ [versions] retrofit-ver = "2.9.0" -converter-gson-ver = "2.5.0" +tv-ver="1.0.0-alpha04" +moshi-ver="1.14.0" +hilt-var = "2.44" +hilt-nav-var = "1.0.0" +kotlin = "1.8.0" +okhttp3-var = "4.10.0" +retrofit-moshi = "2.9.0" +coil-ver = "2.2.2" [libraries] retrofit = {module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit-ver"} -gson = {module = "com.squareup.retrofit2:converter-gson", version.ref = "converter-gson-ver"} \ No newline at end of file +moshi = {module = "com.squareup.moshi:moshi", version.ref = "moshi-ver"} +moshi-adapter = {module = "com.squareup.moshi:moshi-adapters", version.ref = "moshi-ver"} +tv = {module = "androidx.tv:tv-foundation", version.ref = "tv-ver"} +tvMaterial = {module = "androidx.tv:tv-material", version.ref = "tv-ver"} +hilt = {module = "com.google.dagger:hilt-android", version.ref = "hilt-var"} +hilt-nav = {module = "androidx.hilt:hilt-navigation-compose", version.ref = "hilt-nav-var"} +hitl-compiller = {module = "com.google.dagger:hilt-compiler", version.ref = "hilt-var"} +okhttp3 = {module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp3-var"} +okhttp3-logging = {module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp3-var"} +retrofit-moshi = {module = "com.squareup.retrofit2:converter-moshi", version.ref = "retrofit-moshi"} +moshi-gen = {module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi-ver"} +coil = {module = "io.coil-kt:coil-compose", version.ref = "coil-ver"} + + +[plugins] +kotlin-kapt = {id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin"} +hilt-plug = {id = "com.google.dagger.hilt.android", version.ref = "hilt-var"}