Package com.microblink.blinkid.view.recognition

# Class RecognizerRunnerView

java.lang.Object
android.view.View
android.view.ViewGroup
com.microblink.blinkid.view.BaseCameraView
com.microblink.blinkid.view.CameraViewGroup
com.microblink.blinkid.view.recognition.RecognizerRunnerView

All Implemented Interfaces:
  `android.graphics.drawable.Drawable.Callback`, `android.view.accessibility.AccessibilityEventSource`, `android.view.KeyEvent.Callback`, `android.view.ViewManager`, `android.view.ViewParent`, `androidx.lifecycle.LifecycleObserver`

public final class RecognizerRunnerView extends CameraViewGroup implements androidx.lifecycle.LifecycleObserver
A view that controls the camera and recognition procedure.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class com.microblink.blinkid.view.CameraViewGroup

  `CameraViewGroup.CameraViewGroupOrientationChangeListener, CameraViewGroup.LayoutParams`

  ## Nested classes/interfaces inherited from class com.microblink.blinkid.view.BaseCameraView

  `BaseCameraView.BaseCameraListener, BaseCameraView.BaseCameraViewEventsListener, BaseCameraView.BaseOrientationChangeListener, BaseCameraView.CameraViewState, BaseCameraView.VisiblePartUpdateListener`

  ## Nested classes/interfaces inherited from class android.view.ViewGroup

  `android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener`

  ## Nested classes/interfaces inherited from class android.view.View

  `android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener, android.view.View.OnUnhandledKeyEventListener`

