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
-true
if a system lottery, else falseBDS_DELAY
- BDS delay to useSHOULD_FILTER_BARCODE
-true
to enable barcode filteringBARCODE_ARRAY_FORMAT
- array of string with barcode format
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BARCODE_ARRAY_FORMAT
static java.lang.String
BDS_DELAY
static java.lang.String
SHOULD_FILTER_BARCODE
static java.lang.String
SYSTEM_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 void
broadcastUpdate()
Send a broadcast for changes doneprotected void
callCodeApi(java.lang.String code)
Method called after a successful code scanprotected android.content.DialogInterface.OnClickListener
createExitListener()
protected P
createPresenter()
InstantiateMvpActivityView.mPresenter
to be used for thisMvpActivityView
protected android.content.DialogInterface.OnClickListener
createScanAgainListener()
protected void
decodeCapture()
Starts decodingprotected int
getContentLayoutId()
Provide the Content Layout ID which is of a Layout Resource Reference of Androidint
getScreenName()
Returns the screen name to display.void
onCameraPermissionDenied()
Callback after denying the camera permissionvoid
onCameraPermissionGranted()
Callback after granting the camera permissionvoid
onCodeScannedFailure(java.lang.String error)
This notifies the view when call to the code scan API failedvoid
onCodeScannedSuccessfully(BaseModel<CodeData> model)
This notifies the view when call to the code scan API is successfulprotected void
onCreate(android.os.Bundle savedInstanceState)
protected void
onDestroy()
boolean
onKeyDown(int keyCode, android.view.KeyEvent event)
protected void
onPause()
protected void
onSaveInstanceState(android.os.Bundle outState)
void
onScanComplete(java.lang.String code, java.lang.String format)
Handles scan completionprotected void
onStart()
protected void
setStatusText(java.lang.String text)
Set the status text of barcode scannervoid
showProgressDialog(boolean show, boolean isVerify)
Show/Hide progress dialogprotected void
showScanningNotAvailableMessage()
Method to show a message that the scanner is not availablevoid
updateDelayedSummary()
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:
onCreate
in 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.OnScanListener
Handles scan completion- Specified by:
onScanComplete
in 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:CodeScannerView
Show/Hide progress dialog- Specified by:
showProgressDialog
in interfaceCodeScannerView
- Parameters:
show
-true
to show, else falseisVerify
- check if progress is for verifying, else it is for simple loading
-
broadcastUpdate
public void broadcastUpdate()
Description copied from interface:CodeScannerView
Send a broadcast for changes done- Specified by:
broadcastUpdate
in interfaceCodeScannerView
-
updateDelayedSummary
public void updateDelayedSummary()
Description copied from interface:CodeScannerView
Update summary with delay- Specified by:
updateDelayedSummary
in interfaceCodeScannerView
-
onPause
protected void onPause()
- Overrides:
onPause
in classThemedActivity
-
onDestroy
protected void onDestroy()
- Overrides:
onDestroy
in 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:MvpActivityView
Provide the Content Layout ID which is of a Layout Resource Reference of Android- Specified by:
getContentLayoutId
in classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>
- Returns:
- id of the content layout
-
createPresenter
protected P createPresenter()
Description copied from class:MvpActivityView
InstantiateMvpActivityView.mPresenter
to be used for thisMvpActivityView
- Specified by:
createPresenter
in classMvpActivityView<V extends CodeScannerView,P extends CodeScannerPresenter<V>>
- Returns:
- the
MvpBasePresenter
-
onSaveInstanceState
protected void onSaveInstanceState(android.os.Bundle outState)
- Overrides:
onSaveInstanceState
in classandroidx.appcompat.app.AppCompatActivity
-
onKeyDown
public boolean onKeyDown(int keyCode, android.view.KeyEvent event)
- Specified by:
onKeyDown
in interfaceandroid.view.KeyEvent.Callback
- Overrides:
onKeyDown
in classandroidx.appcompat.app.AppCompatActivity
-
decodeCapture
protected void decodeCapture()
Starts decoding
-
getScreenName
public int getScreenName()
Description copied from class:ThemedActivity
Returns the screen name to display.- Specified by:
getScreenName
in interfaceAnalyticsManager.AnalyticsScreen
- Overrides:
getScreenName
in classThemedActivity
- Returns:
- The screen name.
-
onCodeScannedSuccessfully
public void onCodeScannedSuccessfully(BaseModel<CodeData> model)
Description copied from interface:CodeScannerView
This notifies the view when call to the code scan API is successful- Specified by:
onCodeScannedSuccessfully
in 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:CodeScannerView
This notifies the view when call to the code scan API failed- Specified by:
onCodeScannedFailure
in interfaceCodeScannerView
- Parameters:
error
- error message
-
onStart
protected void onStart()
- Overrides:
onStart
in 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.CameraPermissionCallback
Callback after granting the camera permission- Specified by:
onCameraPermissionGranted
in interfaceCameraPermissionHelper.CameraPermissionCallback
-
onCameraPermissionDenied
public void onCameraPermissionDenied()
Description copied from interface:CameraPermissionHelper.CameraPermissionCallback
Callback after denying the camera permission- Specified by:
onCameraPermissionDenied
in 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
-
-