From 159a4f245f66e6787d1398f303a9290ad1b34e2f Mon Sep 17 00:00:00 2001 From: Meng Li Date: Sat, 5 Dec 2020 01:57:26 +0900 Subject: [PATCH 1/3] Add google and mail computed val for PlutoUser --- .../java/com/mushare/plutosdk/PlutoModel.kt | 14 ------ .../java/com/mushare/plutosdk/PlutoUser.kt | 50 +++++++++++++++++++ 2 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoUser.kt diff --git a/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoModel.kt b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoModel.kt index a36b869..e03daee 100644 --- a/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoModel.kt +++ b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoModel.kt @@ -99,17 +99,3 @@ internal class PlutoModel(context: Context) { infoJSONString = null } } - -data class PlutoUser( - @field:SerializedName("sub") var id: Int, - @field:SerializedName("user_id") var userId: String, - @field:SerializedName("user_id_updated") var userIdUpdated: Boolean, - @field:SerializedName("avatar") var avatar: String, - @field:SerializedName("name") var name: String, - @field:SerializedName("bindings") var bindings: Array -) - -data class PlutoUserBinding( - @field:SerializedName("login_type") val loginType: Pluto.LoginType, - @field:SerializedName("mail") var mail: String? -) \ No newline at end of file diff --git a/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoUser.kt b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoUser.kt new file mode 100644 index 0000000..51e0d5a --- /dev/null +++ b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoUser.kt @@ -0,0 +1,50 @@ +package com.mushare.plutosdk + +import com.google.gson.annotations.SerializedName + +data class PlutoUser( + @field:SerializedName("sub") var id: Int, + @field:SerializedName("user_id") var userId: String, + @field:SerializedName("user_id_updated") var userIdUpdated: Boolean, + @field:SerializedName("avatar") var avatar: String, + @field:SerializedName("name") var name: String, + @field:SerializedName("bindings") var bindings: Array +) { + data class Binding( + @field:SerializedName("login_type") val loginType: Pluto.LoginType, + @field:SerializedName("mail") var mail: String? + ) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as PlutoUser + + if (id != other.id) return false + if (userId != other.userId) return false + if (userIdUpdated != other.userIdUpdated) return false + if (avatar != other.avatar) return false + if (name != other.name) return false + if (!bindings.contentEquals(other.bindings)) return false + + return true + } + + override fun hashCode(): Int { + var result = id + result = 31 * result + userId.hashCode() + result = 31 * result + userIdUpdated.hashCode() + result = 31 * result + avatar.hashCode() + result = 31 * result + name.hashCode() + result = 31 * result + bindings.contentHashCode() + return result + } + + val mail: Binding? + get() = bindings.firstOrNull { it.loginType == Pluto.LoginType.mail } + + val google: Binding? + get() = bindings.firstOrNull { it.loginType == Pluto.LoginType.google } +} + From 63bb323cce0c330c8d84869c46c2df261a2f87e4 Mon Sep 17 00:00:00 2001 From: Meng Li Date: Sat, 5 Dec 2020 01:57:59 +0900 Subject: [PATCH 2/3] Bump up version to 0.5.1 --- pluto-kotlin-client-sdk/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pluto-kotlin-client-sdk/build.gradle b/pluto-kotlin-client-sdk/build.gradle index 9106f40..76e0d10 100644 --- a/pluto-kotlin-client-sdk/build.gradle +++ b/pluto-kotlin-client-sdk/build.gradle @@ -4,8 +4,8 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'maven-publish' buildscript { - ext.versionCode = 12 - ext.versionName = '0.5' + ext.versionCode = 13 + ext.versionName = '0.5.1' } android { From 1308d80330134b49e6c9a060c7138858961cf74a Mon Sep 17 00:00:00 2001 From: Meng Li Date: Sat, 5 Dec 2020 11:46:39 +0900 Subject: [PATCH 3/3] Fix build error --- .../src/main/java/com/mushare/plutosdk/Pluto+Binding.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/Pluto+Binding.kt b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/Pluto+Binding.kt index af88e3d..0d78f11 100644 --- a/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/Pluto+Binding.kt +++ b/pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/Pluto+Binding.kt @@ -7,7 +7,7 @@ import retrofit2.Response val availableLoginTypes: Array get() = arrayOf(Pluto.LoginType.mail, Pluto.LoginType.mail) -val Pluto.availableBindings: Array? +val Pluto.availableBindings: Array? get() = data.user?.bindings fun Pluto.bind(