Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
22_23-J 50
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
22_23-J 50
22_23-J 50
Commits
60cb60e4
Commit
60cb60e4
authored
May 11, 2023
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial project files added
parent
558f07f8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
102 additions
and
0 deletions
+102
-0
Frontend/currency detector/AbstractCameraXActivity.java
Frontend/currency detector/AbstractCameraXActivity.java
+102
-0
No files found.
Frontend/currency detector/AbstractCameraXActivity.java
0 → 100644
View file @
60cb60e4
package
com.sliit.lkrdetectionandroid
;
import
android.Manifest
;
import
android.content.pm.PackageManager
;
import
android.os.Bundle
;
import
android.os.SystemClock
;
import
android.util.Size
;
import
android.view.TextureView
;
import
android.widget.Toast
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.UiThread
;
import
androidx.annotation.WorkerThread
;
import
androidx.camera.core.CameraX
;
import
androidx.camera.core.ImageAnalysis
;
import
androidx.camera.core.ImageAnalysisConfig
;
import
androidx.camera.core.ImageProxy
;
import
androidx.camera.core.Preview
;
import
androidx.camera.core.PreviewConfig
;
import
androidx.core.app.ActivityCompat
;
public
abstract
class
AbstractCameraXActivity
<
R
>
extends
BaseModuleActivity
{
private
static
final
int
REQUEST_CODE_CAMERA_PERMISSION
=
200
;
private
static
final
String
[]
PERMISSIONS
=
{
android
.
Manifest
.
permission
.
CAMERA
};
private
long
mLastAnalysisResultTime
;
protected
abstract
int
getContentViewLayoutId
();
protected
abstract
TextureView
getCameraPreviewTextureView
();
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
getContentViewLayoutId
());
startBackgroundThread
();
if
(
ActivityCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
CAMERA
)
!=
PackageManager
.
PERMISSION_GRANTED
)
{
ActivityCompat
.
requestPermissions
(
this
,
PERMISSIONS
,
REQUEST_CODE_CAMERA_PERMISSION
);
}
else
{
setupCameraX
();
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
String
[]
permissions
,
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
REQUEST_CODE_CAMERA_PERMISSION
)
{
if
(
grantResults
[
0
]
==
PackageManager
.
PERMISSION_DENIED
)
{
Toast
.
makeText
(
this
,
"You can't use object detection example without granting CAMERA permission"
,
Toast
.
LENGTH_LONG
)
.
show
();
finish
();
}
else
{
setupCameraX
();
}
}
}
private
void
setupCameraX
()
{
final
TextureView
textureView
=
getCameraPreviewTextureView
();
final
PreviewConfig
previewConfig
=
new
PreviewConfig
.
Builder
().
build
();
final
Preview
preview
=
new
Preview
(
previewConfig
);
preview
.
setOnPreviewOutputUpdateListener
(
output
->
textureView
.
setSurfaceTexture
(
output
.
getSurfaceTexture
()));
final
ImageAnalysisConfig
imageAnalysisConfig
=
new
ImageAnalysisConfig
.
Builder
()
.
setTargetResolution
(
new
Size
(
480
,
640
))
.
setCallbackHandler
(
mBackgroundHandler
)
.
setImageReaderMode
(
ImageAnalysis
.
ImageReaderMode
.
ACQUIRE_LATEST_IMAGE
)
.
build
();
final
ImageAnalysis
imageAnalysis
=
new
ImageAnalysis
(
imageAnalysisConfig
);
imageAnalysis
.
setAnalyzer
((
image
,
rotationDegrees
)
->
{
if
(
SystemClock
.
elapsedRealtime
()
-
mLastAnalysisResultTime
<
500
)
{
return
;
}
final
R
result
=
analyzeImage
(
image
,
rotationDegrees
);
if
(
result
!=
null
)
{
mLastAnalysisResultTime
=
SystemClock
.
elapsedRealtime
();
runOnUiThread
(()
->
applyToUiAnalyzeImageResult
(
result
));
}
});
CameraX
.
bindToLifecycle
(
this
,
preview
,
imageAnalysis
);
}
@WorkerThread
@Nullable
protected
abstract
R
analyzeImage
(
ImageProxy
image
,
int
rotationDegrees
);
@UiThread
protected
abstract
void
applyToUiAnalyzeImageResult
(
R
result
);
}
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