Example #1
0
        /// <summary>
        /// 应用新状态的修改
        /// </summary>
        /// <param name="newState">新状态</param>
        /// <param name="changeType">状态变换种类</param>
        /// <param name="isNeededKeyCheck"></param>
        /// <returns>应用是否成功</returns>
        protected bool Apply(MaskManagerState newState, StateChangeType changeType, bool isNeededKeyCheck)
        {
            if (!IsValid(newState))
            {
                return(false);
            }
            if (newState.IsSame(CurrentState))
            {
                return(false);
            }
            string editText = GetEditText(newState);

            if (!isNeededKeyCheck)
            {
                if (GetCurrentEditText() != editText)
                {
                    if (!RaiseEditTextChanging(editText))
                    {
                        return(false);
                    }
                    ApplyInternal(newState, changeType);
                    base.RaiseEditTextChanged();
                }
                else
                {
                    ApplyInternal(newState, changeType);
                }
            }
            return(true);
        }