Skip to content

Commit 3a9bfdc

Browse files
authored
all: smoother user repository creating (fixes #11277) (#11251)
1 parent 613312c commit 3a9bfdc

5 files changed

Lines changed: 35 additions & 39 deletions

File tree

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ android {
1111
applicationId "org.ole.planet.myplanet"
1212
minSdk = 26
1313
targetSdk = 36
14-
versionCode = 4605
15-
versionName = "0.46.5"
14+
versionCode = 4606
15+
versionName = "0.46.6"
1616
ndkVersion = '26.3.11579264'
1717
vectorDrawables.useSupportLibrary = true
1818
}

app/src/main/java/org/ole/planet/myplanet/data/DataService.kt

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -192,30 +192,6 @@ class DataService constructor(
192192
}
193193
}
194194

195-
fun becomeMember(obj: JsonObject, callback: CreateUserCallback, securityCallback: OnSecurityDataListener? = null) {
196-
serviceScope.launch {
197-
val result = userRepository.becomeMember(obj)
198-
withContext(Dispatchers.Main) {
199-
if (result.first) {
200-
if (context is ProcessUserDataActivity) {
201-
val userName = obj["name"].asString
202-
context.startUpload("becomeMember", userName, securityCallback)
203-
}
204-
205-
if (result.second == context.getString(R.string.not_connect_to_planet_created_user_offline)) {
206-
Utilities.toast(MainApplication.context, result.second)
207-
securityCallback?.onSecurityDataUpdated()
208-
}
209-
210-
callback.onSuccess(result.second)
211-
} else {
212-
callback.onSuccess(result.second)
213-
securityCallback?.onSecurityDataUpdated()
214-
}
215-
}
216-
}
217-
}
218-
219195
suspend fun syncPlanetServers(callback: OnSuccessListener) {
220196
try {
221197
val response = withContext(Dispatchers.IO) {
@@ -357,10 +333,6 @@ class DataService constructor(
357333
fun onError(msg: String, blockSync: Boolean)
358334
}
359335

360-
interface CreateUserCallback {
361-
fun onSuccess(message: String)
362-
}
363-
364336
interface ConfigurationIdListener {
365337
fun onConfigurationIdReceived(id: String, code: String, url: String, defaultUrl: String, isAlternativeUrl: Boolean, callerActivity: String)
366338
}

app/src/main/java/org/ole/planet/myplanet/repository/UserRepository.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ interface UserRepository {
5959

6060
suspend fun becomeMember(obj: JsonObject): Pair<Boolean, String>
6161

62+
suspend fun createMember(userJson: JsonObject): Result<String>
63+
6264
suspend fun searchUsers(query: String, sortField: String, sortOrder: Sort): List<RealmUser>
6365
suspend fun getHealthRecordsAndAssociatedUsers(
6466
userId: String,

app/src/main/java/org/ole/planet/myplanet/repository/UserRepositoryImpl.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,15 @@ class UserRepositoryImpl @Inject constructor(
323323
}
324324
}
325325

326+
override suspend fun createMember(userJson: JsonObject): Result<String> {
327+
val (isSuccess, message) = becomeMember(userJson)
328+
return if (isSuccess) {
329+
Result.success(message)
330+
} else {
331+
Result.failure(Exception(message))
332+
}
333+
}
334+
326335
private suspend fun uploadToShelf(obj: JsonObject) {
327336
try {
328337
val url = UrlUtils.getUrl() + "/shelf/org.couchdb.user:" + obj["name"].asString

app/src/main/java/org/ole/planet/myplanet/ui/user/BecomeMemberActivity.kt

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.ole.planet.myplanet.MainApplication
1919
import org.ole.planet.myplanet.R
2020
import org.ole.planet.myplanet.base.BaseActivity
2121
import org.ole.planet.myplanet.callback.OnSecurityDataListener
22-
import org.ole.planet.myplanet.data.DataService
2322
import org.ole.planet.myplanet.databinding.ActivityBecomeMemberBinding
2423
import org.ole.planet.myplanet.ui.sync.LoginActivity
2524
import org.ole.planet.myplanet.utils.Constants.PREFS_NAME
@@ -143,18 +142,32 @@ class BecomeMemberActivity : BaseActivity() {
143142
show()
144143
}
145144

146-
DataService(this).becomeMember(obj, object : DataService.CreateUserCallback {
147-
override fun onSuccess(success: String) {
148-
runOnUiThread { Utilities.toast(this@BecomeMemberActivity, success) }
149-
}
150-
}, object : OnSecurityDataListener {
151-
override fun onSecurityDataUpdated() {
152-
runOnUiThread {
145+
lifecycleScope.launch {
146+
val result = userRepository.createMember(obj)
147+
withContext(Dispatchers.Main) {
148+
result.onSuccess { message ->
149+
Utilities.toast(this@BecomeMemberActivity, message)
150+
if (message == getString(R.string.not_connect_to_planet_created_user_offline)) {
151+
customProgressDialog.dismiss()
152+
autoLoginNewMember(info.username, info.password)
153+
} else {
154+
startUpload("becomeMember", info.username, object : OnSecurityDataListener {
155+
override fun onSecurityDataUpdated() {
156+
runOnUiThread {
157+
customProgressDialog.dismiss()
158+
autoLoginNewMember(info.username, info.password)
159+
}
160+
}
161+
})
162+
}
163+
}.onFailure { exception ->
164+
val message = exception.message ?: ""
165+
Utilities.toast(this@BecomeMemberActivity, message)
153166
customProgressDialog.dismiss()
154167
autoLoginNewMember(info.username, info.password)
155168
}
156169
}
157-
})
170+
}
158171
}
159172

160173
override fun onCreate(savedInstanceState: Bundle?) {

0 commit comments

Comments
 (0)