1 package jp.osdn.gokigen.thetaview.liveview
3 import android.content.Context
4 import android.os.Bundle
5 import android.util.Log
7 import android.widget.ImageButton
8 import androidx.fragment.app.Fragment
9 import jp.osdn.gokigen.thetaview.R
10 import jp.osdn.gokigen.thetaview.operation.ICameraControl
11 import jp.osdn.gokigen.thetaview.preference.IPreferencePropertyAccessor
12 import jp.osdn.gokigen.thetaview.preference.PreferenceAccessWrapper
14 //class LiveImageViewFragment(private val contentLayoutId: Int = R.layout.liveimage_view) : Fragment(contentLayoutId)
15 class LiveImageViewFragment(private val contentLayoutId: Int = R.layout.glsurface_view) : Fragment(contentLayoutId), View.OnTouchListener, GestureDetector.OnGestureListener, ScaleGestureDetector.OnScaleGestureListener
17 private lateinit var liveViewView : View
18 private lateinit var cameraControl: ICameraControl
19 private lateinit var gestureDetector : GestureDetector
20 private lateinit var scaleGestureDetector : ScaleGestureDetector
21 private lateinit var imageView : GokigenGLView
22 private lateinit var informationView : CanvasView
27 private val TAG = toString()
28 fun newInstance() = LiveImageViewFragment().apply { }
31 fun setCameraControl(cameraControl : ICameraControl)
33 this.cameraControl = cameraControl
36 override fun onCreate(savedInstanceState: Bundle?)
38 super.onCreate(savedInstanceState)
41 gestureDetector = GestureDetector(context, this)
42 gestureDetector.setIsLongpressEnabled(true)
43 scaleGestureDetector = ScaleGestureDetector(context, this)
46 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View
48 if (::liveViewView.isInitialized)
52 liveViewView = inflater.inflate(contentLayoutId, null, false)
53 liveViewView.setOnTouchListener(this)
55 //val imageView = liveviewView.findViewById<LiveImageView>(R.id.liveViewFinder0)
56 imageView = liveViewView.findViewById(R.id.liveViewFinder0)
57 informationView = liveViewView.findViewById(R.id.canvasView)
58 if (::cameraControl.isInitialized)
60 liveViewView.findViewById<ImageButton>(R.id.button_camera)?.setOnClickListener(cameraControl.captureButtonReceiver())
62 //cameraControl.setRefresher(imageView, imageView)
63 cameraControl.setRefresher(imageView, imageView)
65 informationView.setShowCameraStatus(PreferenceAccessWrapper(requireContext()).getBoolean(IPreferencePropertyAccessor.SHOW_CAMERA_STATUS, IPreferencePropertyAccessor.SHOW_CAMERA_STATUS_DEFAULT_VALUE))
70 override fun onResume()
73 Log.v(TAG, " onResume() : ")
74 if (::informationView.isInitialized)
76 informationView.setShowCameraStatus(PreferenceAccessWrapper(requireContext()).getBoolean(IPreferencePropertyAccessor.SHOW_CAMERA_STATUS, IPreferencePropertyAccessor.SHOW_CAMERA_STATUS_DEFAULT_VALUE))
80 override fun onPause()
83 Log.v(TAG, " onPause() : ")
86 // View.OnTouchListener
87 override fun onTouch(v: View?, event: MotionEvent?): Boolean
89 //Log.v(TAG, " onTouch()")
95 return (gestureDetector.onTouchEvent(event) || scaleGestureDetector.onTouchEvent(event))
98 // GestureDetector.OnGestureListener
99 override fun onDown(e: MotionEvent?): Boolean
101 //Log.v(TAG, " Gesture onDown")
105 // GestureDetector.OnGestureListener
106 override fun onShowPress(e: MotionEvent?)
108 //Log.v(TAG, " Gesture onShowPress")
111 // GestureDetector.OnGestureListener
112 override fun onSingleTapUp(e: MotionEvent?): Boolean
114 //Log.v(TAG, " Gesture onSingleTapUp")
118 // GestureDetector.OnGestureListener
119 override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean
121 //Log.v(TAG, " Gesture onScroll")
122 imageView.moveView(distanceX, distanceY)
126 // GestureDetector.OnGestureListener
127 override fun onLongPress(e: MotionEvent?)
129 //Log.v(TAG, " Gesture onLongPress")
130 imageView.resetView()
133 // GestureDetector.OnGestureListener
134 override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean
136 //Log.v(TAG, " Gesture onFling")
140 // ScaleGestureDetector.OnScaleGestureListener
141 override fun onScale(detector: ScaleGestureDetector?): Boolean
143 //Log.v(TAG, " Gesture onScale")
146 if (detector != null)
148 imageView.setScaleFactor(detector.scaleFactor)
152 catch (e : Exception)
159 // ScaleGestureDetector.OnScaleGestureListener
160 override fun onScaleBegin(detector: ScaleGestureDetector?): Boolean
162 //Log.v(TAG, " Gesture onScaleBegin")
166 // ScaleGestureDetector.OnScaleGestureListener
167 override fun onScaleEnd(detector: ScaleGestureDetector?)
169 //Log.v(TAG, " Gesture onScaleEnd")