Skip to content

Commit 1e4fb6e

Browse files
author
Pavel
committed
camera bug rotation camera type fixed
1 parent c02fe47 commit 1e4fb6e

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

app/src/main/java/com/haretskiy/pavel/magiccamera/Constants.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ const val BUNDLE_KEY_PREFS_CAMERA_SIZE = "camera_size_prefs"
2020
const val BUNDLE_KEY_CAMERA1_ID = "BUNDLE_KEY_CAMERA1_ID"
2121
const val BUNDLE_KEY_CAMERA_GOOGLE = "BUNDLE_KEY_CAMERA_GOOGLE"
2222
const val BUNDLE_KEY_FRAGMENT_ID = "BUNDLE_KEY_FRAGMENT_ID"
23+
const val BUNDLE_KEY_CAMERA_TYPE_STATE = "BUNDLE_KEY_CAMERA_TYPE_STATE"
24+
2325
//Camera2 constants
2426
const val CODE_REQUEST_CAMERA_PERMISSION = 1
2527
const val PIC_FILE_NAME = "photo.jpg"
@@ -48,7 +50,7 @@ const val MAX_PREVIEW_HEIGHT = 1080
4850
const val TWO_CAMERAS = 2
4951
const val ONE_CAMERA = 1
5052
const val NO_CAMERA = 0
51-
const val NOTHING_CAMERA = -1
53+
const val CAMERA_TYPE_NOT_FOUND = -1
5254

5355
//Camera constants
5456
const val FULL_SCREEN = true

app/src/main/java/com/haretskiy/pavel/magiccamera/ui/fragments/GoogleVisionFragment.kt

+6-10
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ class GoogleVisionFragment : Fragment() {
3838
private val cameraSourceManager: CameraSourceManager by inject()
3939
private val router: Router by inject()
4040

41-
private var cameraType = NOTHING_CAMERA
41+
private var cameraType = CAMERA_TYPE_NOT_FOUND
4242
private var cameras = Camera.getNumberOfCameras()
4343
private var mCameraSource: CameraSource? = null
4444

4545
override fun onCreate(savedInstanceState: Bundle?) {
4646
super.onCreate(savedInstanceState)
47-
cameraType = savedInstanceState?.getInt(BUNDLE_KEY_CAMERA_GOOGLE, NOTHING_CAMERA) ?: NOTHING_CAMERA
47+
cameraType = prefs.getCameraType()
4848
cameraSourceManager.cameraSourceLiveData.observe(this, Observer {
4949
if (mCameraSource != null) {
5050
mCameraSource?.release()
@@ -70,11 +70,6 @@ class GoogleVisionFragment : Fragment() {
7070
})
7171
}
7272

73-
override fun onSaveInstanceState(outState: Bundle) {
74-
super.onSaveInstanceState(outState)
75-
outState.putInt(BUNDLE_KEY_CAMERA_GOOGLE, cameraType)
76-
}
77-
7873
/**
7974
* Restarts the camera.
8075
*/
@@ -97,6 +92,7 @@ class GoogleVisionFragment : Fragment() {
9792
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
9893
preview.stop()
9994
setViewsVisible(false)
95+
prefs.saveCameraType(cameraType)
10096
}
10197

10298
/**
@@ -161,9 +157,9 @@ class GoogleVisionFragment : Fragment() {
161157
}
162158

163159
private fun initCameraType() {
164-
if (cameraType == NOTHING_CAMERA) {
160+
if (cameraType == CAMERA_TYPE_NOT_FOUND) {
165161
when (cameras) {
166-
NO_CAMERA -> cameraType = NOTHING_CAMERA
162+
NO_CAMERA -> cameraType = CAMERA_TYPE_NOT_FOUND
167163
ONE_CAMERA -> cameraType = CameraSource.CAMERA_FACING_BACK
168164
TWO_CAMERAS -> cameraType = CameraSource.CAMERA_FACING_FRONT
169165
}
@@ -172,7 +168,7 @@ class GoogleVisionFragment : Fragment() {
172168

173169
private fun choseCamera() {
174170
when (cameras) {
175-
NO_CAMERA -> cameraType = NOTHING_CAMERA
171+
NO_CAMERA -> cameraType = CAMERA_TYPE_NOT_FOUND
176172
ONE_CAMERA -> cameraType = CameraSource.CAMERA_FACING_BACK
177173
TWO_CAMERAS -> cameraType = when (cameraType) {
178174
CameraSource.CAMERA_FACING_BACK -> CameraSource.CAMERA_FACING_FRONT

app/src/main/java/com/haretskiy/pavel/magiccamera/utils/Prefs.kt

+6
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ class Prefs(context: Context) {
2626
if (email != null) save(BUNDLE_KEY_EMAIL, email)
2727
}
2828

29+
fun saveCameraType(camera: Int) {
30+
save(BUNDLE_KEY_CAMERA_TYPE_STATE, camera)
31+
}
32+
33+
fun getCameraType() = getInt(BUNDLE_KEY_CAMERA_TYPE_STATE, CAMERA_TYPE_NOT_FOUND)
34+
2935
fun getUserEmail(): String = getString(BUNDLE_KEY_EMAIL, EMPTY_STRING)
3036

3137
fun saveLastPhotoUri(email: String, uri: String) {

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4-
ext.kotlin_version = '1.2.40'
4+
ext.kotlin_version = '1.2.41'
55
repositories {
66
google()
77
jcenter()
@@ -12,7 +12,7 @@ buildscript {
1212
dependencies {
1313
classpath 'com.android.tools.build:gradle:3.1.2'
1414
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
15-
classpath 'io.fabric.tools:gradle:1.25.2'
15+
classpath 'io.fabric.tools:gradle:1.25.3'
1616
classpath 'com.google.gms:google-services:3.2.0'
1717
}
1818
}

0 commit comments

Comments
 (0)