Class CodeScannerActivity<V extends CodeScannerView,​P extends CodeScannerPresenter<V>>

  • 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.contextaware.ContextAware, androidx.activity.OnBackPressedDispatcherOwner, androidx.activity.result.ActivityResultCaller, androidx.activity.result.ActivityResultRegistryOwner, 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.HasDefaultViewModelProviderFactory, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.ViewModelStoreOwner, androidx.savedstate.SavedStateRegistryOwner, CaptureManager.OnScanListener, CodeScannerView, com.cheetahdigital.corekit.sdk.analytics.AnalyticsManager.AnalyticsScreen, com.cheetahdigital.uikit.architecture.mvp.MvpView, com.cheetahdigital.uikit.helper.permissions.CameraPermissionHelper.CameraPermissionCallback

    public class CodeScannerActivity<V extends CodeScannerView,​P extends CodeScannerPresenter<V>>
    extends com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<V,​P>
    implements CaptureManager.OnScanListener, com.cheetahdigital.corekit.sdk.analytics.AnalyticsManager.AnalyticsScreen, CodeScannerView, com.cheetahdigital.uikit.helper.permissions.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:

    • Nested Class Summary

      • Nested classes/interfaces inherited from class androidx.core.app.ComponentActivity

        androidx.core.app.ComponentActivity.ExtraData
    • 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
      • Fields inherited from interface android.content.ComponentCallbacks2

        TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void broadcastUpdate()
      Send a broadcast for changes done
      protected void callCodeApi​(java.lang.String code)
      Method called after a successful code scan
      protected android.content.DialogInterface.OnClickListener createExitListener()  
      protected P createPresenter()
      Instantiate MvpActivityView.mPresenter to be used for this MvpActivityView
      protected android.content.DialogInterface.OnClickListener createScanAgainListener()  
      protected void decodeCapture()
      Starts decoding
      protected int getContentLayoutId()
      Provide the Content Layout ID which is of a Layout Resource Reference of Android
      int getScreenName()
      Returns the screen name to display.
      void onCameraPermissionDenied()
      Callback after denying the camera permission
      void onCameraPermissionGranted()
      Callback after granting the camera permission
      void onCodeScannedFailure​(java.lang.String error)
      This notifies the view when call to the code scan API failed
      void onCodeScannedSuccessfully​(com.cheetahdigital.corekit.models.BaseModel<CodeData> model)
      This notifies the view when call to the code scan API is successful
      protected 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 completion
      protected void onStart()  
      protected void setStatusText​(java.lang.String text)
      Set the status text of barcode scanner
      void showProgressDialog​(boolean show, boolean isVerify)
      Show/Hide progress dialog
      protected void showScanningNotAvailableMessage()
      Method to show a message that the scanner is not available
      void 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, startIntentSenderFromFragment, supportFinishAfterTransition, supportPostponeEnterTransition, supportStartPostponedEnterTransition, validateRequestPermissionsRequestCode
      • Methods inherited from class androidx.activity.ComponentActivity

        addOnContextAvailableListener, getActivityResultRegistry, getDefaultViewModelProviderFactory, getLastCustomNonConfigurationInstance, getLifecycle, getOnBackPressedDispatcher, getSavedStateRegistry, getViewModelStore, onBackPressed, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance, peekAvailableContext, registerForActivityResult, registerForActivityResult, removeOnContextAvailableListener, startIntentSenderForResult, startIntentSenderForResult
      • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface android.view.Window.Callback

        onPointerCaptureChanged
    • Constructor Detail

      • CodeScannerActivity

        public CodeScannerActivity()
    • Method Detail

      • onCreate

        protected void onCreate​(android.os.Bundle savedInstanceState)
        Overrides:
        onCreate in class com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<V extends CodeScannerView,​P extends CodeScannerPresenter<V>>
      • showProgressDialog

        public void showProgressDialog​(boolean show,
                                       boolean isVerify)
        Description copied from interface: CodeScannerView
        Show/Hide progress dialog
        Specified by:
        showProgressDialog in interface CodeScannerView
        Parameters:
        show - true to show, else false
        isVerify - check if progress is for verifying, else it is for simple loading
      • onPause

        protected void onPause()
        Overrides:
        onPause in class com.cheetahdigital.uikit.application.ThemedActivity
      • onDestroy

        protected void onDestroy()
        Overrides:
        onDestroy in class com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<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: com.cheetahdigital.uikit.architecture.mvp.MvpActivityView
        Provide the Content Layout ID which is of a Layout Resource Reference of Android
        Specified by:
        getContentLayoutId in class com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<V extends CodeScannerView,​P extends CodeScannerPresenter<V>>
        Returns:
        id of the content layout
      • createPresenter

        protected P createPresenter()
        Description copied from class: com.cheetahdigital.uikit.architecture.mvp.MvpActivityView
        Instantiate MvpActivityView.mPresenter to be used for this MvpActivityView
        Specified by:
        createPresenter in class com.cheetahdigital.uikit.architecture.mvp.MvpActivityView<V extends CodeScannerView,​P extends CodeScannerPresenter<V>>
        Returns:
        the MvpBasePresenter
      • onSaveInstanceState

        protected void onSaveInstanceState​(android.os.Bundle outState)
        Overrides:
        onSaveInstanceState in class androidx.appcompat.app.AppCompatActivity
      • onKeyDown

        public boolean onKeyDown​(int keyCode,
                                 android.view.KeyEvent event)
        Specified by:
        onKeyDown in interface android.view.KeyEvent.Callback
        Overrides:
        onKeyDown in class androidx.appcompat.app.AppCompatActivity
      • decodeCapture

        protected void decodeCapture()
        Starts decoding
      • getScreenName

        public int getScreenName()
        Description copied from class: com.cheetahdigital.uikit.application.ThemedActivity
        Returns the screen name to display.
        Specified by:
        getScreenName in interface com.cheetahdigital.corekit.sdk.analytics.AnalyticsManager.AnalyticsScreen
        Overrides:
        getScreenName in class com.cheetahdigital.uikit.application.ThemedActivity
        Returns:
        The screen name.
      • onCodeScannedSuccessfully

        public void onCodeScannedSuccessfully​(com.cheetahdigital.corekit.models.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 interface CodeScannerView
        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 interface CodeScannerView
        Parameters:
        error - error message
      • onStart

        protected void onStart()
        Overrides:
        onStart in class com.cheetahdigital.uikit.application.BaseActivity
      • showScanningNotAvailableMessage

        protected void showScanningNotAvailableMessage()
        Method to show a message that the scanner is not available
      • onCameraPermissionGranted

        public void onCameraPermissionGranted()
        Description copied from interface: com.cheetahdigital.uikit.helper.permissions.CameraPermissionHelper.CameraPermissionCallback
        Callback after granting the camera permission
        Specified by:
        onCameraPermissionGranted in interface com.cheetahdigital.uikit.helper.permissions.CameraPermissionHelper.CameraPermissionCallback
      • onCameraPermissionDenied

        public void onCameraPermissionDenied()
        Description copied from interface: com.cheetahdigital.uikit.helper.permissions.CameraPermissionHelper.CameraPermissionCallback
        Callback after denying the camera permission
        Specified by:
        onCameraPermissionDenied in interface com.cheetahdigital.uikit.helper.permissions.CameraPermissionHelper.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