package com.sinata.xqmuse.dialog
|
|
import android.content.Context
|
import android.view.Gravity
|
import android.view.KeyEvent
|
import android.view.WindowManager
|
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.InputMethodManager
|
import androidx.core.os.bundleOf
|
import androidx.fragment.app.FragmentManager
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_reply.*
|
|
class ReplyDialog:BaseDialogFragment() {
|
override fun setContentView() = R.layout.dialog_reply
|
|
override fun setGravity() = Gravity.BOTTOM
|
|
var callback:StringCallback? = null
|
|
override fun initView() {
|
et_content.hint = arguments?.getString("name")
|
et_content.setOnEditorActionListener { v, actionId, event ->
|
val content = et_content.text.toString()
|
if ((actionId == EditorInfo.IME_ACTION_SEND||actionId == EditorInfo.IME_ACTION_UNSPECIFIED)&&event?.action?:-1 == KeyEvent.ACTION_DOWN){
|
if (content.isEmpty())
|
myToast("请输入评论内容")
|
else{
|
callback?.onResult(content)
|
dismissAllowingStateLoss()
|
}
|
}
|
return@setOnEditorActionListener false
|
}
|
et_content.postDelayed({
|
et_content.requestFocus()
|
dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
|
val imm = requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
imm.showSoftInput(et_content,InputMethodManager.SHOW_IMPLICIT)
|
},500)
|
}
|
|
companion object{
|
fun show(fm: FragmentManager, name:String, callback: StringCallback){
|
val editUserDialog = ReplyDialog()
|
editUserDialog.arguments = bundleOf("name" to name)
|
editUserDialog.callback = callback
|
editUserDialog.showAllowingStateLoss(fm,"reply")
|
}
|
}
|
}
|