android N0 短信转换成彩信的消息数量

来源:互联网 发布:编辑部的故事 知乎 编辑:程序博客网 时间:2024/05/29 18:07

默认3条以上转为彩信
改为5条
路径vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java

 private static int sSmsToMmsTextThreshold = 6; // 4

变量定义字面意思就可以理解 以下是代码分析
vendor/mediatek/proprietary/packages/apps/Mms/res/layout/compose_message_activity.xml
布局文件

vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java

 private EnhanceEditText mTextEditor;           // Text editor to type your message into //消息输入框    private TextView mTextCounter;          // Shows the number of characters used in text editor //剩余字数显示    private TextView mSendButtonMms;        // Press to send mms //彩信发送按钮,TextView中加入图片    private ImageButton mSendButtonSms;      // Press to send sms //短信发送按钮    private void updateCounter(CharSequence text, int start, int before, int count) {        ...        int[] params = null;        int encodingType = SmsMessage.ENCODING_UNKNOWN;        encodingType = mOpComposeExt.getSmsEncodingType(encodingType, ComposeMessageActivity.this);        params = SmsMessage.calculateLength(text, false, encodingType);            /* SmsMessage.calculateLength returns an int[4] with:             *   int[0] being the number of SMS's required,             *   int[1] the number of code units used,             *   int[2] is the number of code units remaining until the next message.             *   int[3] is the encoding type that should be used for the message.             */        final int msgCount = params[0]; //已输入短信条数        final int remainingInCurrentMessage = params[2]; //剩余字数        mWorkingMessage.setLengthRequiresMms(            msgCount >= MmsConfig.getSmsToMmsTextThreshold(), true); //转为彩信的短信条数        MmsLog.d(TAG, "updateCounter(): message msgCount = " + msgCount                + " TextThreshold() = " + MmsConfig.getSmsToMmsTextThreshold()                + " remainingInCurrentMessage = " + remainingInCurrentMessage);        /// M: Show the counter        /// M: Update the remaining characters and number of messages required.        if (msgCount >= MmsConfig.getSmsToMmsTextThreshold()) {            mTextCounter.setVisibility(View.GONE);            return;        }        mUiHandler.postDelayed(new Runnable() {            @Override            public void run() {                if (mOpComposeExt.updateCounterUiRun(mTextEditor, remainingInCurrentMessage,                        msgCount, mWorkingMessage)) {                    return;                }                MmsLog.d(TAG, "updateCounter requiresMms = " + mWorkingMessage.requiresMms()                        + " line count = " + mTextEditor.getLineCount());                if (mWorkingMessage.requiresMms() || mTextEditor.getLineCount() <= 1) {                    mTextCounter.setVisibility(View.GONE);                    return;                }                mTextCounter.setVisibility(View.VISIBLE);                String counterText = remainingInCurrentMessage + "/" + msgCount;                mTextCounter.setText(counterText);            }        }, 100);//显示短信发送按钮或彩信发送按钮    private View showSmsOrMmsSendButton(boolean isMms) {        View showButton = null;        View hideButton = null;        // add for ipmessage        if (isMms) {            if (mSubCount == 0 || (isRecipientsEditorVisible()                    && TextUtils.isEmpty(mRecipientsEditor.getText()))                    /// M: fix bug ALPS00563318, show gray mms_send_button                /// when haven't subject, text and attachment                || ((mSubjectTextEditor == null || (mSubjectTextEditor != null                        && TextUtils.isEmpty(mSubjectTextEditor.getText().toString().trim())))                        && mTextEditor != null                        && TextUtils.isEmpty(mTextEditor.getText().toString().trim())                        && !mWorkingMessage.hasAttachment())                        || !mIsSmsEnabled) {            mSendButtonMms.setCompoundDrawablesWithIntrinsicBounds(null, null, null,                getResources().getDrawable(R.drawable.ic_send_sms_unsend));        } else {            mSendButtonMms.setCompoundDrawablesWithIntrinsicBounds(null, null, null,                    getResources().getDrawable(R.drawable.ic_send_ipmsg));            }            showButton = mSendButtonMms;            hideButton = mSendButtonSms;        } else {            if (!mIpCompose.onIpShowSmsOrMmsSendButton(isMms)) {                if ((mTextEditor.getText().toString().isEmpty())                        || mSubCount == 0                        || (isRecipientsEditorVisible()                                && TextUtils.isEmpty(mRecipientsEditor.getText()))                        || recipientCount() > MmsConfig.getSmsRecipientLimit()                        || !mIsSmsEnabled) {                    ///@}                    mSendButtonSms.setImageResource(R.drawable.ic_send_sms_unsend);                } else {                    mSendButtonSms.setImageResource(R.drawable.ic_send_ipmsg);                }            }            showButton = mSendButtonSms;            hideButton = mSendButtonMms;        }        if (showButton != null) {            showButton.setVisibility(View.VISIBLE);        }        if (hideButton != null) {            hideButton.setVisibility(View.GONE);        }        updateTextEditorHint();        return showButton;    }