Skip to content

Commit acf4365

Browse files
authored
Merge pull request #16 from MuShare/develop/binding
Add google and mail computed val for PlutoUser
2 parents f69f754 + c23e69c commit acf4365

File tree

4 files changed

+53
-17
lines changed

4 files changed

+53
-17
lines changed

pluto-kotlin-client-sdk/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ apply plugin: 'kotlin-android-extensions'
44
apply plugin: 'maven-publish'
55

66
buildscript {
7-
ext.versionCode = 12
8-
ext.versionName = '0.6'
7+
ext.versionCode = 13
8+
ext.versionName = '0.6.1'
99
}
1010

1111
android {

pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/Pluto+Binding.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import retrofit2.Response
77
val availableLoginTypes: Array<Pluto.LoginType>
88
get() = arrayOf(Pluto.LoginType.mail, Pluto.LoginType.mail)
99

10-
val Pluto.availableBindings: Array<PlutoUserBinding>?
10+
val Pluto.availableBindings: Array<PlutoUser.Binding>?
1111
get() = data.user?.bindings
1212

1313
fun Pluto.bind(

pluto-kotlin-client-sdk/src/main/java/com/mushare/plutosdk/PlutoModel.kt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,3 @@ internal class PlutoModel(context: Context) {
102102
infoJSONString = null
103103
}
104104
}
105-
106-
data class PlutoUser(
107-
@field:SerializedName("sub") var id: Int,
108-
@field:SerializedName("user_id") var userId: String,
109-
@field:SerializedName("user_id_updated") var userIdUpdated: Boolean,
110-
@field:SerializedName("avatar") var avatar: String,
111-
@field:SerializedName("name") var name: String,
112-
@field:SerializedName("bindings") var bindings: Array<PlutoUserBinding>
113-
)
114-
115-
data class PlutoUserBinding(
116-
@field:SerializedName("login_type") val loginType: Pluto.LoginType,
117-
@field:SerializedName("mail") var mail: String?
118-
)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.mushare.plutosdk
2+
3+
import com.google.gson.annotations.SerializedName
4+
5+
data class PlutoUser(
6+
@field:SerializedName("sub") var id: Int,
7+
@field:SerializedName("user_id") var userId: String,
8+
@field:SerializedName("user_id_updated") var userIdUpdated: Boolean,
9+
@field:SerializedName("avatar") var avatar: String,
10+
@field:SerializedName("name") var name: String,
11+
@field:SerializedName("bindings") var bindings: Array<Binding>
12+
) {
13+
data class Binding(
14+
@field:SerializedName("login_type") val loginType: Pluto.LoginType,
15+
@field:SerializedName("mail") var mail: String?
16+
)
17+
18+
override fun equals(other: Any?): Boolean {
19+
if (this === other) return true
20+
if (javaClass != other?.javaClass) return false
21+
22+
other as PlutoUser
23+
24+
if (id != other.id) return false
25+
if (userId != other.userId) return false
26+
if (userIdUpdated != other.userIdUpdated) return false
27+
if (avatar != other.avatar) return false
28+
if (name != other.name) return false
29+
if (!bindings.contentEquals(other.bindings)) return false
30+
31+
return true
32+
}
33+
34+
override fun hashCode(): Int {
35+
var result = id
36+
result = 31 * result + userId.hashCode()
37+
result = 31 * result + userIdUpdated.hashCode()
38+
result = 31 * result + avatar.hashCode()
39+
result = 31 * result + name.hashCode()
40+
result = 31 * result + bindings.contentHashCode()
41+
return result
42+
}
43+
44+
val mail: Binding?
45+
get() = bindings.firstOrNull { it.loginType == Pluto.LoginType.mail }
46+
47+
val google: Binding?
48+
get() = bindings.firstOrNull { it.loginType == Pluto.LoginType.google }
49+
}
50+

0 commit comments

Comments
 (0)