Class BaseCameraView

  • All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent
    Direct Known Subclasses:
    CameraViewGroup

    public abstract class BaseCameraView
    extends android.view.ViewGroup
    Created by dodo on 25/08/16.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  BaseCameraView.BaseCameraListener  
      protected class  BaseCameraView.BaseCameraViewEventsListener  
      protected class  BaseCameraView.BaseOrientationChangeListener  
      static class  BaseCameraView.CameraViewState  
      • Nested classes/interfaces inherited from class android.view.ViewGroup

        android.view.ViewGroup.LayoutParams, 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 
      Modifier and Type Field Description
      protected CameraAspectMode mAspectMode
      Defines the way camera preview will be layouted inside view
      protected CameraEventsListener mCameraEventsListener
      Listener that will receive various camera events
      protected com.microblink.view.surface.ICameraView mCameraSurfaceView
      View element
      protected BaseCameraView.CameraViewState mCameraViewState  
      protected int mConfigurationOrientation
      Current configuration orientation
      protected com.microblink.hardware.DeviceManager mDeviceManager
      Device manager that will load device list from resources
      protected boolean mErrorState
      Flag indicating there has been an unrecoverable error
      protected int mHostScreenOrientation
      Orientation of the host activity
      protected Orientation mInitialOrientation
      Initial orientation which will be used for frame orientation if mOrientation is unknown
      protected boolean mIsRequestedOrientationSensor  
      protected boolean mIsRequestedOrientationUser  
      protected OnActivityFlipListener mOnActivityFlipListener
      Listener that will be notified when activity flip occurs.
      protected com.microblink.hardware.orientation.OrientationChangeListener mOrientationChangeListener  
      protected boolean mRotateMeteringAreas  
      protected java.util.concurrent.ConcurrentLinkedQueue<com.microblink.hardware.orientation.OrientationChangeListener> mSlaveOrientationChangeListeners
      Slave orientation change listeners that can be notified on orientation change events generated by mOrientationManager
      • 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_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_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_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
      BaseCameraView​(android.content.Context context)  
      BaseCameraView​(android.content.Context context, android.util.AttributeSet attrs)  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addOrientationChangeListener​(com.microblink.hardware.orientation.OrientationChangeListener orientationChangeListener)
      Adds the orientation listener that will receive orientation change events that are already reported to BaseCameraView.
      protected boolean areCameraPixelsLandscapeLeft()  
      protected int calculateHostScreenOrientation()  
      protected void captureHighResFrame()  
      void changeConfiguration​(android.content.res.Configuration newConfiguration)
      This method changes the view's configuration.
      protected void changeConfigurationInternal​(android.content.res.Configuration newConfiguration)  
      void create()
      Creates the view and its subviews and initializes camera settings.
      protected abstract com.microblink.hardware.camera.CameraListener createCameraListener()
      ABSTRACT METHODS
      protected com.microblink.view.surface.ICameraView.CameraViewEventListener createCameraViewEventsListener()  
      protected com.microblink.hardware.orientation.OrientationChangeListener createOrientationChangeListener()  
      void destroy()  
      boolean dispatchTouchEvent​(android.view.MotionEvent ev)  
      void focusCamera()
      Request a new autofocus cycle from camera.
      CameraAspectMode getAspectMode()
      Returns the aspect mode of camera preview.
      CameraEventsListener getCameraEventsListener()
      Returns the current camera events listener.
      protected com.microblink.hardware.camera.CameraSettings getCameraFactorySettings()  
      int getCameraPreviewHeight()
      Returns the height in pixels of the actual camera preview (does not have to be same as getHeight).
      int getCameraPreviewWidth()
      Returns the width in pixels of the actual camera preview (does not have to be same as getWidth).
      protected int getCameraSensorOrientation()  
      BaseCameraView.CameraViewState getCameraViewState()
      Returns the current lifecycle state of camera view.
      protected int getConfigurationOrientation()  
      Orientation getCurrentOrientation()  
      int getHighResFrameLimit()
      Returns the current high res frame limit
      protected android.app.Activity getHostActivity()  
      int getHostScreenOrientation()
      Returns the host's screen orientation as detected internally.
      Orientation getInitialOrientation()
      Returns the initial orientation of rotatable view as set by setInitialOrientation.
      CameraType getOpenedCameraType()
      Returns the type of the currently opened camera or null if currently there is no opened camera.
      android.graphics.RectF getVisiblePart()
      Returns the rectangle that which part of camera frame is visible in view
      float getZoomLevel()
      Returns the current camera zoom level.
      java.lang.Boolean isAutofocusSupported()
      Returns true if opened camera supports autofocus.
      boolean isCameraActive()
      Returns true if camera is currently active.
      boolean isCameraFocused()
      Returns true if camera is currently in focus
      boolean isCameraTorchSupported()
      Returns true if camera has got torch.
      boolean isDeviceShaking()
      Returns true if the device is being shaken
      boolean isHighResFrameCaptureEnabled()
      Returns true if high res frame capture was enabled.
      protected boolean isHostActivityOrientationOnSensor()  
      protected boolean isOrientationAllowed​(Orientation orientation)  
      boolean isPinchToZoomAllowed()
      Returns true if camera view will handle pinch events to manage camera zoom level.
      protected static boolean isRequestedOrientationSensor​(int requestedOrientation)  
      protected boolean isRequestedOrientationUser​(int requestedOrientation)  
      boolean isTapToFocusAllowed()
      Returns true if camera view will handle tap events to ask camera to perform autofocus on tapped area.
      protected abstract 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()  
      protected void onLayout​(boolean changed, int l, int t, int r, int b)  
      protected void onMeasure​(int widthMeasureSpec, int heightMeasureSpec)  
      void pause()
      This method must be called from activity's onPause.
      protected void prepareCameraSettings​(com.microblink.hardware.camera.CameraSettings settings)
      Called inside onCreate method before creating camera manager.
      void removeOrientationChangeListener​(com.microblink.hardware.orientation.OrientationChangeListener orientationChangeListener)
      Removes a single listener instance from listeners collection, if it is present.
      protected abstract boolean requireAutofocusFeature()
      If autofocus feature is required, please return true from this method.
      void resume()
      This method must be called from activity's onResume.
      protected void runOnUIThread​(java.lang.Runnable runnable)
      Ensures given runnable is run on UI thread.
      void setAspectMode​(CameraAspectMode aspectMode)
      Defines the aspect mode of camera preview.
      void setCameraEventsListener​(CameraEventsListener cameraEventsListener)
      Sets the listener that will receive various camera events, such as when camera preview has started or camera initialization error has occurred.
      void setCameraFrameFactory​(com.microblink.hardware.camera.frame.CameraFrameFactory cameraFrameFactory)
      Set your custom implementation of camera frame factory.
      void setCameraType​(CameraType cameraType)
      Sets the camera type that will be used.
      void setForceUseLegacyCamera​(boolean useLegacyCamera)
      With this method you can request using legacy Camera API even on devices that natively support new Camera2 API.
      void setHighResFrameCaptureEnabled​(boolean enabled)
      High res frame capture is disabled by default and needs to be enabled by using this method.
      void setHighResFrameLimit​(int highResFrameLimit)
      Sets the maximum number of high res frames that can be active at a given moment.
      void setInitialOrientation​(Orientation initialOrientation)
      Sets the initial orientation of rotatable view and recognizer.
      void setMeteringAreas​(android.graphics.RectF[] meteringAreas, boolean rotateAreasWithDevice)
      Sets the areas where camera will perform focus, exposure and white balance meterings.
      protected void setMeteringAreasToCamera()  
      void setOnActivityFlipListener​(OnActivityFlipListener onActivityFlipListener)
      Sets the listener that will be notified when activity flip event occurs.
      void setOnSizeChangedListener​(OnSizeChangedListener onSizeChangedListener)
      Sets the listener that will be notified when size of child views changes.
      void setOptimizeCameraForNearScan​(boolean nearScan)  
      void setOrientationAllowedListener​(OrientationAllowedListener orientationAllowedListener)
      Sets the listener that will be asked if device orientation is allowed prior rotating rotatable view and native recognizer to that orientation.
      void setPinchToZoomAllowed​(boolean allowPinchToZoom)
      Sets whether camear view will handle pinch events to manage camera zoom level.
      void setRequestAutofocusOnShakingStopInContinousAutofocusMode​(boolean requestAutofocusOnShakingStopInContinousAutofocusMode)
      If device supports continous autofocus mode, enabling this feature will request normal autofocus every time device shaking stops.
      void setRequestedSurfaceViewForCameraDisplay​(com.microblink.view.surface.CameraSurface requestedSurface)
      In order to display camera preview, camera view must use one of two android's view's that are capable of displaying camera preview video stream: SurfaceView and TextureView.
      void setShakeListener​(ShakeCallback shakeCallback)
      Sets the shake callback that will be notified about device shake events.
      void setTapToFocusAllowed​(boolean allowTapToFocus)
      Sets whether camera view will handle tap events to ask camera to perform autofocus on tapped area.
      void setTorchState​(boolean on, SuccessCallback successCallback)
      Turns the torch on the camera on or off.
      void setVideoResolutionPreset​(VideoResolutionPreset preset)  
      void setZoomLevel​(float zoomLevel)
      Sets the camera zoom level.
      protected boolean shouldStartCamera()  
      void start()  
      void stop()  
      • Methods inherited from class android.view.ViewGroup

        addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, checkLayoutParams, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, generateDefaultLayoutParams, generateLayoutParams, 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, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, 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, 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, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, 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, 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, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, 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, 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, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, 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, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, 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, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, 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, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, 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, 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
    • Field Detail

      • mCameraEventsListener

        @Nullable
        protected CameraEventsListener mCameraEventsListener
        Listener that will receive various camera events
      • mErrorState

        protected boolean mErrorState
        Flag indicating there has been an unrecoverable error
      • mDeviceManager

        @Nullable
        protected com.microblink.hardware.DeviceManager mDeviceManager
        Device manager that will load device list from resources
      • mCameraSurfaceView

        @Nullable
        protected com.microblink.view.surface.ICameraView mCameraSurfaceView
        View element
      • mConfigurationOrientation

        protected int mConfigurationOrientation
        Current configuration orientation
      • mOnActivityFlipListener

        @Nullable
        protected OnActivityFlipListener mOnActivityFlipListener
        Listener that will be notified when activity flip occurs.
      • mHostScreenOrientation

        protected int mHostScreenOrientation
        Orientation of the host activity
      • mAspectMode

        @NonNull
        protected CameraAspectMode mAspectMode
        Defines the way camera preview will be layouted inside view
      • mIsRequestedOrientationSensor

        protected boolean mIsRequestedOrientationSensor
      • mIsRequestedOrientationUser

        protected boolean mIsRequestedOrientationUser
      • mOrientationChangeListener

        @NonNull
        protected com.microblink.hardware.orientation.OrientationChangeListener mOrientationChangeListener
      • mRotateMeteringAreas

        protected boolean mRotateMeteringAreas
      • mInitialOrientation

        @Nullable
        protected Orientation mInitialOrientation
        Initial orientation which will be used for frame orientation if mOrientation is unknown
      • mSlaveOrientationChangeListeners

        @NonNull
        protected java.util.concurrent.ConcurrentLinkedQueue<com.microblink.hardware.orientation.OrientationChangeListener> mSlaveOrientationChangeListeners
        Slave orientation change listeners that can be notified on orientation change events generated by mOrientationManager
    • Constructor Detail

      • BaseCameraView

        public BaseCameraView​(@NonNull
                              android.content.Context context)
      • BaseCameraView

        public BaseCameraView​(@NonNull
                              android.content.Context context,
                              @Nullable
                              android.util.AttributeSet attrs)
    • Method Detail

      • isRequestedOrientationSensor

        protected static boolean isRequestedOrientationSensor​(int requestedOrientation)
      • isRequestedOrientationUser

        protected boolean isRequestedOrientationUser​(int requestedOrientation)
      • calculateHostScreenOrientation

        protected int calculateHostScreenOrientation()
      • runOnUIThread

        @AnyThread
        protected void runOnUIThread​(@NonNull
                                     java.lang.Runnable runnable)
        Ensures given runnable is run on UI thread. If called from UI thread, runnable's code will be run immediately (before returning from method). If not, runnable's code will be posted to UI thread's processing queue.
        Parameters:
        runnable -
      • changeConfiguration

        public void changeConfiguration​(@Nullable
                                        android.content.res.Configuration newConfiguration)
        This method changes the view's configuration. It is meant to be called from onConfigurationChange event.
        Parameters:
        newConfiguration - New view configuration
      • changeConfigurationInternal

        @CallSuper
        protected void changeConfigurationInternal​(@Nullable
                                                   android.content.res.Configuration newConfiguration)
      • getHostActivity

        @Nullable
        protected android.app.Activity getHostActivity()
      • create

        @CallSuper
        public void create()
        Creates the view and its subviews and initializes camera settings. This method must be called in onCreate method of host activity. If not called, camera will not work. Make sure you set all your settings before calling this method.
      • destroy

        @CallSuper
        public void destroy()
      • prepareCameraSettings

        protected void prepareCameraSettings​(@NonNull
                                             com.microblink.hardware.camera.CameraSettings settings)
        Called inside onCreate method before creating camera manager. Use this method to create camera settings that are used on each startPreview event.
      • getCameraFactorySettings

        @NonNull
        protected com.microblink.hardware.camera.CameraSettings getCameraFactorySettings()
      • shouldStartCamera

        protected boolean shouldStartCamera()
      • onCameraPreviewStarted

        protected void onCameraPreviewStarted()
      • onCameraPreviewStopped

        protected void onCameraPreviewStopped()
      • start

        @MainThread
        @CallSuper
        public void start()
      • resume

        @MainThread
        @CallSuper
        public void resume()
        This method must be called from activity's onResume. If not called, camera will not work.
      • pause

        @MainThread
        @CallSuper
        public void pause()
        This method must be called from activity's onPause. If not called, camera will not work properly.
      • stop

        @MainThread
        @CallSuper
        public void stop()
      • onMeasure

        protected void onMeasure​(int widthMeasureSpec,
                                 int heightMeasureSpec)
        Overrides:
        onMeasure in class android.view.View
      • dispatchTouchEvent

        public boolean dispatchTouchEvent​(@Nullable
                                          android.view.MotionEvent ev)
        Overrides:
        dispatchTouchEvent in class android.view.ViewGroup
      • onLayout

        protected void onLayout​(boolean changed,
                                int l,
                                int t,
                                int r,
                                int b)
        Specified by:
        onLayout in class android.view.ViewGroup
      • isCameraFocused

        public final boolean isCameraFocused()
        Returns true if camera is currently in focus
        Returns:
      • captureHighResFrame

        protected void captureHighResFrame()
      • getOpenedCameraType

        @Nullable
        public final CameraType getOpenedCameraType()
        Returns the type of the currently opened camera or null if currently there is no opened camera.
        Returns:
        the type of the currently opened camera or null if currently there is no opened camera.
      • focusCamera

        public final void focusCamera()
        Request a new autofocus cycle from camera.
      • isCameraTorchSupported

        public final boolean isCameraTorchSupported()
        Returns true if camera has got torch.
        Returns:
        true if camera has got torch.
      • isAutofocusSupported

        @Nullable
        public final java.lang.Boolean isAutofocusSupported()
        Returns true if opened camera supports autofocus. Returns false if opened camera does not support autofocus. Returns null if camera is not opened.
        Returns:
        whether opened camera supports autofocus or null if no camera is opened
      • setTorchState

        public final void setTorchState​(boolean on,
                                        @NonNull
                                        SuccessCallback successCallback)
        Turns the torch on the camera on or off. Returns true on success, false on failure.
        Parameters:
        on - If true, torch will be turned on, if false, torch will be turned off.
        successCallback - callback that will receive information if torch was successfully put in desired state
      • getCameraSensorOrientation

        protected int getCameraSensorOrientation()
      • areCameraPixelsLandscapeLeft

        protected boolean areCameraPixelsLandscapeLeft()
      • getZoomLevel

        public final float getZoomLevel()
        Returns the current camera zoom level.
        Returns:
        the current camera zoom level.
      • setZoomLevel

        public final void setZoomLevel​(float zoomLevel)
        Sets the camera zoom level. Zoom level 0.f defines no applied zoom, while zoom level 1.f defines maximum supported camera zoom. Values beyond interval [0.f, 1.f] are cropped to interval [0.f, 1.f]. If camera is active, new zoom level is applied immediately. If camera is not active, desired zoom level will be applied on next camera startup.
        Parameters:
        zoomLevel - Desired camera zoom level.
      • getHighResFrameLimit

        public final int getHighResFrameLimit()
        Returns the current high res frame limit
        Returns:
        current high res frame limit
      • setHighResFrameLimit

        public final void setHighResFrameLimit​(int highResFrameLimit)
        Sets the maximum number of high res frames that can be active at a given moment. You should try to keep it as low as possible to avoid memory issues. Trying to capture high res frames over this limit not only won't work but might also interfere with recognition process.
        Parameters:
        highResFrameLimit - desired high res frame limit, minimum 1
      • setHighResFrameCaptureEnabled

        public void setHighResFrameCaptureEnabled​(boolean enabled)
        High res frame capture is disabled by default and needs to be enabled by using this method. If enabling high res frames, please use VideoResolutionPreset.VIDEO_RESOLUTION_DEFAULT, higher resolutions might cause problems when combined with high res frame capture on some devices.
        Parameters:
        enabled - should high res frame capture be enabled
      • isHighResFrameCaptureEnabled

        public boolean isHighResFrameCaptureEnabled()
        Returns true if high res frame capture was enabled.
        Returns:
        is high res frame capture enabled
      • getCameraViewState

        @NonNull
        public final BaseCameraView.CameraViewState getCameraViewState()
        Returns the current lifecycle state of camera view.
        Returns:
      • isTapToFocusAllowed

        public final boolean isTapToFocusAllowed()
        Returns true if camera view will handle tap events to ask camera to perform autofocus on tapped area.
        Returns:
        true if tap to focus is allowed
      • setTapToFocusAllowed

        public final void setTapToFocusAllowed​(boolean allowTapToFocus)
        Sets whether camera view will handle tap events to ask camera to perform autofocus on tapped area. Default is true.
        Parameters:
        allowTapToFocus - whether or not tap to focus is allowed
      • isPinchToZoomAllowed

        public final boolean isPinchToZoomAllowed()
        Returns true if camera view will handle pinch events to manage camera zoom level.
        Returns:
        true if pinch to zoom is allowed
      • setPinchToZoomAllowed

        public final void setPinchToZoomAllowed​(boolean allowPinchToZoom)
        Sets whether camear view will handle pinch events to manage camera zoom level.
        Parameters:
        allowPinchToZoom - whether or not pinch to zoom is allowed. Default is false.
      • isDeviceShaking

        public final boolean isDeviceShaking()
        Returns true if the device is being shaken
        Returns:
        true if the device is being shaken
      • getCameraPreviewWidth

        public final int getCameraPreviewWidth()
        Returns the width in pixels of the actual camera preview (does not have to be same as getWidth).
        Returns:
        the width in pixels of the actual camera preview (does not have to be same as getWidth).
      • getCameraPreviewHeight

        public final int getCameraPreviewHeight()
        Returns the height in pixels of the actual camera preview (does not have to be same as getHeight).
        Returns:
        the height in pixels of the actual camera preview (does not have to be same as getHeight).
      • setMeteringAreas

        public final void setMeteringAreas​(@NonNull
                                           android.graphics.RectF[] meteringAreas,
                                           boolean rotateAreasWithDevice)
        Sets the areas where camera will perform focus, exposure and white balance meterings.
        Parameters:
        meteringAreas - array of rectangles that define areas where camera will perform focus, exposure and white balance meterings.
        rotateAreasWithDevice - if set to true, metering areas will be readjusted each time device orientation changes
        Throws:
        java.lang.NullPointerException - if at least one element of meteringAreas is null
        java.lang.IllegalArgumentException - if at least on element of meteringAreas has either zero surface or is not inside view
        java.lang.IllegalStateException - if camera is not active
      • setMeteringAreasToCamera

        protected void setMeteringAreasToCamera()
      • isCameraActive

        @AnyThread
        public final boolean isCameraActive()
        Returns true if camera is currently active.
        Returns:
        true if camera is currently active.
      • getConfigurationOrientation

        protected final int getConfigurationOrientation()
      • setCameraType

        public void setCameraType​(@NonNull
                                  CameraType cameraType)
        Sets the camera type that will be used. You must set this before calling create method.
        Parameters:
        cameraType -
      • setShakeListener

        public void setShakeListener​(@NonNull
                                     ShakeCallback shakeCallback)
        Sets the shake callback that will be notified about device shake events.
        Parameters:
        shakeCallback -
      • getAspectMode

        @NonNull
        public CameraAspectMode getAspectMode()
        Returns the aspect mode of camera preview.
        Returns:
        the aspect mode of camera preview.
      • setAspectMode

        public void setAspectMode​(@NonNull
                                  CameraAspectMode aspectMode)
        Defines the aspect mode of camera preview.
        Parameters:
        aspectMode - desired aspect mode
      • setOnSizeChangedListener

        public final void setOnSizeChangedListener​(@NonNull
                                                   OnSizeChangedListener onSizeChangedListener)
        Sets the listener that will be notified when size of child views changes.
        Parameters:
        onSizeChangedListener -
      • setOnActivityFlipListener

        public final void setOnActivityFlipListener​(@NonNull
                                                    OnActivityFlipListener onActivityFlipListener)
        Sets the listener that will be notified when activity flip event occurs.
        Parameters:
        onActivityFlipListener - Activity flip listener
      • setVideoResolutionPreset

        public final void setVideoResolutionPreset​(@NonNull
                                                   VideoResolutionPreset preset)
        Parameters:
        preset - Sets the preset that will be used for choosing camera video resolution.
      • setForceUseLegacyCamera

        public final void setForceUseLegacyCamera​(boolean useLegacyCamera)
        With this method you can request using legacy Camera API even on devices that natively support new Camera2 API. Set this to true only if you have problems with camera management on Lollipop and newer devices. Using legacy camera API is less efficient than new Camera2 API.
        Parameters:
        useLegacyCamera - If set to true, legacy Camera API will be used even on devices that support new Camera2 API.
      • setCameraFrameFactory

        public final void setCameraFrameFactory​(com.microblink.hardware.camera.frame.CameraFrameFactory cameraFrameFactory)
        Set your custom implementation of camera frame factory.
      • setRequestAutofocusOnShakingStopInContinousAutofocusMode

        public final void setRequestAutofocusOnShakingStopInContinousAutofocusMode​(boolean requestAutofocusOnShakingStopInContinousAutofocusMode)
        If device supports continous autofocus mode, enabling this feature will request normal autofocus every time device shaking stops. By default, this is off, as is expected from device which supports continous autofocus to do this automatically. However, some devices do not meet that expectation so this tweak can be used to force autofocus after device has stopped moving.
        Parameters:
        requestAutofocusOnShakingStopInContinousAutofocusMode - will autofocus be requested each time device shaking stops.
      • setOptimizeCameraForNearScan

        public final void setOptimizeCameraForNearScan​(boolean nearScan)
        Parameters:
        nearScan - Flag which indicates camera parameters should be optimized for near object scanning. When camera parameters are optimized for near object scanning, macro focus mode will be preferred over autofocus mode. Thus, camera will have easier time focusing on to near objects, but might have harder time focusing on far objects. If you expect that most of your scans will be performed by holding the device very near the object, turn on that parameter. By default, this parameter is set to false.
      • setRequestedSurfaceViewForCameraDisplay

        public final void setRequestedSurfaceViewForCameraDisplay​(@NonNull
                                                                  com.microblink.view.surface.CameraSurface requestedSurface)
        In order to display camera preview, camera view must use one of two android's view's that are capable of displaying camera preview video stream: SurfaceView and TextureView. By default, SurfaceView will be preferred because it is faster and more power efficient. Sometimes, when you create complex UI on top of camera screen, animations or UI may render incorrectly on some devices when using SurfaceView for displaying camera preview. In that case, you can use this method to force setting the surface you want.
        Parameters:
        requestedSurface - Which view should be used to display camera preview.
      • getCameraEventsListener

        @Nullable
        public CameraEventsListener getCameraEventsListener()
        Returns the current camera events listener.
        Returns:
        the current camera events listener.
      • setCameraEventsListener

        public void setCameraEventsListener​(@Nullable
                                            CameraEventsListener cameraEventsListener)
        Sets the listener that will receive various camera events, such as when camera preview has started or camera initialization error has occurred.
        Parameters:
        cameraEventsListener -
      • getHostScreenOrientation

        public int getHostScreenOrientation()
        Returns the host's screen orientation as detected internally. Possible return codes are ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE and ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE
        Returns:
        the host's screen orientation
      • getVisiblePart

        @NonNull
        public android.graphics.RectF getVisiblePart()
        Returns the rectangle that which part of camera frame is visible in view
        Returns:
        the rectangle that which part of camera frame is visible in view
      • createOrientationChangeListener

        @NonNull
        protected com.microblink.hardware.orientation.OrientationChangeListener createOrientationChangeListener()
      • createCameraViewEventsListener

        @NonNull
        protected com.microblink.view.surface.ICameraView.CameraViewEventListener createCameraViewEventsListener()
      • requireAutofocusFeature

        protected abstract boolean requireAutofocusFeature()
        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.
        Returns:
        True if autofocus is required, otherwise false.
      • onActivityFlip

        protected abstract void onActivityFlip()
        Called when activity is flipped - this event is not raised by OS so we have custom detection of that state.
      • createCameraListener

        @NonNull
        protected abstract com.microblink.hardware.camera.CameraListener createCameraListener()
        ABSTRACT METHODS
      • isHostActivityOrientationOnSensor

        protected boolean isHostActivityOrientationOnSensor()
      • getCurrentOrientation

        @NonNull
        public Orientation getCurrentOrientation()
      • isOrientationAllowed

        protected final boolean isOrientationAllowed​(@Nullable
                                                     Orientation orientation)
      • getInitialOrientation

        @Nullable
        public final Orientation getInitialOrientation()
        Returns the initial orientation of rotatable view as set by setInitialOrientation.
        Returns:
        the initial orientation of rotatable view as set by setInitialOrientation.
      • setInitialOrientation

        @CallSuper
        public void setInitialOrientation​(@Nullable
                                          Orientation initialOrientation)
        Sets the initial orientation of rotatable view and recognizer.
        Parameters:
        initialOrientation -
      • setOrientationAllowedListener

        public void setOrientationAllowedListener​(@NonNull
                                                  OrientationAllowedListener orientationAllowedListener)
        Sets the listener that will be asked if device orientation is allowed prior rotating rotatable view and native recognizer to that orientation. If you do not set this listener, recognition will be performed only in orientation defined by current activity's orientation.
      • addOrientationChangeListener

        public void addOrientationChangeListener​(@NonNull
                                                 com.microblink.hardware.orientation.OrientationChangeListener orientationChangeListener)
        Adds the orientation listener that will receive orientation change events that are already reported to BaseCameraView. Orientation change events are independent of host activity's orientation settings.
        Parameters:
        orientationChangeListener - listener that will receive orientation change events
        Throws:
        java.lang.NullPointerException - if the specified listener is null.
        java.lang.IllegalStateException - if addOrientationChangeListener is called after calling start()
      • removeOrientationChangeListener

        public void removeOrientationChangeListener​(@NonNull
                                                    com.microblink.hardware.orientation.OrientationChangeListener orientationChangeListener)
        Removes a single listener instance from listeners collection, if it is present.
        Parameters:
        orientationChangeListener - listener to be removed from the collection.