Skip to content

Commit 167d3ce

Browse files
authored
teams: smoother repository resource modelling (fixes #13006) (#12879)
1 parent 2b91b72 commit 167d3ce

5 files changed

Lines changed: 25 additions & 8 deletions

File tree

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ android {
1212
applicationId "org.ole.planet.myplanet"
1313
minSdk = 26
1414
targetSdk = 36
15-
versionCode = 5330
16-
versionName = "0.53.30"
15+
versionCode = 5331
16+
versionName = "0.53.31"
1717
ndkVersion = '26.3.11579264'
1818
vectorDrawables.useSupportLibrary = true
1919
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.ole.planet.myplanet.model
2+
3+
data class TeamResourceDto(
4+
val resourceId: String,
5+
val title: String?
6+
)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import org.ole.planet.myplanet.model.RealmMyTeam
1010
import org.ole.planet.myplanet.model.RealmTeamLog
1111
import org.ole.planet.myplanet.model.RealmTeamTask
1212
import org.ole.planet.myplanet.model.RealmUser
13+
import org.ole.planet.myplanet.model.TeamResourceDto
1314
import org.ole.planet.myplanet.model.TeamSummary
1415
import org.ole.planet.myplanet.model.Transaction
1516

@@ -72,7 +73,7 @@ interface TeamsRepository {
7273
suspend fun requestToJoin(teamId: String, userId: String?, userPlanetCode: String?, teamType: String?)
7374
suspend fun leaveTeam(teamId: String, userId: String?)
7475
suspend fun removeMember(teamId: String, userId: String)
75-
suspend fun addResourceLinks(teamId: String, resources: List<RealmMyLibrary>, user: RealmUser?)
76+
suspend fun addResourceLinks(teamId: String, resources: List<TeamResourceDto>, userId: String?)
7677
suspend fun removeResourceLink(teamId: String, resourceId: String)
7778
suspend fun deleteTask(taskId: String)
7879
suspend fun upsertTask(task: RealmTeamTask)

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import org.ole.planet.myplanet.model.RealmMyTeam
3030
import org.ole.planet.myplanet.model.RealmTeamLog
3131
import org.ole.planet.myplanet.model.RealmTeamTask
3232
import org.ole.planet.myplanet.model.RealmUser
33+
import org.ole.planet.myplanet.model.TeamResourceDto
3334
import org.ole.planet.myplanet.model.TeamSummary
3435
import org.ole.planet.myplanet.model.Transaction
3536
import org.ole.planet.myplanet.model.User
@@ -689,18 +690,22 @@ class TeamsRepositoryImpl @Inject constructor(
689690

690691
override suspend fun addResourceLinks(
691692
teamId: String,
692-
resources: List<RealmMyLibrary>,
693-
user: RealmUser?,
693+
resources: List<TeamResourceDto>,
694+
userId: String?,
694695
) {
695-
if (teamId.isBlank() || resources.isEmpty() || user == null) return
696+
if (teamId.isBlank() || resources.isEmpty() || userId.isNullOrBlank()) return
697+
698+
val user = findByField(RealmUser::class.java, "id", userId)
699+
?: findByField(RealmUser::class.java, "_id", userId)
700+
?: return
696701

697702
val teamResources = resources.map { resource ->
698703
val teamResource = RealmMyTeam()
699704
teamResource._id = UUID.randomUUID().toString()
700705
teamResource.teamId = teamId
701706
teamResource.title = resource.title
702707
teamResource.status = user.parentCode
703-
teamResource.resourceId = resource._id
708+
teamResource.resourceId = resource.resourceId
704709
teamResource.docType = "resourceLink"
705710
teamResource.updated = true
706711
teamResource.teamType = "local"

app/src/main/java/org/ole/planet/myplanet/ui/teams/resources/TeamResourcesFragment.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import org.ole.planet.myplanet.databinding.FragmentTeamResourceBinding
2727
import org.ole.planet.myplanet.databinding.MyLibraryAlertdialogBinding
2828
import org.ole.planet.myplanet.model.RealmMyLibrary
2929
import org.ole.planet.myplanet.model.RealmNews
30+
import org.ole.planet.myplanet.model.TeamResourceDto
3031
import org.ole.planet.myplanet.ui.components.CheckboxAdapter
3132
import org.ole.planet.myplanet.ui.resources.AddResourceFragment
3233

@@ -116,8 +117,12 @@ class TeamResourcesFragment : BaseTeamFragment(), OnTeamPageListener, OnResource
116117
.setPositiveButton(R.string.add) { _: DialogInterface?, _: Int ->
117118
val selectedResources = (myLibraryAlertdialogBinding.alertDialogListView.adapter as CheckboxAdapter).selectedItemsList
118119
.map { index -> availableLibraries[index] }
120+
.mapNotNull {
121+
val id = it._id
122+
if (id != null) TeamResourceDto(id, it.title) else null
123+
}
119124
viewLifecycleOwner.lifecycleScope.launch {
120-
teamsRepository.addResourceLinks(teamId, selectedResources, user)
125+
teamsRepository.addResourceLinks(teamId, selectedResources, user?.id)
121126
showLibraryList()
122127
}
123128
}

0 commit comments

Comments
 (0)