class ImagePickerDialog : DialogFragment(), View.OnClickListener {


    companion object {
        fun newInstance(): ImagePickerDialog {
            return ImagePickerDialog()
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NORMAL, R.style.DialogStyle)

    }

    override fun onActivityCreated(arg0: Bundle?) {
        super.onActivityCreated(arg0)
        dialog!!.window!!.attributes.windowAnimations = R.style.DialogZoomAnim

    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        isCancelable = false
        return inflater.inflate(R.layout.dialog_image_picker, container, false)

    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        setListener()
    }

    fun setListener() {
        ll_camera.setOnClickListener(this)
        ll_gallery.setOnClickListener(this)
        txt_dialog_close.setOnClickListener {
            dismiss()
        }
    }

    override fun onResume() {
        super.onResume()
        val window = dialog!!.window
        val size = Point()
        val display = window!!.windowManager.defaultDisplay
        display.getSize(size)
        val width = size.x
        window.setLayout((width * 0.85).toInt(), WindowManager.LayoutParams.WRAP_CONTENT)
        window.setGravity(Gravity.CENTER)
    }


    override fun onClick(view: View?) {
        when (view?.id) {
            R.id.ll_camera -> {
                val values = ContentValues()
                values.put(MediaStore.Images.Media.TITLE, "NEW")
                val capturedImage = activity?.contentResolver
                        ?.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)
                val takePicktureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
                takePicktureIntent.putExtra(MediaStore.EXTRA_OUTPUT, capturedImage)
                activity?.startActivityForResult(takePicktureIntent, Constants.REQUEST_CAMERA)
                dismiss()
            }
            R.id.ll_gallery -> {
                val galleryIntent = Intent(Intent.ACTION_PICK,
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
                activity?.startActivityForResult(galleryIntent, Constants.REQUEST_GALLERY)
                dismiss()
            }
        }
    }
}