mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-02-16 19:30:40 +01:00
fix #26, add automatic flash
This commit is contained in:
parent
10549b4542
commit
604c5b9e76
@ -34,9 +34,9 @@ class Config(context: Context) : BaseConfig(context) {
|
|||||||
get() = prefs.getInt(LAST_USED_CAMERA, Camera.CameraInfo.CAMERA_FACING_BACK)
|
get() = prefs.getInt(LAST_USED_CAMERA, Camera.CameraInfo.CAMERA_FACING_BACK)
|
||||||
set(cameraId) = prefs.edit().putInt(LAST_USED_CAMERA, cameraId).apply()
|
set(cameraId) = prefs.edit().putInt(LAST_USED_CAMERA, cameraId).apply()
|
||||||
|
|
||||||
var lastFlashlightState: Boolean
|
var flashlightState: Int
|
||||||
get() = prefs.getBoolean(LAST_FLASHLIGHT_STATE, false)
|
get() = prefs.getInt(FLASHLIGHT_STATE, FLASH_OFF)
|
||||||
set(enabled) = prefs.edit().putBoolean(LAST_FLASHLIGHT_STATE, enabled).apply()
|
set(state) = prefs.edit().putInt(FLASHLIGHT_STATE, state).apply()
|
||||||
|
|
||||||
var backPhotoResIndex: Int
|
var backPhotoResIndex: Int
|
||||||
get() = prefs.getInt(BACK_PHOTO_RESOLUTION_INDEX, -1)
|
get() = prefs.getInt(BACK_PHOTO_RESOLUTION_INDEX, -1)
|
||||||
|
@ -9,8 +9,12 @@ val SAVE_PHOTOS = "save_photos"
|
|||||||
val SHOW_PREVIEW = "show_preview"
|
val SHOW_PREVIEW = "show_preview"
|
||||||
val SOUND = "sound"
|
val SOUND = "sound"
|
||||||
val LAST_USED_CAMERA = "last_used_camera"
|
val LAST_USED_CAMERA = "last_used_camera"
|
||||||
val LAST_FLASHLIGHT_STATE = "last_flashlight_state"
|
val FLASHLIGHT_STATE = "flashlight_state"
|
||||||
val BACK_PHOTO_RESOLUTION_INDEX = "back_photo_resolution_index"
|
val BACK_PHOTO_RESOLUTION_INDEX = "back_photo_resolution_index"
|
||||||
val BACK_VIDEO_RESOLUTION_INDEX = "back_video_resolution_index"
|
val BACK_VIDEO_RESOLUTION_INDEX = "back_video_resolution_index"
|
||||||
val FRONT_PHOTO_RESOLUTION_INDEX = "front_photo_resolution_index"
|
val FRONT_PHOTO_RESOLUTION_INDEX = "front_photo_resolution_index"
|
||||||
val FRONT_VIDEO_RESOLUTION_INDEX = "front_video_resolution_index"
|
val FRONT_VIDEO_RESOLUTION_INDEX = "front_video_resolution_index"
|
||||||
|
|
||||||
|
val FLASH_OFF = 0
|
||||||
|
val FLASH_ON = 1
|
||||||
|
val FLASH_AUTO = 2
|
||||||
|
@ -6,6 +6,7 @@ import android.graphics.Rect
|
|||||||
import android.hardware.Camera
|
import android.hardware.Camera
|
||||||
import android.media.*
|
import android.media.*
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@ -44,7 +45,6 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
|
|
||||||
private var mCurrVideoPath = ""
|
private var mCurrVideoPath = ""
|
||||||
private var mCanTakePicture = false
|
private var mCanTakePicture = false
|
||||||
private var mIsFlashEnabled = false
|
|
||||||
private var mIsRecording = false
|
private var mIsRecording = false
|
||||||
private var mIsVideoMode = false
|
private var mIsVideoMode = false
|
||||||
private var mIsSurfaceCreated = false
|
private var mIsSurfaceCreated = false
|
||||||
@ -68,7 +68,6 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
mSurfaceHolder.addCallback(this)
|
mSurfaceHolder.addCallback(this)
|
||||||
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
|
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
|
||||||
mCanTakePicture = false
|
mCanTakePicture = false
|
||||||
mIsFlashEnabled = false
|
|
||||||
mIsVideoMode = false
|
mIsVideoMode = false
|
||||||
mIsSurfaceCreated = false
|
mIsSurfaceCreated = false
|
||||||
mSetupPreviewAfterMeasure = false
|
mSetupPreviewAfterMeasure = false
|
||||||
@ -267,7 +266,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||||
mCamera!!.enableShutterSound(false)
|
mCamera!!.enableShutterSound(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -465,15 +464,18 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
fun enableFlash() {
|
fun enableFlash() {
|
||||||
mParameters!!.flashMode = Camera.Parameters.FLASH_MODE_TORCH
|
mParameters!!.flashMode = Camera.Parameters.FLASH_MODE_TORCH
|
||||||
mCamera!!.parameters = mParameters
|
mCamera!!.parameters = mParameters
|
||||||
mIsFlashEnabled = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun disableFlash() {
|
fun disableFlash() {
|
||||||
mIsFlashEnabled = false
|
|
||||||
mParameters!!.flashMode = Camera.Parameters.FLASH_MODE_OFF
|
mParameters!!.flashMode = Camera.Parameters.FLASH_MODE_OFF
|
||||||
mCamera!!.parameters = mParameters
|
mCamera!!.parameters = mParameters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun autoFlash() {
|
||||||
|
mParameters!!.flashMode = Camera.Parameters.FLASH_MODE_AUTO
|
||||||
|
mCamera!!.parameters = mParameters
|
||||||
|
}
|
||||||
|
|
||||||
fun initPhotoMode() {
|
fun initPhotoMode() {
|
||||||
stopRecording()
|
stopRecording()
|
||||||
cleanupRecorder()
|
cleanupRecorder()
|
||||||
|
@ -44,7 +44,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
|
|||||||
|
|
||||||
private var mPreview: Preview? = null
|
private var mPreview: Preview? = null
|
||||||
private var mPreviewUri: Uri? = null
|
private var mPreviewUri: Uri? = null
|
||||||
private var mIsFlashEnabled = false
|
private var mFlashlightState = FLASH_OFF
|
||||||
private var mIsInPhotoMode = false
|
private var mIsInPhotoMode = false
|
||||||
private var mIsAskingPermissions = false
|
private var mIsAskingPermissions = false
|
||||||
private var mIsCameraAvailable = false
|
private var mIsCameraAvailable = false
|
||||||
@ -140,7 +140,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
|
|||||||
mIsInPhotoMode = true
|
mIsInPhotoMode = true
|
||||||
mTimerHandler = Handler()
|
mTimerHandler = Handler()
|
||||||
mFadeHandler = Handler()
|
mFadeHandler = Handler()
|
||||||
mIsFlashEnabled = config.lastFlashlightState
|
mFlashlightState = config.flashlightState
|
||||||
setupPreviewImage(true)
|
setupPreviewImage(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,30 +228,37 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
mIsFlashEnabled = !mIsFlashEnabled
|
mFlashlightState = ++mFlashlightState % 3
|
||||||
checkFlash()
|
checkFlash()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkFlash() {
|
private fun checkFlash() {
|
||||||
if (mIsFlashEnabled) {
|
when (mFlashlightState) {
|
||||||
enableFlash()
|
FLASH_ON -> enableFlash()
|
||||||
} else {
|
FLASH_AUTO -> autoFlash()
|
||||||
disableFlash()
|
else -> disableFlash()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun disableFlash() {
|
private fun disableFlash() {
|
||||||
mPreview?.disableFlash()
|
mPreview?.disableFlash()
|
||||||
toggle_flash.setImageResource(R.drawable.ic_flash_off)
|
toggle_flash.setImageResource(R.drawable.ic_flash_off)
|
||||||
mIsFlashEnabled = false
|
mFlashlightState = FLASH_OFF
|
||||||
config.lastFlashlightState = mIsFlashEnabled
|
config.flashlightState = FLASH_OFF
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun enableFlash() {
|
private fun enableFlash() {
|
||||||
mPreview?.enableFlash()
|
mPreview?.enableFlash()
|
||||||
toggle_flash.setImageResource(R.drawable.ic_flash_on)
|
toggle_flash.setImageResource(R.drawable.ic_flash_on)
|
||||||
mIsFlashEnabled = true
|
mFlashlightState = FLASH_ON
|
||||||
config.lastFlashlightState = mIsFlashEnabled
|
config.flashlightState = FLASH_ON
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun autoFlash() {
|
||||||
|
mPreview?.autoFlash()
|
||||||
|
toggle_flash.setImageResource(R.drawable.ic_flash_auto)
|
||||||
|
mFlashlightState = FLASH_AUTO
|
||||||
|
config.flashlightState = FLASH_AUTO
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun shutterPressed() {
|
private fun shutterPressed() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user