parent
							
								
									362de2d493
								
							
						
					
					
						commit
						57dd30ee69
					
				@ -0,0 +1,84 @@ | 
				
			||||
package io.legado.app.ui.widget.dialog | 
				
			||||
 | 
				
			||||
import android.content.Context | 
				
			||||
import android.os.Bundle | 
				
			||||
import android.util.DisplayMetrics | 
				
			||||
import android.view.LayoutInflater | 
				
			||||
import android.view.View | 
				
			||||
import android.view.ViewGroup | 
				
			||||
import androidx.fragment.app.FragmentManager | 
				
			||||
import androidx.recyclerview.widget.LinearLayoutManager | 
				
			||||
import io.legado.app.R | 
				
			||||
import io.legado.app.base.BaseDialogFragment | 
				
			||||
import io.legado.app.base.adapter.ItemViewHolder | 
				
			||||
import io.legado.app.base.adapter.SimpleRecyclerAdapter | 
				
			||||
import kotlinx.android.synthetic.main.dialog_recycler_view.* | 
				
			||||
import kotlinx.android.synthetic.main.item_log.view.* | 
				
			||||
 | 
				
			||||
class TextListDialog : BaseDialogFragment() { | 
				
			||||
 | 
				
			||||
    companion object { | 
				
			||||
        fun show(fragmentManager: FragmentManager, values: ArrayList<String>) { | 
				
			||||
            TextListDialog().apply { | 
				
			||||
                val bundle = Bundle() | 
				
			||||
                bundle.putStringArrayList("values", values) | 
				
			||||
                arguments = bundle | 
				
			||||
            }.show(fragmentManager, "textListDialog") | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    lateinit var adapter: TextAdapter | 
				
			||||
    var values: ArrayList<String>? = null | 
				
			||||
 | 
				
			||||
    override fun onStart() { | 
				
			||||
        super.onStart() | 
				
			||||
        val dm = DisplayMetrics() | 
				
			||||
        activity?.windowManager?.defaultDisplay?.getMetrics(dm) | 
				
			||||
        dialog?.window?.setLayout((dm.widthPixels * 0.9).toInt(), (dm.heightPixels * 0.9).toInt()) | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    override fun onCreateView( | 
				
			||||
        inflater: LayoutInflater, | 
				
			||||
        container: ViewGroup?, | 
				
			||||
        savedInstanceState: Bundle? | 
				
			||||
    ): View? { | 
				
			||||
        return inflater.inflate(R.layout.dialog_recycler_view, container) | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { | 
				
			||||
        tool_bar.title = getString(R.string.log) | 
				
			||||
        arguments?.let { | 
				
			||||
            values = it.getStringArrayList("values") | 
				
			||||
        } | 
				
			||||
        recycler_view.layoutManager = LinearLayoutManager(requireContext()) | 
				
			||||
        adapter = TextAdapter(requireContext()) | 
				
			||||
        recycler_view.adapter = adapter | 
				
			||||
        adapter.setItems(values) | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    class TextAdapter(context: Context) : | 
				
			||||
        SimpleRecyclerAdapter<String>(context, R.layout.item_log) { | 
				
			||||
        override fun convert(holder: ItemViewHolder, item: String, payloads: MutableList<Any>) { | 
				
			||||
            holder.itemView.apply { | 
				
			||||
                if (text_view.getTag(R.id.tag1) == null) { | 
				
			||||
                    val listener = object : View.OnAttachStateChangeListener { | 
				
			||||
                        override fun onViewAttachedToWindow(v: View) { | 
				
			||||
                            text_view.isCursorVisible = false | 
				
			||||
                            text_view.isCursorVisible = true | 
				
			||||
                        } | 
				
			||||
 | 
				
			||||
                        override fun onViewDetachedFromWindow(v: View) {} | 
				
			||||
                    } | 
				
			||||
                    text_view.addOnAttachStateChangeListener(listener) | 
				
			||||
                    text_view.setTag(R.id.tag1, listener) | 
				
			||||
                } | 
				
			||||
                text_view.text = item | 
				
			||||
            } | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        override fun registerListener(holder: ItemViewHolder) { | 
				
			||||
            //nothing | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue