Package com.cheetahdigital.codes.ui
Class CodeScannerActivity<V extends CodeScannerView,P extends CodeScannerPresenter<V>>
- java.lang.Object
-
- android.content.Context
-
- android.content.ContextWrapper
-
- android.view.ContextThemeWrapper
-
- android.app.Activity
-
- androidx.core.app.ComponentActivity
-
- androidx.activity.ComponentActivity
-
- androidx.fragment.app.FragmentActivity
-
- androidx.appcompat.app.AppCompatActivity
-
- com.cheetahdigital.uikit.application.BaseActivity
-
- com.cheetahdigital.uikit.application.ThemedActivity
-
- com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<V,P>
-
- com.cheetahdigital.codes.ui.CodeScannerActivity<V,P>
-
- All Implemented Interfaces:
android.content.ComponentCallbacks,android.content.ComponentCallbacks2,android.view.KeyEvent.Callback,android.view.LayoutInflater.Factory,android.view.LayoutInflater.Factory2,android.view.View.OnCreateContextMenuListener,android.view.Window.Callback,androidx.activity.OnBackPressedDispatcherOwner,androidx.appcompat.app.ActionBarDrawerToggle.DelegateProvider,androidx.appcompat.app.AppCompatCallback,androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback,androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator,androidx.core.app.TaskStackBuilder.SupportParentable,androidx.core.view.KeyEventDispatcher.Component,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.ViewModelStoreOwner,androidx.savedstate.SavedStateRegistryOwner,CaptureManager.OnScanListener,CodeScannerView,AnalyticsManager.AnalyticsScreen,MvpView,CameraPermissionHelper.CameraPermissionCallback
public class CodeScannerActivity<V extends CodeScannerView,P extends CodeScannerPresenter<V>> extends MvpActivityView<V,P> implements CaptureManager.OnScanListener, AnalyticsManager.AnalyticsScreen, CodeScannerView, CameraPermissionHelper.CameraPermissionCallback
Activity that reads and submits barcode. This activity uses https://github.com/journeyapps/zxing-android-embedded, the following must be added to the application's Android Manifest: <uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />Can receive the following intent extras:
IntentKey.PRIMARY_ID- primary id to useSYSTEM_LOTTERY_KEY-trueif a system lottery, else falseBDS_DELAY- BDS delay to useSHOULD_FILTER_BARCODE-trueto enable barcode filteringBARCODE_ARRAY_FORMAT- array of string with barcode format
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBARCODE_ARRAY_FORMATstatic java.lang.StringBDS_DELAYstatic java.lang.StringSHOULD_FILTER_BARCODEstatic java.lang.StringSYSTEM_LOTTERY_KEY-
Fields inherited from class android.app.Activity
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
-
Fields inherited from class android.content.Context
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, BIND_WAIVE_PRIORITY, BIOMETRIC_SERVICE, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
-
-
Constructor Summary
Constructors Constructor Description CodeScannerActivity()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbroadcastUpdate()Send a broadcast for changes doneprotected voidcallCodeApi(java.lang.String code)Method called after a successful code scanprotected android.content.DialogInterface.OnClickListenercreateExitListener()protected PcreatePresenter()InstantiateMvpActivityView.mPresenterto be used for thisMvpActivityViewprotected android.content.DialogInterface.OnClickListenercreateScanAgainListener()protected voiddecodeCapture()Starts decodingprotected intgetContentLayoutId()Provide the Content Layout ID which is of a Layout Resource Reference of AndroidintgetScreenName()Returns the screen name to display.voidonCameraPermissionDenied()Callback after denying the camera permissionvoidonCameraPermissionGranted()Callback after granting the camera permissionvoidonCodeScannedFailure(java.lang.String error)This notifies the view when call to the code scan API failedvoidonCodeScannedSuccessfully(BaseModel<CodeData> model)This notifies the view when call to the code scan API is successfulprotected voidonCreate(android.os.Bundle savedInstanceState)protected voidonDestroy()booleanonKeyDown(int keyCode, android.view.KeyEvent event)protected voidonPause()protected voidonSaveInstanceState(android.os.Bundle outState)voidonScanComplete(java.lang.String code, java.lang.String format)Handles scan completionprotected voidonStart()protected voidsetStatusText(java.lang.String text)Set the status text of barcode scannervoidshowProgressDialog(boolean show, boolean isVerify)Show/Hide progress dialogprotected voidshowScanningNotAvailableMessage()Method to show a message that the scanner is not availablevoidupdateDelayedSummary()Update summary with delay-
Methods inherited from class com.cheetahdigital.uikit.architecture.mvp.MvpActivityView
captureSharedElementValues, getEnterTransition, getExitTransition, getPresenter, getReenterTransition, getReturnTransition, getSharedElementViews, initSharedElementValues, isSharedAnimationEnabled, startActivity, startActivityForResult
-
Methods inherited from class com.cheetahdigital.uikit.application.ThemedActivity
attachBaseContext, getAction, getIntentAction, handleShake, isShakeHandlingEnabled, onOptionsItemSelected, onResume, registerShakeListener, startActivity, startActivityForResult, unregisterShakeListener
-
Methods inherited from class com.cheetahdigital.uikit.application.BaseActivity
onErrorEvent, onStop
-
Methods inherited from class androidx.appcompat.app.AppCompatActivity
addContentView, closeOptionsMenu, dispatchKeyEvent, findViewById, getDelegate, getDrawerToggleDelegate, getMenuInflater, getResources, getSupportActionBar, getSupportParentActivityIntent, invalidateOptionsMenu, onConfigurationChanged, onContentChanged, onCreateSupportNavigateUpTaskStack, onMenuItemSelected, onMenuOpened, onNightModeChanged, onPanelClosed, onPostCreate, onPostResume, onPrepareSupportNavigateUpTaskStack, onSupportActionModeFinished, onSupportActionModeStarted, onSupportContentChanged, onSupportNavigateUp, onTitleChanged, onWindowStartingSupportActionMode, openOptionsMenu, setContentView, setContentView, setContentView, setSupportActionBar, setSupportProgress, setSupportProgressBarIndeterminate, setSupportProgressBarIndeterminateVisibility, setSupportProgressBarVisibility, setTheme, startSupportActionMode, supportInvalidateOptionsMenu, supportNavigateUpTo, supportRequestWindowFeature, supportShouldUpRecreateTask
-
Methods inherited from class androidx.fragment.app.FragmentActivity
dump, getSupportFragmentManager, getSupportLoaderManager, onActivityResult, onAttachFragment, onCreatePanelMenu, onCreateView, onCreateView, onLowMemory, onMultiWindowModeChanged, onNewIntent, onPictureInPictureModeChanged, onPrepareOptionsPanel, onPreparePanel, onRequestPermissionsResult, onResumeFragments, onStateNotSaved, setEnterSharedElementCallback, setExitSharedElementCallback, startActivityFromFragment, startActivityFromFragment, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromFragment, supportFinishAfterTransition, supportPostponeEnterTransition, supportStartPostponedEnterTransition, validateRequestPermissionsRequestCode
-
Methods inherited from class androidx.activity.ComponentActivity
getLastCustomNonConfigurationInstance, getLifecycle, getOnBackPressedDispatcher, getSavedStateRegistry, getViewModelStore, onBackPressed, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance
-
Methods inherited from class androidx.core.app.ComponentActivity
dispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEvent
-
Methods inherited from class android.app.Activity
closeContextMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, enterPictureInPictureMode, enterPictureInPictureMode, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onChildTitleChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelView, onCreateThumbnail, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onOptionsMenuClosed, onPerformDirectAction, onPictureInPictureModeChanged, onPostCreate, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRestart, onRestoreInstanceState, onRestoreInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setInheritShowWhenLocked, setIntent, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTitle, setTitle, setTitleColor, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu
-
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getTheme, setTheme
-
Methods inherited from class android.content.ContextWrapper
bindIsolatedService, bindService, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
-
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacks
-
-
-
-
Field Detail
-
SYSTEM_LOTTERY_KEY
public static final java.lang.String SYSTEM_LOTTERY_KEY
- See Also:
- Constant Field Values
-
BDS_DELAY
public static final java.lang.String BDS_DELAY
- See Also:
- Constant Field Values
-
SHOULD_FILTER_BARCODE
public static final java.lang.String SHOULD_FILTER_BARCODE
- See Also:
- Constant Field Values
-
BARCODE_ARRAY_FORMAT
public static final java.lang.String BARCODE_ARRAY_FORMAT
- See Also:
- Constant Field Values
-
-
Method Detail
-
onCreate
protected void onCreate(android.os.Bundle savedInstanceState)
- Overrides:
onCreatein classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>
-
onScanComplete
public void onScanComplete(java.lang.String code, java.lang.String format)Description copied from interface:CaptureManager.OnScanListenerHandles scan completion- Specified by:
onScanCompletein interfaceCaptureManager.OnScanListener- Parameters:
code- raw content of barcodeformat- code format, like "QR_CODE", "UPC_A".
-
showProgressDialog
public void showProgressDialog(boolean show, boolean isVerify)Description copied from interface:CodeScannerViewShow/Hide progress dialog- Specified by:
showProgressDialogin interfaceCodeScannerView- Parameters:
show-trueto show, else falseisVerify- check if progress is for verifying, else it is for simple loading
-
broadcastUpdate
public void broadcastUpdate()
Description copied from interface:CodeScannerViewSend a broadcast for changes done- Specified by:
broadcastUpdatein interfaceCodeScannerView
-
updateDelayedSummary
public void updateDelayedSummary()
Description copied from interface:CodeScannerViewUpdate summary with delay- Specified by:
updateDelayedSummaryin interfaceCodeScannerView
-
onPause
protected void onPause()
- Overrides:
onPausein classThemedActivity
-
onDestroy
protected void onDestroy()
- Overrides:
onDestroyin classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>
-
setStatusText
protected void setStatusText(java.lang.String text)
Set the status text of barcode scanner- Parameters:
text- status text
-
getContentLayoutId
protected int getContentLayoutId()
Description copied from class:MvpActivityViewProvide the Content Layout ID which is of a Layout Resource Reference of Android- Specified by:
getContentLayoutIdin classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>- Returns:
- id of the content layout
-
createPresenter
protected P createPresenter()
Description copied from class:MvpActivityViewInstantiateMvpActivityView.mPresenterto be used for thisMvpActivityView- Specified by:
createPresenterin classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>- Returns:
- the
MvpBasePresenter
-
onSaveInstanceState
protected void onSaveInstanceState(android.os.Bundle outState)
- Overrides:
onSaveInstanceStatein classandroidx.appcompat.app.AppCompatActivity
-
onKeyDown
public boolean onKeyDown(int keyCode, android.view.KeyEvent event)- Specified by:
onKeyDownin interfaceandroid.view.KeyEvent.Callback- Overrides:
onKeyDownin classandroidx.appcompat.app.AppCompatActivity
-
decodeCapture
protected void decodeCapture()
Starts decoding
-
getScreenName
public int getScreenName()
Description copied from class:ThemedActivityReturns the screen name to display.- Specified by:
getScreenNamein interfaceAnalyticsManager.AnalyticsScreen- Overrides:
getScreenNamein classThemedActivity- Returns:
- The screen name.
-
onCodeScannedSuccessfully
public void onCodeScannedSuccessfully(BaseModel<CodeData> model)
Description copied from interface:CodeScannerViewThis notifies the view when call to the code scan API is successful- Specified by:
onCodeScannedSuccessfullyin interfaceCodeScannerView- Parameters:
model- contains the data and the message returned by the server
-
onCodeScannedFailure
public void onCodeScannedFailure(java.lang.String error)
Description copied from interface:CodeScannerViewThis notifies the view when call to the code scan API failed- Specified by:
onCodeScannedFailurein interfaceCodeScannerView- Parameters:
error- error message
-
onStart
protected void onStart()
- Overrides:
onStartin classBaseActivity
-
showScanningNotAvailableMessage
protected void showScanningNotAvailableMessage()
Method to show a message that the scanner is not available
-
onCameraPermissionGranted
public void onCameraPermissionGranted()
Description copied from interface:CameraPermissionHelper.CameraPermissionCallbackCallback after granting the camera permission- Specified by:
onCameraPermissionGrantedin interfaceCameraPermissionHelper.CameraPermissionCallback
-
onCameraPermissionDenied
public void onCameraPermissionDenied()
Description copied from interface:CameraPermissionHelper.CameraPermissionCallbackCallback after denying the camera permission- Specified by:
onCameraPermissionDeniedin interfaceCameraPermissionHelper.CameraPermissionCallback
-
callCodeApi
protected void callCodeApi(java.lang.String code)
Method called after a successful code scan- Parameters:
code- the code scanned
-
createScanAgainListener
protected android.content.DialogInterface.OnClickListener createScanAgainListener()
- Returns:
- the scan again dialog click listener when showing dialog prompts in code scanning
-
createExitListener
protected android.content.DialogInterface.OnClickListener createExitListener()
- Returns:
- the exit dialog click listener when showing dialog prompts in code scanning
-
-