89 lines
3.0 KiB
Kotlin
89 lines
3.0 KiB
Kotlin
package org.pixeldroid.media_editor.photoEdit
|
|
|
|
import android.os.Bundle
|
|
import androidx.fragment.app.Fragment
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import android.widget.SeekBar
|
|
import org.pixeldroid.media_editor.databinding.FragmentEditImageBinding
|
|
|
|
class EditImageFragment : Fragment(), SeekBar.OnSeekBarChangeListener {
|
|
|
|
private var listener: PhotoEditActivity? = null
|
|
private lateinit var binding: FragmentEditImageBinding
|
|
|
|
private var BRIGHTNESS_MAX = 200
|
|
private var SATURATION_MAX = 20
|
|
private var CONTRAST_MAX= 30
|
|
private var BRIGHTNESS_START = BRIGHTNESS_MAX/2
|
|
private var SATURATION_START = SATURATION_MAX/2
|
|
private var CONTRAST_START = CONTRAST_MAX/2
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater, container: ViewGroup?,
|
|
savedInstanceState: Bundle?
|
|
): View {
|
|
// Inflate the layout for this fragment
|
|
binding = FragmentEditImageBinding.inflate(inflater, container, false)
|
|
|
|
binding.seekbarBrightness.max = BRIGHTNESS_MAX
|
|
binding.seekbarBrightness.progress = BRIGHTNESS_START
|
|
|
|
binding.seekbarContrast.max = CONTRAST_MAX
|
|
binding.seekbarContrast.progress = CONTRAST_START
|
|
|
|
binding.seekbarSaturation.max = SATURATION_MAX
|
|
binding.seekbarSaturation.progress = SATURATION_START
|
|
|
|
setOnSeekBarChangeListeners(this)
|
|
|
|
return binding.root
|
|
}
|
|
|
|
private fun setOnSeekBarChangeListeners(listener: EditImageFragment?){
|
|
binding.seekbarBrightness.setOnSeekBarChangeListener(listener)
|
|
binding.seekbarContrast.setOnSeekBarChangeListener(listener)
|
|
binding.seekbarSaturation.setOnSeekBarChangeListener(listener)
|
|
}
|
|
|
|
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
|
|
var prog = progress
|
|
|
|
listener?.let {
|
|
when(seekBar) {
|
|
binding.seekbarBrightness -> it.onBrightnessChange(progress - 100)
|
|
binding.seekbarSaturation -> {
|
|
prog += 10
|
|
it.onSaturationChange(.10f * prog)
|
|
}
|
|
binding.seekbarContrast -> {
|
|
it.onContrastChange(.10f * prog)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fun resetControl() {
|
|
// Make sure to ignore seekbar change events, since we don't want to have the reset cause
|
|
// filter applications due to the onProgressChanged calls
|
|
setOnSeekBarChangeListeners(null)
|
|
binding.seekbarBrightness.progress = BRIGHTNESS_START
|
|
binding.seekbarContrast.progress = CONTRAST_START
|
|
binding.seekbarSaturation.progress = SATURATION_START
|
|
setOnSeekBarChangeListeners(this)
|
|
}
|
|
|
|
override fun onStartTrackingTouch(seekBar: SeekBar?) {
|
|
listener?.onEditStarted()
|
|
}
|
|
|
|
override fun onStopTrackingTouch(seekBar: SeekBar?) {
|
|
listener?.onEditCompleted()
|
|
}
|
|
|
|
fun setListener(listener: PhotoEditActivity) {
|
|
this.listener = listener
|
|
}
|
|
}
|