Class RegistrationActivity<V extends RegistrationView,​P extends RegistrationPresenter<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.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, LoginView, RegistrationView, AnalyticsManager.AnalyticsScreen, MvpView

    public abstract class RegistrationActivity<V extends RegistrationView,​P extends RegistrationPresenter<V>>
    extends MvpActivityView<V,​P>
    implements RegistrationView
    Abstract Activity class which let's the user Register via Email to the Authentication API.

    On successful login, onLogin() will be called, on which you should start with the next Activity.

    Accepts the following intent data:

    • 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 BIRTHDAY_STRING
      Used for getting/setting intent extra for birthdate
      static java.lang.String CARD_NUMBER_DIGIT_COUNT  
      static java.lang.String DEFAULT_MOBILE_PHONE_CODE  
      static java.lang.String ENABLE_AGREEMENT  
      static java.lang.String ENABLE_MOBILE_PHONE_VALIDATION  
      static java.lang.String LOGIN_VIA_MOBILE_PHONE  
      static java.lang.String PASSWORD_VALUE  
      static java.lang.String REFERRAL_CODE
      Used for getting/setting intent extra for referral codes
      • 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 Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void callLoginAPI​(boolean isMobilePhone, java.lang.String username, java.lang.String password)
      Callback when sign-up succeeds.
      protected P createPresenter()
      Instantiate MvpActivityView.mPresenter to be used for this MvpActivityView
      protected int getContentLayoutId()
      Provide the Content Layout ID which is of a Layout Resource Reference of Android
      protected java.lang.String getDefaultCountryCode()
      Get Default Mobile phone country code This is retrieved from intent data DEFAULT_MOBILE_PHONE_CODE
      protected android.text.TextWatcher getPhoneNumberTextWatcher()
      Creates an instance of PhoneNumberFormattingTextWatcher
      android.view.View.OnClickListener getRegisterButtonClickListener()
      Get Register button listener
      int getScreenName()
      Returns the screen name to display.
      protected boolean hasChanges()
      This method checks if the registration text fields have values
      void onBackPressed()  
      protected void onCreate​(android.os.Bundle savedInstanceState)  
      abstract void onLogin()
      Abstract method which will be called when Login is successful.
      void onLoginSuccess()
      Callback after a successful login attempt.
      protected void onRegisterButtonClicked()
      Method called when register button is clicked
      protected void processRegistration​(java.lang.String email, java.lang.String password, java.lang.String firstName, java.lang.String lastName, java.lang.String mobilePhone, java.lang.String cardNumber, java.lang.String mailingAddress, java.lang.String mailingCity, java.lang.String mailingZipcode, java.lang.String mailingState)
      Sign up with the following details
      void receivedInfo​(java.util.Map<java.lang.String,​java.lang.Object> data)
      Callback after a successful request for info api
      void setPasswordTextChangeListener​(int editTextId, int textInputId)
      Set password Text Change Listener
      void setPasswordVisibilityToggleEnabled​(int id, boolean state)
      Enable/Disable password toggle
      void setRegisterButtonClickListener​(android.view.View.OnClickListener registerButtonClickListener)
      Set Sign up button listener
      void showLoginError​(java.lang.String error, int errorCode)
      Callback after an unsuccessful login attempt.
      void showProgressDialog​(boolean show)
      Callback to show ProgressDialog
      void showSignupError​(java.lang.String error)
      Callback when the sign-up fails.
      void signUpSuccess()
      Callback when sign-up succeeds.
      • Methods inherited from class androidx.appcompat.app.AppCompatActivity

        addContentView, closeOptionsMenu, dispatchKeyEvent, findViewById, getDelegate, getDrawerToggleDelegate, getMenuInflater, getResources, getSupportActionBar, getSupportParentActivityIntent, invalidateOptionsMenu, onConfigurationChanged, onContentChanged, onCreateSupportNavigateUpTaskStack, onKeyDown, onMenuItemSelected, onMenuOpened, onNightModeChanged, onPanelClosed, onPostCreate, onPostResume, onPrepareSupportNavigateUpTaskStack, onSaveInstanceState, 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, 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
      • 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
    • Field Detail

      • LOGIN_VIA_MOBILE_PHONE

        public static final java.lang.String LOGIN_VIA_MOBILE_PHONE
        See Also:
        Constant Field Values
      • ENABLE_MOBILE_PHONE_VALIDATION

        public static final java.lang.String ENABLE_MOBILE_PHONE_VALIDATION
        See Also:
        Constant Field Values
      • CARD_NUMBER_DIGIT_COUNT

        public static final java.lang.String CARD_NUMBER_DIGIT_COUNT
        See Also:
        Constant Field Values
      • ENABLE_AGREEMENT

        public static final java.lang.String ENABLE_AGREEMENT
        See Also:
        Constant Field Values
      • DEFAULT_MOBILE_PHONE_CODE

        public static final java.lang.String DEFAULT_MOBILE_PHONE_CODE
        See Also:
        Constant Field Values
      • BIRTHDAY_STRING

        public static final java.lang.String BIRTHDAY_STRING
        Used for getting/setting intent extra for birthdate
        See Also:
        Constant Field Values
      • REFERRAL_CODE

        public static final java.lang.String REFERRAL_CODE
        Used for getting/setting intent extra for referral codes
        See Also:
        Constant Field Values
    • Constructor Detail

      • RegistrationActivity

        public RegistrationActivity()
    • Method Detail

      • onLogin

        public abstract void onLogin()
        Abstract method which will be called when Login is successful. Ideally, you would start the Main Activity from here.
      • onRegisterButtonClicked

        protected void onRegisterButtonClicked()
        Method called when register button is clicked
      • processRegistration

        protected void processRegistration​(java.lang.String email,
                                           java.lang.String password,
                                           java.lang.String firstName,
                                           java.lang.String lastName,
                                           java.lang.String mobilePhone,
                                           java.lang.String cardNumber,
                                           java.lang.String mailingAddress,
                                           java.lang.String mailingCity,
                                           java.lang.String mailingZipcode,
                                           java.lang.String mailingState)
        Sign up with the following details
        Parameters:
        email - text used to register Email value
        password - text used to register Password value
        firstName - text used to register First Name
        lastName - text used to register Last Name
        mobilePhone - text used to register Mobile Phone
        cardNumber - text used to register card id
        mailingAddress - text used to register Mailing Street
        mailingCity - text used to register Mailing City
        mailingState - text used to register Mailing State
        mailingZipcode - text used to register Postal Code
      • showSignupError

        public void showSignupError​(java.lang.String error)
        Description copied from interface: RegistrationView
        Callback when the sign-up fails.
        Specified by:
        showSignupError in interface RegistrationView
        Parameters:
        error - Error text
      • callLoginAPI

        public void callLoginAPI​(boolean isMobilePhone,
                                 java.lang.String username,
                                 java.lang.String password)
        Description copied from interface: RegistrationView
        Callback when sign-up succeeds.
        Specified by:
        callLoginAPI in interface RegistrationView
        Parameters:
        isMobilePhone - true if mobile phone is enabled, else false
        username - email or mobilephone used in sign-up
        password - Password used in sign-up
      • signUpSuccess

        public void signUpSuccess()
        Description copied from interface: RegistrationView
        Callback when sign-up succeeds. Custom impelmentation Allows custom behavior after successful sign up No email and password given
        Specified by:
        signUpSuccess in interface RegistrationView
      • onLoginSuccess

        public void onLoginSuccess()
        Description copied from interface: LoginView
        Callback after a successful login attempt.
        Specified by:
        onLoginSuccess in interface LoginView
      • showLoginError

        public void showLoginError​(java.lang.String error,
                                   int errorCode)
        Description copied from interface: LoginView
        Callback after an unsuccessful login attempt.
        Specified by:
        showLoginError in interface LoginView
        Parameters:
        error - Error text
        errorCode - Error code
      • showProgressDialog

        public void showProgressDialog​(boolean show)
        Description copied from interface: LoginView
        Callback to show ProgressDialog
        Specified by:
        showProgressDialog in interface LoginView
        Parameters:
        show - If true, instantiates and shows the progress dialog. Else, hides the progress dialog.
      • receivedInfo

        public void receivedInfo​(java.util.Map<java.lang.String,​java.lang.Object> data)
        Description copied from interface: LoginView
        Callback after a successful request for info api
        Specified by:
        receivedInfo in interface LoginView
        Parameters:
        data - Model for the info
      • onBackPressed

        public void onBackPressed()
        Overrides:
        onBackPressed in class androidx.activity.ComponentActivity
      • hasChanges

        protected boolean hasChanges()
        This method checks if the registration text fields have values
        Returns:
        true if either one required field has value, else false
      • getPhoneNumberTextWatcher

        protected android.text.TextWatcher getPhoneNumberTextWatcher()
        Creates an instance of PhoneNumberFormattingTextWatcher
        Returns:
        instance of PhoneNumberFormattingTextWatcher
      • getRegisterButtonClickListener

        public android.view.View.OnClickListener getRegisterButtonClickListener()
        Get Register button listener
        Returns:
        View.OnClickListener register button listener
      • setRegisterButtonClickListener

        public void setRegisterButtonClickListener​(android.view.View.OnClickListener registerButtonClickListener)
        Set Sign up button listener
        Parameters:
        registerButtonClickListener - View.OnClickListener register button click listener
      • setPasswordTextChangeListener

        public void setPasswordTextChangeListener​(int editTextId,
                                                  int textInputId)
        Set password Text Change Listener
        Parameters:
        editTextId - edit text which text change listener should be added
        textInputId - text input layout id to show password toggle icon
      • setPasswordVisibilityToggleEnabled

        public void setPasswordVisibilityToggleEnabled​(int id,
                                                       boolean state)
        Enable/Disable password toggle
        Parameters:
        id - id of view to configure password toggle visibility
        state - show/hide toggle visibility
      • getDefaultCountryCode

        protected java.lang.String getDefaultCountryCode()
        Get Default Mobile phone country code This is retrieved from intent data DEFAULT_MOBILE_PHONE_CODE
        Returns:
        default country code