Skip to content

Commit 1f6964e

Browse files
committed
support initialize LCUser instance with objectId and sessionToken
1 parent ccf3f9d commit 1f6964e

File tree

5 files changed

+45
-2
lines changed

5 files changed

+45
-2
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
Following is change logs for recently release versions, you can refer to [releases page](https://github.com/leancloud/java-unified-sdk/releases) for more details.
44

5+
## 8.2.6 release
6+
7+
#### Break changes
8+
- None
9+
10+
#### New features
11+
- add new method: LCUser#createWithSessionToken(String objectId, String sessionToken);
12+
13+
#### Optimization and fixed bugs
14+
- None
15+
516
## 8.2.5 release
617

718
#### Break changes

android-sdk/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ allprojects {
3030
}
3131

3232
ext {
33-
sdkVersion = "8.2.5"
33+
sdkVersion = "8.2.6"
3434
supportLibVersion = "26.1.0"
3535
converterVersion = "2.1.0"
3636
rxandroidVersion = "2.1.1"

android-sdk/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ org.gradle.jvmargs=-Xmx1536m
1515
# This option should only be used with decoupled projects. More details, visit
1616
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
1717
# org.gradle.parallel=true
18-
VERSION_NAME=8.2.5
18+
VERSION_NAME=8.2.6
1919
VERSION_CODE=2695
2020
GROUP=cn.leancloud
2121

core/src/main/java/cn/leancloud/LCUser.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,20 @@ public T apply(T result) throws Exception {
834834
});
835835
}
836836

837+
public static LCUser createWithSessionToken(String objectId, String sessionToken) throws LCException {
838+
return createWithSessionToken(LCUser.class, objectId, sessionToken);
839+
}
840+
841+
public static <T extends LCUser> T createWithSessionToken(Class<T> clazz, String objectId, String sessionToken)
842+
throws LCException {
843+
T result = LCObject.createWithoutData(clazz, objectId);
844+
if (null != result) {
845+
result.internalChangeSessionToken(sessionToken);
846+
LCUser.changeCurrentUser(result, true);
847+
}
848+
return result;
849+
}
850+
837851
/**
838852
* user logout.
839853
*/

core/src/test/java/cn/leancloud/LCUserTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,24 @@ protected void tearDown() throws Exception {
3737
LCUser.logOut();
3838
}
3939

40+
public void testCreateUserWithSessionToken() throws Exception {
41+
SubUser target = LCUser.createWithSessionToken(SubUser.class, "objectId", "sessionToken");
42+
assertTrue(null != target);
43+
assertTrue(target.getSessionToken().equals("sessionToken"));
44+
}
45+
46+
// public void testCachedUserAfterCreatedBySessionToken() throws Exception {
47+
// LCUser target = LCUser.getCurrentUser();
48+
// assertTrue(null != target);
49+
// assertTrue(target.getSessionToken().equals("sessionToken"));
50+
// }
51+
52+
public void testCreateSubUserWithSessionToken() throws Exception {
53+
SubUser target = LCUser.createWithSessionToken(SubUser.class, "objectId", "sessionToken");
54+
assertTrue(null != target);
55+
assertTrue(target.getSessionToken().equals("sessionToken"));
56+
}
57+
4058
public static LCUser loginOrSignin(String username, String password, String email) {
4159
try {
4260
LCUser result = LCUser.logIn(username, password).blockingFirst();

0 commit comments

Comments
 (0)