@@ -66,6 +66,7 @@ import org.ole.planet.myplanet.model.RealmStepExam
6666import org.ole.planet.myplanet.model.RealmSubmission
6767import org.ole.planet.myplanet.model.RealmTeamTask
6868import org.ole.planet.myplanet.model.RealmUserModel
69+ import org.ole.planet.myplanet.repository.TeamRepository
6970import org.ole.planet.myplanet.service.UserProfileDbHandler
7071import org.ole.planet.myplanet.ui.SettingActivity
7172import org.ole.planet.myplanet.ui.chat.ChatHistoryListFragment
@@ -109,6 +110,8 @@ class DashboardActivity : DashboardElementActivity(), OnHomeItemClickListener, N
109110 private val dashboardViewModel: DashboardViewModel by viewModels()
110111 @Inject
111112 lateinit var userProfileDbHandler: UserProfileDbHandler
113+ @Inject
114+ lateinit var teamRepository: TeamRepository
112115 private lateinit var challengeHelper: ChallengeHelper
113116 private lateinit var notificationManager: NotificationUtils .NotificationManager
114117 private var notificationsShownThisSession = false
@@ -422,22 +425,7 @@ class DashboardActivity : DashboardElementActivity(), OnHomeItemClickListener, N
422425 private suspend fun handleTaskNavigation (taskId : String? ) {
423426 if (taskId == null ) return
424427
425- val teamData = withContext(Dispatchers .IO ) {
426- var result: Triple <String , String , String >? = null
427- Realm .getDefaultInstance().use { realm ->
428- val task = realm.where(RealmTeamTask ::class .java)
429- .equalTo(" id" , taskId)
430- .findFirst()
431-
432- val linkJson = JSONObject (task?.link ? : " {}" )
433- val teamId = linkJson.optString(" teams" )
434- if (teamId.isNotEmpty()) {
435- val teamObject = realm.where(RealmMyTeam ::class .java)?.equalTo(" _id" , teamId)?.findFirst()
436- result = Triple (teamId, teamObject?.name ? : " " , teamObject?.type ? : " " )
437- }
438- }
439- result
440- }
428+ val teamData = teamRepository.getTaskTeamInfo(taskId)
441429
442430 teamData?.let { (teamId, teamName, teamType) ->
443431 val f = TeamDetailFragment .newInstance(
@@ -450,7 +438,7 @@ class DashboardActivity : DashboardElementActivity(), OnHomeItemClickListener, N
450438 openCallFragment(f)
451439 }
452440 }
453-
441+
454442 private suspend fun handleJoinRequestNavigation (requestId : String? ) {
455443 if (requestId != null ) {
456444 val actualJoinRequestId = if (requestId.startsWith(" join_request_" )) {
@@ -459,20 +447,7 @@ class DashboardActivity : DashboardElementActivity(), OnHomeItemClickListener, N
459447 requestId
460448 }
461449
462- val teamId = withContext(Dispatchers .IO ) {
463- val startTime = System .currentTimeMillis()
464- var localTeamId: String? = null
465- Realm .getDefaultInstance().use { realm ->
466- val joinRequest = realm.where(RealmMyTeam ::class .java)
467- .equalTo(" _id" , actualJoinRequestId)
468- .equalTo(" docType" , " request" )
469- .findFirst()
470- localTeamId = joinRequest?.teamId
471- }
472- val endTime = System .currentTimeMillis()
473- android.util.Log .d(" DashboardActivity" , " Join request query took ${endTime - startTime} ms" )
474- localTeamId
475- }
450+ val teamId = teamRepository.getJoinRequestTeamId(actualJoinRequestId)
476451
477452 if (teamId?.isNotEmpty() == true ) {
478453 val f = TeamDetailFragment ()
0 commit comments