- ## Field Summary

  ### Fields inherited from class com.microblink.blinkid.view.BaseCameraView

  `mAspectMode, mCameraEventsListener, mCameraSurfaceView, mCameraViewState, mConfigurationOrientation, mDeviceManager, mErrorState, mHostScreenOrientation, mInitialOrientation, mIsRequestedOrientationSensor, mIsRequestedOrientationUser, mOnActivityFlipListener, mPreviewZoomScale, mRotateMeteringAreas, mSlaveOrientationChangeListeners`

  ### Fields inherited from class android.view.ViewGroup

  `CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE`

  ### Fields inherited from class android.view.View

  `ACCESSIBILITY_DATA_SENSITIVE_AUTO, ACCESSIBILITY_DATA_SENSITIVE_NO, ACCESSIBILITY_DATA_SENSITIVE_YES, ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RecognizerRunnerView(android.content.Context context)`
  `RecognizerRunnerView(android.content.Context context, android.util.AttributeSet attrSet)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `captureHighResImage(com.microblink.blinkid.view.recognition.HighResImageListener highResImageListener)`
  Starts capturing frame at full camera resolution and notifies listener once it's done.
  `protected void`
  `changeConfigurationInternal(android.content.res.Configuration newConfig)`
  `void`
  `create()`
  This method must be called from activity's onCreate.
  `protected final com.microblink.blinkid.hardware.camera.CameraListener`
  `createCameraListener()`
  ABSTRACT METHODS
  `protected final com.microblink.blinkid.hardware.orientation.OrientationChangeListener`
  `createOrientationChangeListener()`
  `final void`
  `destroy()`
  This method must be called from activity's onDestroy.
  `RecognizerBundle`
  `getRecognizerBundle()`
  Returns the currently active recognizer bundle.
  `Rectangle`
  `getScanningRegion()`
  Returns the current scanning region or null if entire image is scanned.
  `ScanResultListener`
  `getScanResultListener()`
  Returns the listener that will obtain the results of the scanning.
  `boolean`
  `isScanningPaused()`
  Returns true if scanning is paused or if scanning still has not yet started.
  `protected void`
  `onActivityFlip()`
  Called when activity is flipped - this event is not raised by OS so we have custom detection of that state.
  `protected void`
  `onCameraPreviewStarted()`
  `protected void`
  `onCameraPreviewStopped()`
  `final void`
  `pause()`
  This method must be called from activity's onPause.
  `final void`
  `pauseScanning()`
  Pauses the scanning loop.
  `protected final void`
  `prepareCameraSettings(com.microblink.blinkid.hardware.camera.CameraSettings settings)`
  Called inside onCreate method before creating camera manager.
  `void`
  `reconfigureRecognizers(RecognizerBundle recognizerBundle)`
  Use this method to reconfigure available recognizers.
  `protected boolean`
  `requireAutofocusFeature()`
  If autofocus feature is required, please return true from this method.
  `final void`
  `resetRecognitionState()`
  Resets the recognition state, i.e.
  `final void`
  `resetRecognitionState(boolean hardReset)`
  Resets the recognition state.
  `final void`
  `resume()`
  This method must be called from activity's onResume.
  `final void`
  `resumeScanning(boolean resetState)`
  This method resumes scanning loop that was paused by calling `pauseScanning()`.
  `void`
  `setFrameRecognitionCallback(com.microblink.blinkid.view.recognition.FrameRecognitionCallback frameRecognitionCallback)`
  Sets the frame recognition callback that will be invoked for each camera frame, after the recognition has been completed.
  `void`
  `setLifecycle(androidx.lifecycle.Lifecycle lifecycle)`
  Sets lifecycle that will be observed so that you don't have to manually call `create()`, `resume()` and other lifecycle methods.
  `void`
  `setMetadataCallbacks(MetadataCallbacks metadataCallbacks)`
  Sets the metadata callbacks that will obtain metadata during processing.
  `void`
  `setRecognizerBundle(RecognizerBundle recognizerBundle)`
  Sets the recognizer bundle containing recognizers that will perform the recognition.
  `final void`
  `setScanningRegion(Rectangle scanningRegion, boolean rotateRegionWithDevice)`
  Define scanning region as a rectangle.
  `void`
  `setScanResultListener(ScanResultListener scanResultListener)`
  Sets the listener that will obtain the results of the scanning.
  `boolean`
  `shouldRotateScanningRegion()`
  Returns true if scanning region should be rotated with device.
  `protected final boolean`
  `shouldStartCamera()`
  `final void`
  `start()`
  This method must be called from activity's onStart.
  `final void`
  `stop()`
  This method must be called from activity's onStop.

  ### Methods inherited from class com.microblink.blinkid.view.CameraViewGroup

  `addChildView, addChildView, addView, addView, addView, addView, addView, checkLayoutParams, dispatchTouchEvent, generateDefaultLayoutParams, generateLayoutParams, getRotationAnimationDuration, setAnimateRotation, setInitialOrientation, setRotationAnimationDuration, shouldAnimateRotation`

  ### Methods inherited from class com.microblink.blinkid.view.BaseCameraView

  `addOrientationChangeListener, areCameraPixelsLandscapeLeft, calculateHostScreenOrientation, captureHighResFrame, changeConfiguration, createCameraViewEventsListener, focusCamera, getAspectMode, getCameraEventsListener, getCameraFactorySettings, getCameraPreviewHeight, getCameraPreviewWidth, getCameraSensorOrientation, getCameraViewState, getConfigurationOrientation, getCurrentOrientation, getHighResFrameLimit, getHostActivity, getHostScreenOrientation, getInitialOrientation, getOpenedCameraType, getPreviewZoomScale, getVisiblePart, getZoomLevel, isAutofocusSupported, isCameraActive, isCameraFocused, isCameraTorchSupported, isDeviceShaking, isHighResFrameCaptureEnabled, isHostActivityOrientationOnSensor, isOrientationAllowed, isPinchToZoomAllowed, isRequestedOrientationSensor, isRequestedOrientationUser, isTapToFocusAllowed, onLayout, onMeasure, removeOrientationChangeListener, runOnUIThread, setAspectMode, setCameraEventsListener, setCameraFrameFactory, setCameraType, setForceUseLegacyCamera, setHighResFrameCaptureEnabled, setHighResFrameLimit, setMeteringAreas, setMeteringAreasToCamera, setOnActivityFlipListener, setOnSizeChangedListener, setOptimizeCameraForNearScan, setOrientationAllowedListener, setPinchToZoomAllowed, setPreviewZoomScale, setRequestAutofocusOnShakingStopInContinousAutofocusMode, setRequestedSurfaceViewForCameraDisplay, setShakeListener, setTapToFocusAllowed, setTorchState, setVideoResolutionPreset, setVisiblePartUpdateListener, setZoomLevel`

  ### Methods inherited from class android.view.ViewGroup

  `addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findOnBackInvokedDispatcherForChild, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, generateLayoutParams, getAccessibilityClassName, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, shouldDelayChildPressedState, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout`

  ### Methods inherited from class android.view.View

  `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findOnBackInvokedDispatcher, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAllowedHandwritingDelegatePackageName, getAllowedHandwritingDelegatorPackageName, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHandwritingBoundsOffsetBottom, getHandwritingBoundsOffsetLeft, getHandwritingBoundsOffsetRight, getHandwritingBoundsOffsetTop, getHandwritingDelegatorCallback, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getPreferKeepClearRects, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityDataSensitive, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isAutoHandwritingEnabled, isClickable, isContextClickable, isCredential, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHandwritingDelegate, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPreferKeepClear, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDataSensitive, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAllowedHandwritingDelegatePackage, setAllowedHandwritingDelegatorPackage, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setAutoHandwritingEnabled, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundGravity, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHandwritingBoundsOffsets, setHandwritingDelegatorCallback, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setIsCredential, setIsHandwritingDelegate, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPreferKeepClear, setPreferKeepClearRects, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface android.view.ViewParent

  `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout`

