diff --git a/lib/src/main/java/com/aurora/gplayapi/data/builders/AppBuilder.kt b/lib/src/main/java/com/aurora/gplayapi/data/builders/AppBuilder.kt index e2b4534d8948096a1ae594a3d5544e3d5c0da983..281824f62ca5605b83be7a03ce339193c8d7af03 100644 --- a/lib/src/main/java/com/aurora/gplayapi/data/builders/AppBuilder.kt +++ b/lib/src/main/java/com/aurora/gplayapi/data/builders/AppBuilder.kt @@ -21,6 +21,8 @@ import com.aurora.gplayapi.DetailsResponse import com.aurora.gplayapi.Item import com.aurora.gplayapi.data.models.ActiveDevice import com.aurora.gplayapi.data.models.App +import com.aurora.gplayapi.data.models.Artwork +import com.aurora.gplayapi.data.models.ContentRating import com.aurora.gplayapi.data.models.EncodedCertificateSet import com.aurora.gplayapi.data.models.File import com.aurora.gplayapi.data.models.details.Badge @@ -112,6 +114,7 @@ object AppBuilder { parseInfoBadges(app, item) parseStreamUrls(app, item) parseRating(app, item) + parseContentRating(app, item) parseArtwork(app, item) parseDependencies(app, appDetails) @@ -193,6 +196,20 @@ object AppBuilder { app.rating = RatingBuilder.build(item.aggregateRating) } + private fun parseContentRating(app: App, item: Item) { + app.contentRating = ContentRating( + title = item.contentRating.title, + description = item.contentRating.description, + recommendation = item.contentRating.recommendation, + artwork = Artwork( + width = item.contentRating.contentRatingImage.dimension.width, + height = item.contentRating.contentRatingImage.dimension.height, + url = item.contentRating.contentRatingImage.image.url + ), + recommendationAndDescriptionHtml = item.contentRating.recommendationAndDescriptionHtml, + ) + } + private fun parseDependencies(app: App, appDetails: AppDetails) { if (appDetails.hasDependencies()) { appDetails.dependencies.let { diff --git a/lib/src/main/java/com/aurora/gplayapi/data/models/App.kt b/lib/src/main/java/com/aurora/gplayapi/data/models/App.kt index 4d9b367f4f6e146c5772fef3226441d0b8fab820..3ad84bc9008d3fe3c6da1fa53d4b8a683b481d98 100644 --- a/lib/src/main/java/com/aurora/gplayapi/data/models/App.kt +++ b/lib/src/main/java/com/aurora/gplayapi/data/models/App.kt @@ -84,7 +84,8 @@ data class App( var videoArtwork: Artwork = Artwork(), var certificateHashList: MutableList = mutableListOf(), var certificateSetList: MutableList = mutableListOf(), - val compatibility: MutableList = mutableListOf() + val compatibility: MutableList = mutableListOf(), + var contentRating: ContentRating = ContentRating() ) : Parcelable { override fun hashCode(): Int { diff --git a/lib/src/main/java/com/aurora/gplayapi/data/models/ContentRating.kt b/lib/src/main/java/com/aurora/gplayapi/data/models/ContentRating.kt new file mode 100644 index 0000000000000000000000000000000000000000..1cb61e56f56308c67a12e19e7eabe5253657de93 --- /dev/null +++ b/lib/src/main/java/com/aurora/gplayapi/data/models/ContentRating.kt @@ -0,0 +1,13 @@ +package com.aurora.gplayapi.data.models + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class ContentRating( + val title: String = String(), + val description: String = String(), + val recommendation: String = String(), + val artwork: Artwork = Artwork(), + val recommendationAndDescriptionHtml: String = String() +) : Parcelable diff --git a/lib/src/main/proto/GooglePlay.proto b/lib/src/main/proto/GooglePlay.proto index 8845166ec29c7d09f4f072f5672814e3411e766b..582aefb6765ff1d220af814e78486b69c867d3c5 100644 --- a/lib/src/main/proto/GooglePlay.proto +++ b/lib/src/main/proto/GooglePlay.proto @@ -1169,6 +1169,26 @@ message Item { optional bool useWishlistAsPrimaryAction = 33; optional string reviewQuestionsUrl = 34; optional string reviewSummaryUrl = 39; + optional ContentRating contentRating = 50; +} + +message ContentRating { + message ContentRatingImage { + message Dimension { + optional int32 width = 3; + optional int32 height = 4; + } + message Image { + optional string url = 1; + } + optional Dimension dimension = 3; + optional Image image = 6; + } + optional string title = 1; + optional string recommendationAndDescriptionHtml = 2; + optional ContentRatingImage contentRatingImage = 3; + optional string recommendation = 5; + optional string description = 6; } message AppInfo {