From 3fe81ffb3c730f0dc9f645149dc20c31284cd790 Mon Sep 17 00:00:00 2001 From: Koen <koen@pop-os.localdomain> Date: Fri, 3 Nov 2023 17:30:34 +0100 Subject: [PATCH] Added new properties. --- .../java/com/futo/polycentric/core/Models.kt | 7 ++++- .../com/futo/polycentric/core/SystemState.kt | 31 ++++++++++++++++++- .../java/com/futo/polycentric/core/Utility.kt | 7 +---- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/futo/polycentric/core/Models.kt b/app/src/main/java/com/futo/polycentric/core/Models.kt index 97d2793..4cb2620 100644 --- a/app/src/main/java/com/futo/polycentric/core/Models.kt +++ b/app/src/main/java/com/futo/polycentric/core/Models.kt @@ -22,7 +22,12 @@ enum class ContentType(val value: Long) { BANNER(13), OPINION(14), STORE(15), - AUTHORITY(16) + AUTHORITY(16), + STORE_DATA(17), + PROMOTION_BANNER(18), + PROMOTION(19), + MEMBERSHIP_URLS(20), + DONATION_DESTINATIONS(21) } enum class ClaimType(val value: Long) { diff --git a/app/src/main/java/com/futo/polycentric/core/SystemState.kt b/app/src/main/java/com/futo/polycentric/core/SystemState.kt index 27353c6..c9f5351 100644 --- a/app/src/main/java/com/futo/polycentric/core/SystemState.kt +++ b/app/src/main/java/com/futo/polycentric/core/SystemState.kt @@ -2,6 +2,8 @@ package com.futo.polycentric.core import com.futo.polycentric.core.serializers.ImageBundleSerializer import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json import userpackage.Protocol @Serializable @@ -14,6 +16,11 @@ class SystemState( val store: String, @Serializable(with = ImageBundleSerializer::class) val avatar: Protocol.ImageBundle?, @Serializable(with = ImageBundleSerializer::class) val banner: Protocol.ImageBundle?, + var storeData: String, + var promotion: String, + var membershipUrls: List<String>, + var donationDestinations: List<String>, + @Serializable(with = ImageBundleSerializer::class) val promotionBanner: Protocol.ImageBundle?, ) { override fun toString(): String { return "(servers: $servers, processes: $processes, username: $username, description: $description, store: $store, avatar: $avatar, banner: $banner)" @@ -43,6 +50,11 @@ class SystemState( var username = "" var description = "" var store = "" + var storeData = "" + var promotion = "" + var membershipUrls: List<String> = listOf() + var donationDestinations: List<String> = listOf() + var promotionBanner: Protocol.ImageBundle? = null var avatar: Protocol.ImageBundle? = null var banner: Protocol.ImageBundle? = null proto.crdtItems.forEach { item -> @@ -62,10 +74,27 @@ class SystemState( ContentType.BANNER.value -> { banner = Protocol.ImageBundle.parseFrom(item.value) } + ContentType.STORE_DATA.value -> { + storeData = item.value.decodeToString() + } + ContentType.PROMOTION_BANNER.value -> { + promotionBanner = Protocol.ImageBundle.parseFrom(item.value) + } + ContentType.PROMOTION.value -> { + promotion = item.value.decodeToString() + } + ContentType.MEMBERSHIP_URLS.value -> { + val json = item.value.decodeToString() + membershipUrls = Json.decodeFromString(json) + } + ContentType.DONATION_DESTINATIONS.value -> { + val json = item.value.decodeToString() + donationDestinations = Json.decodeFromString(json) + } } } - return SystemState(servers.toTypedArray(), authorities.toTypedArray(), processes.toTypedArray(), username, description, store, avatar, banner) + return SystemState(servers.toTypedArray(), authorities.toTypedArray(), processes.toTypedArray(), username, description, store, avatar, banner, storeData, promotion, membershipUrls, donationDestinations, promotionBanner) } } } diff --git a/app/src/main/java/com/futo/polycentric/core/Utility.kt b/app/src/main/java/com/futo/polycentric/core/Utility.kt index 1dafe61..ac6d91d 100644 --- a/app/src/main/java/com/futo/polycentric/core/Utility.kt +++ b/app/src/main/java/com/futo/polycentric/core/Utility.kt @@ -130,12 +130,7 @@ fun Protocol.ImageManifest.toURLInfoDataLink(system: Protocol.PublicKey, process } fun Protocol.ImageManifest.toURLInfoSystemLinkUrl(processHandle: ProcessHandle, servers: Iterable<String>): String { - val urlInfo = Protocol.URLInfo.newBuilder() - .setUrlType(4) - .setBody(toURLInfoDataLink(processHandle.system.toProto(), processHandle.processSecret.process.toProto(), servers).toByteString()) - .build() - - return "polycentric://" + urlInfo.toByteArray().toBase64Url() + return toURLInfoSystemLinkUrl(processHandle.system.toProto(), processHandle.processSecret.process.toProto(), servers) } fun Protocol.ImageManifest.toURLInfoSystemLinkUrl(system: Protocol.PublicKey, process: Protocol.Process, servers: Iterable<String>): String { -- GitLab