mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
* MediaDetailFragment.kt: add helper method to retrieve ContributionFragment instance Before this commit, there was no easy way to check for and retrieve the ContributionFragment instance that was either the parent or grandparent (parent's parent) fragment. A complicated if check was required to retrieve it. After this commit, there is a simple helper method which will retrieve the ContributionFragment instance. Existing code can now be replaced by calling this method. * MediaDetailFragment.kt: replace code that is meant to hide nearby card Before this commit, code would attempt to find and hide the nearby card that would appear when the user was looking at media details. However, this code did not work. After this commit, the old code has been replaced with code that correctly hides the nearby card. Also, this new code uses a helper method call and is overall easier to read. --------- Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit is contained in:
parent
0e735512bb
commit
d4a9bacd91
1 changed files with 26 additions and 9 deletions
|
|
@ -467,18 +467,35 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the ContributionsFragment that is potentially the parent, grandparent, etc
|
||||
* fragment of this fragment.
|
||||
*
|
||||
* @return The ContributionsFragment instance. If the ContributionsFragment instance could not
|
||||
* be found, null is returned.
|
||||
*/
|
||||
private fun getContributionsFragmentParent(): ContributionsFragment? {
|
||||
var fragment: Fragment? = this
|
||||
|
||||
while (fragment != null && fragment !is ContributionsFragment) {
|
||||
fragment = fragment.parentFragment
|
||||
}
|
||||
|
||||
if (fragment == null) {
|
||||
return null
|
||||
}
|
||||
|
||||
return fragment as ContributionsFragment
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (parentFragment != null && requireParentFragment().parentFragment != null) {
|
||||
// Added a check because, not necessarily, the parent fragment
|
||||
// will have a parent fragment, say in the case when MediaDetailPagerFragment
|
||||
// is directly started by the CategoryImagesActivity
|
||||
if (parentFragment is ContributionsFragment) {
|
||||
(((parentFragment as ContributionsFragment)
|
||||
.parentFragment) as ContributionsFragment).binding.cardViewNearby.visibility =
|
||||
View.GONE
|
||||
}
|
||||
|
||||
val contributionsFragment: ContributionsFragment? = this.getContributionsFragmentParent()
|
||||
if (contributionsFragment?.binding != null) {
|
||||
contributionsFragment.binding.cardViewNearby.visibility = View.GONE
|
||||
}
|
||||
|
||||
// detail provider is null when fragment is shown in review activity
|
||||
media = if (detailProvider != null) {
|
||||
detailProvider!!.getMediaAtPosition(index)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue