glide icon indicating copy to clipboard operation
glide copied to clipboard

View inside onResourceReady is null, in DialogFragment

Open champnc opened this issue 3 years ago • 0 comments
trafficstars

Glide Version: 4.12.0

Device/Android Version: on some device

Issue details / Repro steps / Use case background: What I expected is when image loaded then the close button will appear. What I facing is when app launched and image loaded, some user cannot click on close button or some crash. bind view using Kotlin synthetic.

Glide load line / GlideModule (if any) / list Adapter code (if any):

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        //set dialog full screen
        dialog?.let {
            it.apply {
                requestWindowFeature(Window.FEATURE_NO_TITLE)
                window?.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
                        WindowManager.LayoutParams.MATCH_PARENT)
                window?.setBackgroundDrawableResource(android.R.color.transparent)
            }
            setStyle(STYLE_NO_INPUT, android.R.style.Theme)
        }

        arguments?.let {
            popData = PopupData(
                    it.getInt(POPUP_ID, 0),
                    it.getString(IMG_URL, ""),
                    it.getString(DEST_URL, "")
            )
        }
        bindView()
    }

    private fun bindView() {
        popData?.let {
            Glide.with(context!!)
                    .load(it.imgUrl)
                    .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
                    .apply(RequestOptions().override(1000, 1000))
                    .listener(object : RequestListener<Drawable> {
                        override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
                            dialog?.dismiss()
                            return false
                        }

                        override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
                            ic_close.visibility = View.VISIBLE
                            return false
                        }

                    })
                    .into(img_information)
        }
        img_information.setOnClickListener(this)
        view_background.setOnClickListener(this)
        ic_close.setOnClickListener(this)
    }

Layout XML:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/view_background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.95" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.05" />

        <androidx.cardview.widget.CardView
            android:id="@+id/info_cardview"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:backgroundTint="@android:color/transparent"
            app:cardCornerRadius="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/guideline2"
            app:layout_constraintStart_toStartOf="@+id/guideline3"
            app:layout_constraintTop_toTopOf="parent">

            <ImageView
                android:id="@+id/img_information"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="fitXY" />

            <ImageView
                android:id="@+id/ic_close"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_gravity="end"
                android:layout_marginTop="15dp"
                android:layout_marginEnd="15dp"
                android:background="@drawable/ic_cancel"
                android:visibility="gone" />

        </androidx.cardview.widget.CardView>

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

Stack trace / LogCat: image

champnc avatar May 13 '22 02:05 champnc