Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Browser White
Commits
60562622
Commit
60562622
authored
Aug 07, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
7b99c807
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
1 deletion
+59
-1
ScanQRCActivity.kt
.../base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
+59
-1
No files found.
app/src/main/java/com/base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
View file @
60562622
package
com.base.browserwhite.ui.activity.scanqrc
package
com.base.browserwhite.ui.activity.scanqrc
import
android.Manifest
import
android.Manifest
import
android.content.pm.PackageManager
import
android.graphics.Color
import
android.graphics.Color
import
android.hardware.camera2.CameraAccessException
import
android.hardware.camera2.CameraCharacteristics
import
android.hardware.camera2.CameraManager
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.camera.core.AspectRatio
import
androidx.camera.core.AspectRatio
import
androidx.camera.core.Camera
import
androidx.camera.core.Camera
...
@@ -9,11 +13,13 @@ import androidx.camera.core.CameraSelector
...
@@ -9,11 +13,13 @@ import androidx.camera.core.CameraSelector
import
androidx.camera.core.Preview
import
androidx.camera.core.Preview
import
androidx.camera.lifecycle.ProcessCameraProvider
import
androidx.camera.lifecycle.ProcessCameraProvider
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat
import
androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.browserwhite.databinding.ActivityScanQrcBinding
import
com.base.browserwhite.databinding.ActivityScanQrcBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.PermissionHelp.checkCameraPermission
import
com.base.browserwhite.utils.PermissionHelp.checkCameraPermission
import
java.util.concurrent.ExecutorService
import
java.util.concurrent.ExecutorService
import
java.util.concurrent.Executors
import
java.util.concurrent.Executors
...
@@ -21,12 +27,16 @@ import kotlin.math.abs
...
@@ -21,12 +27,16 @@ import kotlin.math.abs
import
kotlin.math.max
import
kotlin.math.max
import
kotlin.math.min
import
kotlin.math.min
class
ScanQRCActivity
:
BaseActivity
<
ActivityScanQrcBinding
>()
{
class
ScanQRCActivity
:
BaseActivity
<
ActivityScanQrcBinding
>()
{
private
val
TAG
=
"ScanQRCActivity"
override
val
binding
:
ActivityScanQrcBinding
by
lazy
{
override
val
binding
:
ActivityScanQrcBinding
by
lazy
{
ActivityScanQrcBinding
.
inflate
(
layoutInflater
)
ActivityScanQrcBinding
.
inflate
(
layoutInflater
)
}
}
//相机
//相机
private
var
camera
:
Camera
?
=
null
private
var
camera
:
Camera
?
=
null
private
var
preview
:
Preview
?
=
null
private
var
preview
:
Preview
?
=
null
...
@@ -40,6 +50,12 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -40,6 +50,12 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
val
hasFlash
=
this
.
packageManager
.
hasSystemFeature
(
PackageManager
.
FEATURE_CAMERA_FLASH
)
binding
.
ivShoudian
.
isVisible
=
hasFlash
if
(
hasFlash
)
{
binding
.
ivShoudian
.
isSelected
=
false
}
if
(
checkCameraPermission
())
{
if
(
checkCameraPermission
())
{
initCamera
()
initCamera
()
}
else
{
}
else
{
...
@@ -65,11 +81,24 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -65,11 +81,24 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
onBackPressedDispatcher
.
onBackPressed
()
onBackPressedDispatcher
.
onBackPressed
()
}
}
binding
.
ivShoudian
.
setOnClickListener
{
}
binding
.
ivShoudian
.
setOnClickListener
{
try
{
if
(
binding
.
ivShoudian
.
isSelected
)
{
closeFlash
()
}
else
{
openFlash
()
}
}
catch
(
e
:
Exception
)
{
LogEx
.
logDebug
(
TAG
,
"flash $e"
)
return
@setOnClickListener
}
binding
.
ivShoudian
.
isSelected
=
!
binding
.
ivShoudian
.
isSelected
}
binding
.
ivPhoto
.
setOnClickListener
{
}
binding
.
ivPhoto
.
setOnClickListener
{
}
}
}
private
fun
initCamera
()
{
private
fun
initCamera
()
{
cameraExecutor
=
Executors
.
newSingleThreadExecutor
()
cameraExecutor
=
Executors
.
newSingleThreadExecutor
()
val
cameraProviderFuture
=
ProcessCameraProvider
.
getInstance
(
this
)
val
cameraProviderFuture
=
ProcessCameraProvider
.
getInstance
(
this
)
...
@@ -153,4 +182,33 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -153,4 +182,33 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
private
const
val
RATIO_4_3_VALUE
=
4.0
/
3.0
private
const
val
RATIO_4_3_VALUE
=
4.0
/
3.0
private
const
val
RATIO_16_9_VALUE
=
16.0
/
9.0
private
const
val
RATIO_16_9_VALUE
=
16.0
/
9.0
}
}
private
fun
openFlash
()
{
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
cameraManager
.
setTorchMode
(
getBackCameraId
(),
true
)
}
private
fun
closeFlash
()
{
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
cameraManager
.
setTorchMode
(
getBackCameraId
(),
false
)
}
private
fun
getBackCameraId
():
String
{
var
cameraId
:
String
?
=
null
try
{
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
for
(
id
in
cameraManager
.
cameraIdList
)
{
val
characteristics
:
CameraCharacteristics
=
cameraManager
.
getCameraCharacteristics
(
id
)
if
(
characteristics
.
get
(
CameraCharacteristics
.
LENS_FACING
)
==
CameraCharacteristics
.
LENS_FACING_BACK
)
{
cameraId
=
id
break
}
}
}
catch
(
e
:
CameraAccessException
)
{
e
.
printStackTrace
()
}
return
cameraId
?:
""
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment