fix(core/ui): hide download icon for opera viewer with toolbar

This commit is contained in:
rhunk
2023-11-18 11:43:25 +01:00
parent f16eb3a009
commit ad04808289
2 changed files with 23 additions and 0 deletions

View File

@ -16,6 +16,7 @@ import android.os.SystemClock
import android.view.Gravity import android.view.Gravity
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewGroup
import android.widget.Switch import android.widget.Switch
import android.widget.TextView import android.widget.TextView
import me.rhunk.snapenhance.core.util.ktx.getDimens import me.rhunk.snapenhance.core.util.ktx.getDimens
@ -69,6 +70,14 @@ fun View.triggerCloseTouchEvent() {
} }
} }
fun ViewGroup.children(): List<View> {
val children = mutableListOf<View>()
for (i in 0 until childCount) {
children.add(getChildAt(i))
}
return children
}
fun View.iterateParent(predicate: (View) -> Boolean) { fun View.iterateParent(predicate: (View) -> Boolean) {
var parent = this.parent as? View ?: return var parent = this.parent as? View ?: return
while (true) { while (true) {

View File

@ -7,6 +7,7 @@ import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageView import android.widget.ImageView
import me.rhunk.snapenhance.core.features.impl.downloader.MediaDownloader import me.rhunk.snapenhance.core.features.impl.downloader.MediaDownloader
import me.rhunk.snapenhance.core.ui.children
import me.rhunk.snapenhance.core.ui.menu.AbstractMenu import me.rhunk.snapenhance.core.ui.menu.AbstractMenu
import me.rhunk.snapenhance.core.util.ktx.getDimens import me.rhunk.snapenhance.core.util.ktx.getDimens
import me.rhunk.snapenhance.core.util.ktx.getDrawable import me.rhunk.snapenhance.core.util.ktx.getDrawable
@ -34,6 +35,19 @@ class OperaDownloadIconMenu : AbstractMenu() {
setOnClickListener { setOnClickListener {
this@OperaDownloadIconMenu.context.feature(MediaDownloader::class).downloadLastOperaMediaAsync() this@OperaDownloadIconMenu.context.feature(MediaDownloader::class).downloadLastOperaMediaAsync()
} }
addOnAttachStateChangeListener(object: View.OnAttachStateChangeListener {
override fun onViewAttachedToWindow(v: View) {
v.visibility = View.VISIBLE
(parent.parent as? ViewGroup)?.children()?.forEach { child ->
if (child !is ViewGroup) return@forEach
child.children().forEach {
if (it::class.java.name.endsWith("PreviewToolbar")) v.visibility = View.GONE
}
}
}
override fun onViewDetachedFromWindow(v: View) {}
})
}, 0) }, 0)
} }
} }