- ## Constructor Details

  - ### RecognizerRunnerView

    @UiThread public RecognizerRunnerView(@NonNull android.content.Context context, @Nullable android.util.AttributeSet attrSet)

  - ### RecognizerRunnerView

    @UiThread public RecognizerRunnerView(@NonNull android.content.Context context)

- ## Method Details

  - ### create

    @UiThread public void create()
    This method must be called from activity's onCreate. If not called, recognition will not work.
    Overrides:
      `create` in class `CameraViewGroup`
    Throws:
      `UnsatisfiedLinkError` - if native library could not be loaded
      `NullPointerException` - if scan result listener or camera events listener is not set
      `IllegalStateException` - if recognizer settings array is null or empty

  - ### setLifecycle

    public void setLifecycle(@NonNull androidx.lifecycle.Lifecycle lifecycle)
    Sets lifecycle that will be observed so that you don't have to manually call `create()`, `resume()` and other lifecycle methods.
    Parameters:
      `lifecycle` - lifecycle that will be observed

  - ### prepareCameraSettings

    protected final void prepareCameraSettings(@NonNull com.microblink.blinkid.hardware.camera.CameraSettings settings)
    Description copied from class: `BaseCameraView`
    Called inside onCreate method before creating camera manager. Use this method to create camera settings that are used on each startPreview event.
    Overrides:
      `prepareCameraSettings` in class `BaseCameraView`

  - ### start

    @MainThread public final void start()
    This method must be called from activity's onStart. If not called, recognition will not work.
    Overrides:
      `start` in class `BaseCameraView`

  - ### stop

    @MainThread public final void stop()
    This method must be called from activity's onStop. If not called, recognition will not work.
    Overrides:
      `stop` in class `BaseCameraView`

  - ### resume

    @MainThread public final void resume()
    This method must be called from activity's onResume. If not called, recognition will not work.
    Overrides:
      `resume` in class `BaseCameraView`

  - ### resumeScanning

    @AnyThread public final void resumeScanning(boolean resetState)
    This method resumes scanning loop that was paused by calling `pauseScanning()`. If resetState is 'true', `resetRecognitionState()` will be called. If resetState is 'false', recognition state will not be reset, so scanning after resume may use old scan data to boost quality.

    `pauseScanning()` and `resumeScanning(boolean)` are counting calls. This means that if you called `pauseScanning()` twice, you will also have to call `resumeScanning(boolean)` twice to actually resume scanning.

    Parameters:
      `resetState` - should internal state be reset when resuming scanning

  - ### pauseScanning

    @AnyThread public final void pauseScanning()
    Pauses the scanning loop. But keeps camera active. You can resume scanning by calling `resumeScanning(boolean)`. `pauseScanning()` and `resumeScanning(boolean)` are counting calls. This means that if you called `pauseScanning()` twice, you will also have to call `resumeScanning(boolean)` to actually resume scanning.

  - ### pause

    @MainThread public final void pause()
    This method must be called from activity's onPause. If not called, recognition will not work. This method pauses the camera.
    Overrides:
      `pause` in class `BaseCameraView`

  - ### onCameraPreviewStopped

    protected void onCameraPreviewStopped()
    Overrides:
      `onCameraPreviewStopped` in class `BaseCameraView`

  - ### destroy

    @MainThread public final void destroy()
    This method must be called from activity's onDestroy. If not called, recognition will not work.
    Overrides:
      `destroy` in class `BaseCameraView`

  - ### shouldStartCamera

    protected final boolean shouldStartCamera()
    Overrides:
      `shouldStartCamera` in class `BaseCameraView`

  - ### onCameraPreviewStarted

    protected void onCameraPreviewStarted()
    Overrides:
      `onCameraPreviewStarted` in class `BaseCameraView`

  - ### resetRecognitionState

    @AnyThread public final void resetRecognitionState()
    Resets the recognition state, i.e. clears the cached data and all scanning results. Recognition starts from the beginning.

  - ### resetRecognitionState

    @AnyThread public final void resetRecognitionState(boolean hardReset)
    Resets the recognition state. If hard reset is requested, clears the cached data and all scanning results and recognition starts from the beginning. Otherwise, if soft reset is requested and the recognition is consisted of multiple steps, clears the scanning cache and results only for the current step.
    Parameters:
      `hardReset` - `true` to request hard reset, `false` for the soft reset.

  - ### isScanningPaused

    @AnyThread public boolean isScanningPaused()
    Returns true if scanning is paused or if scanning still has not yet started.
    Returns:
      true if scanning is paused or if scanning still has not yet started.

  - ### reconfigureRecognizers

    @MainThread public void reconfigureRecognizers(@Nullable RecognizerBundle recognizerBundle)
    Use this method to reconfigure available recognizers. Unlike `setRecognizerBundle(RecognizerBundle)`, this method can be called when recognizers are active.
    Parameters:
      `recognizerBundle` - New recognition settings that will be applied.

  - ### requireAutofocusFeature

    protected boolean requireAutofocusFeature()
    Description copied from class: `BaseCameraView`
    If autofocus feature is required, please return true from this method. If autofocus feature is not required, return false. If autofocus is required and device does not support autofocus, error will be raised and application will not start. If autofocus is not required, application will work even on devices without autofocus.
    Specified by:
      `requireAutofocusFeature` in class `BaseCameraView`
    Returns:
      True if autofocus is required, otherwise false.

  - ### onActivityFlip

    protected void onActivityFlip()
    Description copied from class: `BaseCameraView`
    Called when activity is flipped - this event is not raised by OS so we have custom detection of that state.
    Specified by:
      `onActivityFlip` in class `BaseCameraView`

  - ### createCameraListener

    @NonNull protected final com.microblink.blinkid.hardware.camera.CameraListener createCameraListener()
    Description copied from class: `BaseCameraView`
    ABSTRACT METHODS
    Specified by:
      `createCameraListener` in class `BaseCameraView`

  - ### createOrientationChangeListener

    @NonNull protected final com.microblink.blinkid.hardware.orientation.OrientationChangeListener createOrientationChangeListener()
    Overrides:
      `createOrientationChangeListener` in class `CameraViewGroup`

  - ### setScanningRegion

    @UiThread public final void setScanningRegion(@Nullable Rectangle scanningRegion, boolean rotateRegionWithDevice)
    Define scanning region as a rectangle. Also define whether scanning region will rotate when device orientation changes.

    first parameter of rectangle is x-coordinate represented as percentage of view width, second parameter is y-coordinate represented as percentage of view height, third parameter is region width represented as percentage of view width and fourth parameter is region height represented as percentage of view height

    View width and height are defined in current context, i.e. they depend on screen orientation. If you allow your ROI view to be rotated, then in portrait view width will be smaller than height, whilst in landscape orientation width will be larger than height. This complies with view designer preview. If you choose not to rotate your ROI view, then your ROI view will be laid out either in portrait or landscape, depending on setting for your camera activity in AndroidManifest.xml

    Note that scanning region only reflects to native code - it does not have any impact on user interface. You are required to create a matching user interface that will visualize the same scanning region you set here.
    Parameters:
      `scanningRegion` - Rectangle to define a scanning region or null to scan entire image.
      `rotateRegionWithDevice` - If set to true, scanning region will be rotate when device changes orientation.

  - ### changeConfigurationInternal

    protected void changeConfigurationInternal(@NonNull android.content.res.Configuration newConfig)
    Overrides:
      `changeConfigurationInternal` in class `CameraViewGroup`

  - ### shouldRotateScanningRegion

    public boolean shouldRotateScanningRegion()
    Returns true if scanning region should be rotated with device.
    Returns:
      true if scanning region should be rotated with device.

  - ### getScanningRegion

    @Nullable public Rectangle getScanningRegion()
    Returns the current scanning region or null if entire image is scanned.
    Returns:
      the current scanning region or null if entire image is scanned.

  - ### getRecognizerBundle

    @Nullable @AnyThread public RecognizerBundle getRecognizerBundle()
    Returns the currently active recognizer bundle.
    Returns:
      the currently active recognizer bundle.

  - ### setRecognizerBundle

    @MainThread public void setRecognizerBundle(@Nullable RecognizerBundle recognizerBundle)
    Sets the recognizer bundle containing recognizers that will perform the recognition. This method must be called before calling `create()` to have effect.
    Parameters:
      `recognizerBundle` - recognizer bundle containing recognizers that will perform the recognition.

  - ### setScanResultListener

    @MainThread public void setScanResultListener(@NonNull ScanResultListener scanResultListener)
    Sets the listener that will obtain the results of the scanning. If you do not set this listener, scanner will not be able to work. This method must be called before calling create to have effect.
    Parameters:
      `scanResultListener` - listener that will obtain result of the scanning

  - ### setMetadataCallbacks

    @AnyThread public void setMetadataCallbacks(@Nullable MetadataCallbacks metadataCallbacks)
    Sets the metadata callbacks that will obtain metadata during processing.
    Parameters:
      `metadataCallbacks` - collection of metadata callbacks tha will obtain metadata during processing. If set to null, all callbacks will be disabled.

  - ### setFrameRecognitionCallback

    @AnyThread public void setFrameRecognitionCallback(@Nullable com.microblink.blinkid.view.recognition.FrameRecognitionCallback frameRecognitionCallback)
    Sets the frame recognition callback that will be invoked for each camera frame, after the recognition has been completed.
    Parameters:
      `frameRecognitionCallback` - callback that will be invoked for each camera frame, after the recognition has been completed.

  - ### getScanResultListener

    @Nullable public ScanResultListener getScanResultListener()
    Returns the listener that will obtain the results of the scanning.
    Returns:
      the listener that will obtain the results of the scanning.

  - ### captureHighResImage

    @AnyThread public void captureHighResImage(@Nullable com.microblink.blinkid.view.recognition.HighResImageListener highResImageListener)
    Starts capturing frame at full camera resolution and notifies listener once it's done.
    Parameters:
      `highResImageListener` - listener that will be notified when high res frame is available