_processCharacterInsertion() {
        let [left, right] = this._getUnformattedLeftAndRightPartAroundTheSelection();
        if (this.eventKey !== AutoNumericEnum.keyName.AndroidDefault) {
            this.throwInput = true;
        }

        // Start rules when the decimal character key is pressed always use numeric pad dot to insert decimal separator
        // Do not allow decimal character if no decimal part allowed
        if (this.eventKey === this.settings.decimalCharacter ||
            (this.settings.decimalCharacterAlternative && this.eventKey === this.settings.decimalCharacterAlternative)) {
            if (!this._isDecimalCharacterInsertionAllowed() || !this.settings.decimalCharacter) {
                return false;
            }

            if (this.settings.alwaysAllowDecimalCharacter) {
                // Remove any previous decimal character
                left = left.replace(this.settings.decimalCharacter, '');
                right = right.replace(this.settings.decimalCharacter, '');
            } else {
                // Do not allow a decimal character if another decimal character is already present
                if (AutoNumericHelper.contains(left, this.settings.decimalCharacter)) {
                    return true;
                }

                // Prevent adding a decimal character at the far right of the number
                if (right.indexOf(this.settings.decimalCharacter) > 0) {
                    return true;
                }

                // Remove the decimal character if found on the far left of the right part
                if (right.indexOf(this.settings.decimalCharacter) === 0) {
                    right = right.substr(1);
                }
            }

            // If the user is trying to add a decimal character on the far left of the number, we allow it
            if (this.settings.negativeSignCharacter && AutoNumericHelper.contains(right, this.settings.negativeSignCharacter)) {
                // We need however to move the negative sign from the right to the left part
                left = `${this.settings.negativeSignCharacter}${left}`;
                right = right.replace(this.settings.negativeSignCharacter, '');
            }

            this._setValueParts(left + this.settings.decimalCharacter, right);

            return true;
        }

        // Prevent entering the minus sign if it's not allowed (Note: `this.settings.isNegativeSignAllowed` is only set to `true` if the minimumValue is lower than zero, allowing negative numbers to be entered)
        if ((this.eventKey === '-' || this.eventKey === '+') && this.settings.isNegativeSignAllowed) {
            // Here, the left and right parts have been normalized already, hence the minus sign usage
            if (left === '' && AutoNumericHelper.contains(right, '-')) {
                // The value is originally negative (with a trailing negative sign)
                if (this.settings.negativePositiveSignBehavior || (!this.settings.negativePositiveSignBehavior && this.eventKey === '+')) {
                    right = right.replace('-', '');
                }
            } else if (AutoNumericHelper.isNegativeStrict(left, '-')) {
                // The value is originally negative (with a leading negative sign)
                // Remove the negative sign, effectively converting the value to a positive one
                if (this.settings.negativePositiveSignBehavior || (!this.settings.negativePositiveSignBehavior && this.eventKey === '+')) {
                    left = left.replace('-', '');
                }
            } else if (this.settings.negativePositiveSignBehavior || (!this.settings.negativePositiveSignBehavior && this.eventKey === '-')) {
                // The value is originally positive, so we toggle the state to a negative one (unformatted, which means even with a trailing negative sign, we add the minus sign on the far left)
                left = `${this.settings.negativeSignCharacter}${left}`;
            }

            this._setValueParts(left, right);

            return true;
        }

        const eventNumber = Number(this.eventKey);
        if (eventNumber >= 0 && eventNumber <= 9) {
            // If the user tries to insert a digit
            if (this.settings.isNegativeSignAllowed && left === '' && AutoNumericHelper.contains(right, '-')) {
                // ...and that digit is before the minus sign
                left = '-';
                right = right.substring(1, right.length);
            }

            if (this.settings.maximumValue <= 0 &&
                this.settings.minimumValue < this.settings.maximumValue &&
                !AutoNumericHelper.contains(AutoNumericHelper.getElementValue(this.domElement), this.settings.negativeSignCharacter) &&
                this.eventKey !== '0') {
                left = `-${left}`;
            }

            this._setValueParts(`${left}${this.eventKey}`, right);

            return true;
        }

        // Prevent any other characters
        this.throwInput = false;

        return false;
    }
Return `true` if the key is allowed.
This function decides if the key pressed should be dropped or accepted, and modify the value 'on-the-fly' accordingly.
//TODO This should use another function in order to separate the test and the modification

@returns {boolean}