@@ -11,8 +11,6 @@ import androidx.viewpager2.widget.ViewPager2
1111import com.google.android.material.snackbar.Snackbar
1212import com.google.android.material.tabs.TabLayoutMediator
1313import dagger.hilt.android.AndroidEntryPoint
14- import javax.inject.Inject
15- import kotlinx.coroutines.Dispatchers
1614import kotlinx.coroutines.Job
1715import kotlinx.coroutines.launch
1816import kotlinx.coroutines.withContext
@@ -23,6 +21,7 @@ import org.ole.planet.myplanet.base.BaseTeamFragment
2321import org.ole.planet.myplanet.callback.OnBaseRealtimeSyncListener
2422import org.ole.planet.myplanet.callback.OnMemberChangeListener
2523import org.ole.planet.myplanet.callback.OnSyncListener
24+ import org.ole.planet.myplanet.callback.OnTeamPageListener
2625import org.ole.planet.myplanet.callback.OnTeamUpdateListener
2726import org.ole.planet.myplanet.databinding.FragmentTeamDetailBinding
2827import org.ole.planet.myplanet.model.RealmNews
@@ -48,8 +47,10 @@ import org.ole.planet.myplanet.ui.teams.TeamPageConfig.ResourcesPage
4847import org.ole.planet.myplanet.ui.teams.TeamPageConfig.SurveyPage
4948import org.ole.planet.myplanet.ui.teams.TeamPageConfig.TasksPage
5049import org.ole.planet.myplanet.ui.teams.TeamPageConfig.TeamPage
50+ import org.ole.planet.myplanet.ui.teams.courses.TeamCoursesFragment
5151import org.ole.planet.myplanet.utils.DialogUtils
5252import org.ole.planet.myplanet.utils.Utilities
53+ import javax.inject.Inject
5354
5455@AndroidEntryPoint
5556class TeamDetailFragment : BaseTeamFragment (), OnMemberChangeListener, OnTeamUpdateListener {
@@ -294,18 +295,13 @@ class TeamDetailFragment : BaseTeamFragment(), OnMemberChangeListener, OnTeamUpd
294295
295296 binding.viewPager2.adapter = null
296297 binding.viewPager2.adapter = TeamPagerAdapter (
297- requireActivity(),
298- pageConfigs,
299- team?._id ,
300- this ,
301- this
298+ this , pageConfigs, team?._id , this , this
302299 )
303300 binding.tabLayout.tabMode = com.google.android.material.tabs.TabLayout .MODE_SCROLLABLE
304301 binding.tabLayout.isInlineLabel = true
305302
306303 TabLayoutMediator (binding.tabLayout, binding.viewPager2) { tab, position ->
307304 val title = (binding.viewPager2.adapter as TeamPagerAdapter ).getPageTitle(position)
308- val pageConfig = pageConfigs.getOrNull(position)
309305 tab.text = title
310306 }.attach()
311307
@@ -321,6 +317,12 @@ class TeamDetailFragment : BaseTeamFragment(), OnMemberChangeListener, OnTeamUpd
321317 teamLastPage[teamId] = it
322318 }
323319 }
320+
321+ val fragmentTag = " f$position "
322+ val fragment = childFragmentManager.findFragmentByTag(fragmentTag)
323+ if (fragment is OnTeamPageListener ) {
324+ MainApplication .listener = fragment
325+ }
324326 }
325327 }
326328 )
@@ -388,9 +390,27 @@ class TeamDetailFragment : BaseTeamFragment(), OnMemberChangeListener, OnTeamUpd
388390
389391 binding.btnAddDoc.setOnClickListener {
390392 MainApplication .showDownload = true
391- selectPage(DocumentsPage .id)
393+ val coursesPageIndex = pageIndexById(CoursesPage .id)
394+ val isAlreadyOnCoursesPage = coursesPageIndex != null && binding.viewPager2.currentItem == coursesPageIndex
395+
396+ selectPage(CoursesPage .id)
392397 MainApplication .showDownload = false
393- MainApplication .listener?.onAddDocument()
398+
399+ val delay = if (isAlreadyOnCoursesPage) 50L else 300L
400+
401+ binding.root.postDelayed({
402+ val allFragments = childFragmentManager.fragments
403+ val coursesFragment = allFragments.filterIsInstance<TeamCoursesFragment >().firstOrNull()
404+
405+ when {
406+ coursesFragment != null -> {
407+ coursesFragment.onAddCourse()
408+ }
409+ MainApplication .listener is TeamCoursesFragment -> {
410+ MainApplication .listener?.onAddCourse()
411+ }
412+ }
413+ }, delay)
394414 }
395415 }
396416
0 commit comments