@@ -231,7 +231,7 @@ class CamConfig(private val mActivity: MainActivity) {
231
231
232
232
var latestUri: Uri ? = null
233
233
234
- val mPlayer: TunePlayer = TunePlayer (mActivity)
234
+ val mPlayer: TunePlayer by lazy { TunePlayer (mActivity.applicationContext) }
235
235
236
236
private val commonPref = when (mActivity) {
237
237
is SecureMainActivity -> {
@@ -271,7 +271,7 @@ class CamConfig(private val mActivity: MainActivity) {
271
271
private set
272
272
273
273
val isFlashAvailable: Boolean
274
- get() = camera!! .cameraInfo.hasFlashUnit()
274
+ get() = camera? .cameraInfo? .hasFlashUnit() ? : false
275
275
276
276
var isTorchOn: Boolean = false
277
277
get() {
@@ -1027,10 +1027,8 @@ class CamConfig(private val mActivity: MainActivity) {
1027
1027
}
1028
1028
1029
1029
fun updatePreview () {
1030
-
1031
- if (latestUri == null ) return
1032
-
1033
- if (isVideo(latestUri!! )) {
1030
+ val uri = latestUri ? : return
1031
+ if (isVideo(uri)) {
1034
1032
try {
1035
1033
mActivity.imagePreview.setImageBitmap(
1036
1034
getVideoThumbnail(mActivity, latestUri)
@@ -1161,7 +1159,7 @@ class CamConfig(private val mActivity: MainActivity) {
1161
1159
.requireLensFacing(lensFacing)
1162
1160
.build()
1163
1161
1164
- return cameraProvider!! .hasCamera(tCameraSelector)
1162
+ return cameraProvider? .hasCamera(tCameraSelector) ? : false
1165
1163
}
1166
1164
1167
1165
// Start the camera with latest hard configuration
@@ -1197,7 +1195,7 @@ class CamConfig(private val mActivity: MainActivity) {
1197
1195
mActivity.updateLastFrame()
1198
1196
1199
1197
// Unbind/close all other camera(s) [if any]
1200
- cameraProvider!! .unbindAll()
1198
+ cameraProvider? .unbindAll()
1201
1199
1202
1200
if (extensionsManager.isExtensionAvailable(cameraSelector, extensionMode)) {
1203
1201
cameraSelector = extensionsManager.getExtensionEnabledCameraSelector(
@@ -1210,18 +1208,19 @@ class CamConfig(private val mActivity: MainActivity) {
1210
1208
val useCaseGroupBuilder = UseCaseGroup .Builder ()
1211
1209
1212
1210
if (isQRMode) {
1213
- qrAnalyzer = QRAnalyzer (mActivity)
1211
+ val analyzer = QRAnalyzer (mActivity)
1212
+ val mIAnalyzer = ImageAnalysis .Builder ()
1213
+ .setTargetResolution(Size (960 , 960 ))
1214
+ .setOutputImageRotationEnabled(true )
1215
+ .build()
1216
+ qrAnalyzer = analyzer
1214
1217
mActivity.startFocusTimer()
1215
- iAnalyzer =
1216
- ImageAnalysis .Builder ()
1217
- .setTargetResolution(Size (960 , 960 ))
1218
- .setOutputImageRotationEnabled(true )
1219
- .build()
1220
- iAnalyzer!! .setAnalyzer(cameraExecutor, qrAnalyzer!! )
1218
+ iAnalyzer = mIAnalyzer
1219
+ mIAnalyzer.setAnalyzer(cameraExecutor, analyzer)
1221
1220
cameraSelector = CameraSelector .Builder ()
1222
1221
.requireLensFacing(CameraSelector .LENS_FACING_BACK )
1223
1222
.build()
1224
- useCaseGroupBuilder.addUseCase(iAnalyzer !! )
1223
+ useCaseGroupBuilder.addUseCase(mIAnalyzer )
1225
1224
1226
1225
} else {
1227
1226
if (isVideoMode) {
@@ -1281,9 +1280,11 @@ class CamConfig(private val mActivity: MainActivity) {
1281
1280
.setTargetAspectRatio(aspectRatio)
1282
1281
.build()
1283
1282
1284
- useCaseGroupBuilder.addUseCase(preview!! )
1283
+ preview?.let {
1284
+ useCaseGroupBuilder.addUseCase(it)
1285
+ }
1285
1286
1286
- preview!! .setSurfaceProvider(mActivity.previewView.surfaceProvider)
1287
+ preview? .setSurfaceProvider(mActivity.previewView.surfaceProvider)
1287
1288
1288
1289
mActivity.forceUpdateOrientationSensor()
1289
1290
@@ -1295,8 +1296,12 @@ class CamConfig(private val mActivity: MainActivity) {
1295
1296
} catch (exception : IllegalArgumentException ) {
1296
1297
if (isVideoMode) {
1297
1298
val newUseCaseGroupBuilder = UseCaseGroup .Builder ()
1298
- newUseCaseGroupBuilder.addUseCase(videoCapture!! )
1299
- newUseCaseGroupBuilder.addUseCase(preview!! )
1299
+ videoCapture?.let {
1300
+ newUseCaseGroupBuilder.addUseCase(it)
1301
+ }
1302
+ preview?.let {
1303
+ newUseCaseGroupBuilder.addUseCase(it)
1304
+ }
1300
1305
imageCapture = null
1301
1306
1302
1307
camera = cameraProvider!! .bindToLifecycle(
@@ -1311,15 +1316,15 @@ class CamConfig(private val mActivity: MainActivity) {
1311
1316
1312
1317
loadTabs()
1313
1318
1314
- camera!! .cameraInfo.zoomState.observe(mActivity) {
1319
+ camera? .cameraInfo? .zoomState? .observe(mActivity) {
1315
1320
if (it.linearZoom != 0f ) {
1316
1321
mActivity.zoomBar.updateThumb()
1317
1322
}
1318
1323
}
1319
1324
1320
1325
mActivity.zoomBar.updateThumb(false )
1321
1326
1322
- mActivity.exposureBar.setExposureConfig(camera !! .cameraInfo.exposureState)
1327
+ camera?.cameraInfo?.exposureState?. let { mActivity.exposureBar.setExposureConfig(it) }
1323
1328
1324
1329
mActivity.settingsDialog.torchToggle.isChecked = false
1325
1330
0 commit comments