diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt b/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt index 42e73787..3048fdee 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/Preview.kt @@ -29,6 +29,7 @@ import java.util.* class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScanCompletedListener { companion object { val PHOTO_PREVIEW_LENGTH = 1000L + var mCamera: Camera? = null private val TAG = Preview::class.java.simpleName private val FOCUS_AREA_SIZE = 100 @@ -38,7 +39,6 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan lateinit var mCallback: PreviewListener lateinit var mScreenSize: Point lateinit var config: Config - private var mCamera: Camera? = null private var mSupportedPreviewSizes: List? = null private var mPreviewSize: Camera.Size? = null private var mParameters: Camera.Parameters? = null diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt index 99bfc2d3..e53f44b5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt @@ -53,7 +53,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho private var mIsHardwareShutterHandled = false private var mCurrVideoRecTimer = 0 private var mOrientation = 0 - private var mCurrCamera = 0 + private var mCurrCameraId = 0 private var mLastHandledOrientation = 0 } @@ -130,11 +130,11 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho lp.setMargins(0, 0, 0, lp.bottomMargin + mRes.getNavBarHeight()) } - mCurrCamera = config.lastUsedCamera + mCurrCameraId = config.lastUsedCamera mPreview = Preview(this, camera_view, this) mPreview!!.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) view_holder.addView(mPreview) - toggle_camera.setImageResource(if (mCurrCamera == Camera.CameraInfo.CAMERA_FACING_BACK) R.drawable.ic_camera_front else R.drawable.ic_camera_back) + toggle_camera.setImageResource(if (mCurrCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) R.drawable.ic_camera_front else R.drawable.ic_camera_back) mFocusRectView = FocusRectView(applicationContext) view_holder.addView(mFocusRectView) @@ -187,17 +187,17 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho return } - if (mCurrCamera == Camera.CameraInfo.CAMERA_FACING_BACK) { - mCurrCamera = Camera.CameraInfo.CAMERA_FACING_FRONT + if (mCurrCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) { + mCurrCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT } else { - mCurrCamera = Camera.CameraInfo.CAMERA_FACING_BACK + mCurrCameraId = Camera.CameraInfo.CAMERA_FACING_BACK } - config.lastUsedCamera = mCurrCamera + config.lastUsedCamera = mCurrCameraId var newIconId = R.drawable.ic_camera_front mPreview?.releaseCamera() - if (mPreview?.setCamera(mCurrCamera) == true) { - if (mCurrCamera == Camera.CameraInfo.CAMERA_FACING_FRONT) { + if (mPreview?.setCamera(mCurrCameraId) == true) { + if (mCurrCameraId == Camera.CameraInfo.CAMERA_FACING_FRONT) { newIconId = R.drawable.ic_camera_back } toggle_camera.setImageResource(newIconId) @@ -305,8 +305,10 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho } private fun handleChangeResolution() { - ChangeResolutionDialog(this, true) { + if (Preview.mCamera != null) { + ChangeResolutionDialog(this, mCurrCameraId == Camera.CameraInfo.CAMERA_FACING_BACK, Preview.mCamera!!) { + } } } @@ -460,7 +462,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho toggle_camera.beInvisible() } - if (mPreview?.setCamera(mCurrCamera) == true) { + if (mPreview?.setCamera(mCurrCameraId) == true) { hideNavigationBarIcons() checkFlash() diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt index 47eccab5..212ee8ee 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.camera.dialogs +import android.hardware.Camera import android.support.v7.app.AlertDialog import android.view.LayoutInflater import com.simplemobiletools.camera.R @@ -7,7 +8,7 @@ import com.simplemobiletools.camera.activities.SimpleActivity import com.simplemobiletools.commons.extensions.setupDialogStuff import kotlinx.android.synthetic.main.dialog_change_resolution.view.* -class ChangeResolutionDialog(val activity: SimpleActivity, val backCamera: Boolean, val callback: () -> Unit) { +class ChangeResolutionDialog(val activity: SimpleActivity, val isBackCamera: Boolean, val camera: Camera, val callback: () -> Unit) { init { val view = LayoutInflater.from(activity).inflate(R.layout.dialog_change_resolution, null).apply { change_resolution_photo_holder.setOnClickListener { @@ -22,7 +23,7 @@ class ChangeResolutionDialog(val activity: SimpleActivity, val backCamera: Boole AlertDialog.Builder(activity) .setPositiveButton(R.string.ok, null) .create().apply { - activity.setupDialogStuff(view, this, if (backCamera) R.string.back_camera else R.string.front_camera) + activity.setupDialogStuff(view, this, if (isBackCamera) R.string.back_camera else R.string.front_camera) } } } diff --git a/app/src/main/res/layout/dialog_change_resolution.xml b/app/src/main/res/layout/dialog_change_resolution.xml index 489a8626..fa327814 100644 --- a/app/src/main/res/layout/dialog_change_resolution.xml +++ b/app/src/main/res/layout/dialog_change_resolution.xml @@ -30,8 +30,7 @@ android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:background="@null" - android:clickable="false" - android:text="qwe"/> + android:clickable="false"/> @@ -59,8 +58,7 @@ android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:background="@null" - android:clickable="false" - android:text="qwe"/> + android:clickable="false"/>