public abstract class BaseOverlayController extends java.lang.Object implements ScanningOverlay
| Modifier and Type | Field and Description |
|---|---|
protected android.app.AlertDialog |
errorDialog |
protected android.os.Handler |
handler |
protected OverlayState |
overlayState |
protected RecognizerRunnerFragment |
recognizerRunnerFragment |
protected RecognizerRunnerView |
recognizerRunnerView |
protected ScanResultListener |
scanResultListener |
protected ScanSoundPlayer |
scanSoundPlayer |
protected TorchController |
torchController |
| Modifier | Constructor and Description |
|---|---|
protected |
BaseOverlayController(ScanResultListener scanResultListener) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract int |
getBeepSoundResourceId() |
protected android.content.Context |
getContext() |
protected abstract int |
getSplashScreenLayoutId() |
protected void |
onCameraAutofocusFailed() |
protected void |
onFragmentConfigurationChanged(android.content.res.Configuration newConfig) |
protected void |
onFragmentCreated(android.os.Bundle savedInstanceState) |
protected void |
onFragmentDestroyed() |
protected void |
onFragmentPaused() |
protected void |
onFragmentResumed() |
protected void |
onFragmentSaveInstanceState(android.os.Bundle outState) |
protected void |
onFragmentStarted() |
protected void |
onFragmentStopped() |
void |
onFrameRecognitionDone(RecognitionSuccessType recognitionSuccessType)
Called for each camera frame, after the recognition has been completed.
|
void |
onRecognizerRunnerFragmentAttached(RecognizerRunnerFragment recognizerRunnerFragment,
android.app.Activity activity)
Called after
RecognizerRunnerFragment gets attached to its host activity. |
void |
onRecognizerRunnerViewCreated(RecognizerRunnerFragment recognizerRunnerFragment)
Called when
RecognizerRunnerView has been created within given
RecognizerRunnerFragment. |
void |
onUnrecoverableError(java.lang.Throwable throwable)
This method is called when the scanning cannot be performed because of an error.
|
void |
pauseScanning()
If the
RecognizerRunnerView has been created, pauses the scanning
loop by calling RecognizerRunnerView.pauseScanning(). |
void |
resumeScanning()
If the
RecognizerRunnerView has been created, resumes the scanning
loop (that has been paused) by calling RecognizerRunnerView.resumeScanning(boolean) }. |
protected void |
setMeteringAreas() |
protected abstract boolean |
shouldResetStateOnRecognizerResume() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonScanningDone@NonNull protected ScanResultListener scanResultListener
@NonNull protected OverlayState overlayState
@Nullable protected RecognizerRunnerFragment recognizerRunnerFragment
@Nullable protected RecognizerRunnerView recognizerRunnerView
@NonNull protected android.os.Handler handler
@Nullable protected android.app.AlertDialog errorDialog
@NonNull protected ScanSoundPlayer scanSoundPlayer
@NonNull protected TorchController torchController
protected BaseOverlayController(@NonNull
ScanResultListener scanResultListener)
@CallSuper
public void onRecognizerRunnerViewCreated(@NonNull
RecognizerRunnerFragment recognizerRunnerFragment)
ScanningOverlayRecognizerRunnerView has been created within given
RecognizerRunnerFragment. You can use RecognizerRunnerFragment.getRecognizerRunnerView()
to get the created RecognizerRunnerView and configure it.
The most important thing you should do in this method is to set RecognizerBundle to
created RecognizerRunnerView using RecognizerRunnerView.setRecognizerBundle(RecognizerBundle).
You can also register various callbacks to RecognizerRunnerView, except CameraEventsListener
(using BaseCameraView.setCameraEventsListener(CameraEventsListener)) and ScanResultListener
(using RecognizerRunnerView.setScanResultListener(ScanResultListener) - those two listeners will be set
to RecognizerRunnerView within RecognizerRunnerFragment after calling this method - if you
need to observe camera events within RecognizerRunnerFragment, you can set your own BaseCameraEventsListener
to it with RecognizerRunnerFragment.setCameraEventsListener(BaseCameraEventsListener).
In this method, you can also access RecognizerRunnerFragment's content layout with method
RecognizerRunnerFragment.getContentLayout() and add your views to it.onRecognizerRunnerViewCreated in interface ScanningOverlayrecognizerRunnerFragment - RecognizerRunnerFragment within which RecognizerRunnerView has been created.@AnyThread public void resumeScanning()
ScanningOverlayRecognizerRunnerView has been created, resumes the scanning
loop (that has been paused) by calling RecognizerRunnerView.resumeScanning(boolean) }.
If the RecognizerRunnerView has not been created yet, does nothing.
resumeScanning in interface ScanningOverlayRecognizerRunnerView.resumeScanning(boolean)protected abstract boolean shouldResetStateOnRecognizerResume()
@AnyThread public void pauseScanning()
ScanningOverlayRecognizerRunnerView has been created, pauses the scanning
loop by calling RecognizerRunnerView.pauseScanning(). But keeps camera active.
If the RecognizerRunnerView has not been created yet, does nothing.
You can resume scanning by calling ScanningOverlay.resumeScanning().
pauseScanning in interface ScanningOverlayRecognizerRunnerView.pauseScanning()protected abstract int getBeepSoundResourceId()
@CallSuper
public void onRecognizerRunnerFragmentAttached(@NonNull
RecognizerRunnerFragment recognizerRunnerFragment,
@NonNull
android.app.Activity activity)
ScanningOverlayRecognizerRunnerFragment gets attached to its host activity. This happens before
RecognizerRunnerFragment.onCreateView(LayoutInflater, ViewGroup, Bundle) which internally invokes
ScanningOverlay.onRecognizerRunnerViewCreated(RecognizerRunnerFragment). This means that at the time this method
is invoked, methods like RecognizerRunnerFragment.getRecognizerRunnerView() or RecognizerRunnerFragment.getContentLayout()
will return null.
However, this is a good place to register your LifecycleObserver with RecognizerRunnerFragment.registerLifecycleObserver(LifecycleObserver)
if your overlay needs to be notified about lifecycle events of RecognizerRunnerFragment.onRecognizerRunnerFragmentAttached in interface ScanningOverlayrecognizerRunnerFragment - RecognizerRunnerFragment that has been attached to host activity.activity - Activity to which RecognizerRunnerFragment has been attached.@NonNull protected android.content.Context getContext()
@LayoutRes protected abstract int getSplashScreenLayoutId()
protected void setMeteringAreas()
protected void onFragmentCreated(@Nullable
android.os.Bundle savedInstanceState)
protected void onFragmentStarted()
protected void onFragmentResumed()
protected void onFragmentPaused()
protected void onFragmentStopped()
protected void onFragmentDestroyed()
protected void onFragmentConfigurationChanged(@NonNull
android.content.res.Configuration newConfig)
protected void onFragmentSaveInstanceState(@Nullable
android.os.Bundle outState)
protected void onCameraAutofocusFailed()
public void onUnrecoverableError(@NonNull
java.lang.Throwable throwable)
ScanResultListeneronUnrecoverableError in interface ScanResultListenerthrowable - type of errorpublic void onFrameRecognitionDone(RecognitionSuccessType recognitionSuccessType)
ScanningOverlayonFrameRecognitionDone in interface ScanningOverlayrecognitionSuccessType - frame recognition status.