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 53675a84515b9a7cfb6534390d9ab879b624f9cf..5edf9319f351fe9c0b5c42a7aab6f9b36a7c2a0d 100644 --- a/app/src/main/java/com/futo/polycentric/core/Models.kt +++ b/app/src/main/java/com/futo/polycentric/core/Models.kt @@ -20,7 +20,8 @@ enum class ContentType(val value: Long) { VOUCH(11), CLAIM(12), BANNER(13), - OPINION(14) + OPINION(14), + STORE(15) } enum class ClaimType(val value: String) { @@ -881,4 +882,4 @@ class Models { .build(); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt index 108e4323b7e490054756766695cb8e5fb496e2ce..1d6fb69c0cfa77f2b8d701cfbc23a9ceb9aea016 100644 --- a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt +++ b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt @@ -40,55 +40,51 @@ class ProcessHandle constructor( ) } - fun setUsername(username: String): Pointer { + fun setCRDTItem(contentType: Long, value: ByteArray): Pointer { return publish( - ContentType.USERNAME.value, + contentType, ByteArray(0), null, LWWElement( - username.toByteArray(), + value, Date().time ), mutableListOf() ) } + fun setUsername(username: String): Pointer { + return setCRDTItem( + ContentType.USERNAME.value, + username.toByteArray() + ) + } + fun setDescription(description: String): Pointer { - return publish( + return setCRDTItem( ContentType.DESCRIPTION.value, - ByteArray(0), - null, - LWWElement( - description.toByteArray(), - Date().time - ), - mutableListOf() + description.toByteArray(), + ) + } + + fun setStore(storeLink: String): Pointer { + return setCRDTItem( + ContentType.STORE.value, + storeLink.toByteArray(), ) } fun setBanner(banner: Pointer): Pointer { - return publish( + return setCRDTItem( ContentType.BANNER.value, - ByteArray(0), - null, - LWWElement( - banner.toProto().toByteArray(), - Date().time - ), - mutableListOf() + banner.toProto().toByteArray(), ) } fun setAvatar(avatar: Pointer): Pointer { - return publish( + return setCRDTItem( ContentType.AVATAR.value, - ByteArray(0), - null, - LWWElement( - avatar.toProto().toByteArray(), - Date().time - ), - mutableListOf() + avatar.toProto().toByteArray(), ) } 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 f58178442e1269d58bcf5805d79ad953c9d0a93e..b0a453fff20045cd8e20b38fb428291f970cacc2 100644 --- a/app/src/main/java/com/futo/polycentric/core/SystemState.kt +++ b/app/src/main/java/com/futo/polycentric/core/SystemState.kt @@ -7,11 +7,12 @@ class SystemState( val processes: Array<Process>, val username: String, val description: String, + val store: String, val avatar: Pointer?, val banner: Pointer? ) { override fun toString(): String { - return "(servers: $servers, processes: $processes, username: $username, description: $description, avatar: $avatar, banner: $banner)"; + return "(servers: $servers, processes: $processes, username: $username, description: $description, store: $store, avatar: $avatar, banner: $banner)"; } companion object { @@ -25,6 +26,7 @@ class SystemState( var username = "" var description = "" + var store = "" var avatar: Pointer? = null var banner: Pointer? = null proto.crdtItems.forEach { item -> @@ -35,6 +37,9 @@ class SystemState( ContentType.DESCRIPTION.value -> { description = item.value.decodeToString() } + ContentType.STORE.value -> { + store = item.value.decodeToString() + } ContentType.AVATAR.value -> { avatar = Pointer.fromProto(Protocol.Pointer.parseFrom(item.value)) } @@ -44,7 +49,7 @@ class SystemState( } } - return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, avatar, banner) + return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, store, avatar, banner) } } -} \ No newline at end of file +}