@@ -39,9 +39,9 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
3939 lateinit var mFocusRectView: FocusRectView
4040 lateinit var mTimerHandler: Handler
4141 lateinit var mFadeHandler: Handler
42- lateinit var mPreview: Preview
4342 lateinit var mRes: Resources
4443
44+ private var mPreview: Preview ? = null
4545 private var mPreviewUri: Uri ? = null
4646 private var mIsFlashEnabled = false
4747 private var mIsInPhotoMode = false
@@ -64,13 +64,6 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
6464 tryInitCamera()
6565
6666 supportActionBar?.hide()
67-
68- toggle_camera.setOnClickListener { toggleCamera() }
69- last_photo_video_preview.setOnClickListener { showLastMediaPreview() }
70- toggle_flash.setOnClickListener { toggleFlash() }
71- shutter.setOnClickListener { shutterPressed() }
72- settings.setOnClickListener { launchSettings() }
73- toggle_photo_video.setOnClickListener { handleTogglePhotoVideo() }
7467 }
7568
7669 override fun onKeyDown (keyCode : Int , event : KeyEvent ): Boolean {
@@ -118,7 +111,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
118111 hideToggleModeAbout()
119112 val output = intent.extras.get(MediaStore .EXTRA_OUTPUT )
120113 if (output != null && output is Uri ) {
121- mPreview.setTargetUri(output)
114+ mPreview? .setTargetUri(output)
122115 }
123116 } else if (intent.action == MediaStore .ACTION_VIDEO_CAPTURE ) {
124117 mIsVideoCaptureIntent = true
@@ -130,6 +123,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
130123
131124 private fun initializeCamera () {
132125 setContentView(R .layout.activity_main)
126+ initButtons()
133127
134128 if (Utils .hasNavBar(mRes) && Build .VERSION .SDK_INT >= Build .VERSION_CODES .JELLY_BEAN_MR1 ) {
135129 val lp = btn_holder.layoutParams as RelativeLayout .LayoutParams
@@ -138,7 +132,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
138132
139133 mCurrCamera = config.lastUsedCamera
140134 mPreview = Preview (this , camera_view, this )
141- mPreview.layoutParams = ViewGroup .LayoutParams (ViewGroup .LayoutParams .MATCH_PARENT , ViewGroup .LayoutParams .MATCH_PARENT )
135+ mPreview!! .layoutParams = ViewGroup .LayoutParams (ViewGroup .LayoutParams .MATCH_PARENT , ViewGroup .LayoutParams .MATCH_PARENT )
142136 view_holder.addView(mPreview)
143137 toggle_camera.setImageResource(if (mCurrCamera == Camera .CameraInfo .CAMERA_FACING_BACK ) R .mipmap.camera_front else R .mipmap.camera_back)
144138
@@ -153,6 +147,15 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
153147 setupPreviewImage(true )
154148 }
155149
150+ private fun initButtons () {
151+ toggle_camera.setOnClickListener { toggleCamera() }
152+ last_photo_video_preview.setOnClickListener { showLastMediaPreview() }
153+ toggle_flash.setOnClickListener { toggleFlash() }
154+ shutter.setOnClickListener { shutterPressed() }
155+ settings.setOnClickListener { launchSettings() }
156+ toggle_photo_video.setOnClickListener { handleTogglePhotoVideo() }
157+ }
158+
156159 private fun hasCameraAndStoragePermission () = Utils .hasCameraPermission(applicationContext) && hasStoragePermission()
157160
158161 override fun onRequestPermissionsResult (requestCode : Int , permissions : Array <String >, grantResults : IntArray ) {
@@ -191,8 +194,8 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
191194
192195 config.lastUsedCamera = mCurrCamera
193196 var newIconId = R .mipmap.camera_front
194- mPreview.releaseCamera()
195- if (mPreview.setCamera(mCurrCamera)) {
197+ mPreview? .releaseCamera()
198+ if (mPreview? .setCamera(mCurrCamera) == true ) {
196199 if (mCurrCamera == Camera .CameraInfo .CAMERA_FACING_FRONT ) {
197200 newIconId = R .mipmap.camera_back
198201 }
@@ -240,14 +243,14 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
240243 }
241244
242245 private fun disableFlash () {
243- mPreview.disableFlash()
246+ mPreview? .disableFlash()
244247 toggle_flash.setImageResource(R .mipmap.flash_off)
245248 mIsFlashEnabled = false
246249 config.lastFlashlightState = mIsFlashEnabled
247250 }
248251
249252 private fun enableFlash () {
250- mPreview.enableFlash()
253+ mPreview? .enableFlash()
251254 toggle_flash.setImageResource(R .mipmap.flash_on)
252255 mIsFlashEnabled = true
253256 config.lastFlashlightState = mIsFlashEnabled
@@ -262,11 +265,10 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
262265 private fun handleShutter () {
263266 if (mIsInPhotoMode) {
264267 toggleBottomButtons(true )
265- mPreview.takePicture()
268+ mPreview? .takePicture()
266269 Handler ().postDelayed({ toggleBottomButtons(false ) }, Preview .PHOTO_PREVIEW_LENGTH .toLong())
267270 } else {
268- val isRecording = mPreview.toggleRecording()
269- if (isRecording) {
271+ if (mPreview?.toggleRecording() == true ) {
270272 shutter.setImageDrawable(mRes.getDrawable(R .mipmap.video_stop))
271273 toggle_camera.visibility = View .INVISIBLE
272274 showTimer()
@@ -311,7 +313,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
311313 }
312314
313315 if (mIsVideoCaptureIntent)
314- mPreview.trySwitchToVideo()
316+ mPreview? .trySwitchToVideo()
315317
316318 disableFlash()
317319 hideTimer()
@@ -330,12 +332,12 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
330332 private fun initPhotoButtons () {
331333 toggle_photo_video.setImageDrawable(mRes.getDrawable(R .mipmap.videocam))
332334 shutter.setImageDrawable(mRes.getDrawable(R .mipmap.camera))
333- mPreview.initPhotoMode()
335+ mPreview? .initPhotoMode()
334336 setupPreviewImage(true )
335337 }
336338
337339 private fun tryInitVideoButtons () {
338- if (mPreview.initRecorder()) {
340+ if (mPreview? .initRecorder() == true ) {
339341 initVideoButtons()
340342 } else {
341343 if (! mIsVideoCaptureIntent) {
@@ -446,7 +448,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
446448 toggle_camera.visibility = View .INVISIBLE
447449 }
448450
449- if (mPreview.setCamera(mCurrCamera)) {
451+ if (mPreview? .setCamera(mCurrCamera) == true ) {
450452 hideNavigationBarIcons()
451453 checkFlash()
452454
@@ -470,7 +472,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
470472 mFadeHandler.removeCallbacksAndMessages(null )
471473
472474 hideTimer()
473- mPreview.releaseCamera()
475+ mPreview? .releaseCamera()
474476 mSensorManager.unregisterListener(this )
475477 }
476478
@@ -558,7 +560,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
558560 override fun onDestroy () {
559561 super .onDestroy()
560562 config.isFirstRun = false
561- mPreview.releaseCamera()
563+ mPreview? .releaseCamera()
562564 }
563565
564566 override fun onScanCompleted (path : String , uri : Uri ) = setupPreviewImage(mIsInPhotoMode)
0 commit comments