java.lang.Object | |
↳ | com.kddi.android.internal.telephony.cdma.sms.KddiPacketSmsDataConvertor |
When packetSMS is sent, this class encodes the message. And the response from the server is analyzed.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | KDDI_CHANGE_CODE_MODE_CMAIL | change code mode(Pictchar code -> Cmail code) | |||||||||
int | KDDI_CHANGE_CODE_MODE_PICTCHAR | change code mode(Cmail code -> Pictchar code) | |||||||||
String | KDDI_PACKETSMS_CHAR_CODE | +Kelvin@110608, hTC customization for Emoji Start ** static public final String KDDI_PACKETSMS_CHAR_CODE = "SJIS"; /** modify |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructor of KDDIPacketSmsDataConvertor
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
calculate message body size.
| |||||||||||
+[hTC]Kelvin, remove KDDI original codes Start **
public static byte[] kddiChangeCmailPictCharCode(byte[] message, int changeMode) {
// Pictchar Herat Cup Telephone Watch
byte[][] PictChar = {{(byte)0xF7, (byte)0xB2}, {(byte)0xF7, (byte)0xB4}, {(byte)0xF7, (byte)0xB3}, {(byte)0xF7, (byte)0xB1}};
// Cmail code
byte[][] MailChar = {{(byte)0x86, (byte)0xB2}, {(byte)0x86, (byte)0xB3}, {(byte)0x86, (byte)0xB4}, {(byte)0x86, (byte)0xB5}};
byte[][] SrcCode = new byte[4][2]; // bfore code
byte[][] DstCode = new byte[4][2]; // after code
byte[] changedCode = new byte[message.length]; // return data
int c = 0;
int i = 0;
if (KDDI_OUTPUT_LOG) {
Log.v(KDDI_TAG, "changePictCharCode Start[change mode ="+changeMode+"]");
}
// Parameter check
if(null == message) {
if (KDDI_OUTPUT_LOG) {
Log.d(KDDI_TAG, "illegal param [message is null]");
}
return null;
}
// Create character code table
switch(changeMode) {
case KDDI_CHANGE_CODE_MODE_CMAIL:
// Pictchar code -> Cmail code
for(i = 0; i < 4; i++) {
for(c = 0; c < 2; c++) {
SrcCode[i][c] = PictChar[i][c];
DstCode[i][c] = MailChar[i][c];
}
}
break;
case KDDI_CHANGE_CODE_MODE_PICTCHAR:
// Cmail code -> Pictchar code
for(i = 0; i < 4; i++) {
for(c = 0; c < 2; c++) {
SrcCode[i][c] = MailChar[i][c];
DstCode[i][c] = PictChar[i][c];
}
}
break;
default:
if (KDDI_OUTPUT_LOG) {
Log.d(KDDI_TAG, "illegal param [changeMode is illegal]");
}
return null;
}
// Change code
for(i = 0; i < message.length; i++) {
// check flag
boolean nChkFlg = false;
if(KDDI_CHANGE_CODE_MODE_CMAIL == changeMode) {
// Pictchar code -> Cmail code
if(((byte)0xF7 == message[i]) && (((byte)0xB1 <= message[i+1]) || ((byte)0xB4 >= message[i+1]))) {
// peculiar character
nChkFlg = true;
}
} else {
// Cmail code -> Pictchar code
nChkFlg = true;
}
if(true == nChkFlg) {
// Heart
if((message[i] == SrcCode[0][0]) && (message[i+1] == SrcCode[0][1])) {
changedCode[i] = DstCode[0][0];
changedCode[i+1] = DstCode[0][1];
i++;
continue;
}
// Cup
if((message[i] == SrcCode[1][0]) && (message[i+1] == SrcCode[1][1])) {
changedCode[i] = DstCode[1][0];
changedCode[i+1] = DstCode[1][1];
i++;
continue;
}
// Telephone
if((message[i] == SrcCode[2][0] ) && (message[i+1] == SrcCode[2][1])) {
changedCode[i] = DstCode[2][0];
changedCode[i+1] = DstCode[2][1];
i++;
continue;
}
// Watch
if((message[i] == SrcCode[3][0]) && (message[i+1] == SrcCode[3][1])) {
changedCode[i] = DstCode[3][0];
changedCode[i+1] = DstCode[3][1];
i++;
continue;
}
}
// 1byte copy
changedCode[i] = message[i];
boolean bResult = kddiIsSJIS(message, i);
if(true == bResult) {
i++;
// 1byte copy
changedCode[i] = message[i];
}
if(( i + 1 ) == (message.length - 1)){
i++;
changedCode[i] = message[i];
}
}
if (KDDI_OUTPUT_LOG) {
Log.v(KDDI_TAG, "changePictCharCode end");
}
return changedCode;
}
-[hTC]Kelvin, remove KDDI original codes Start
| |||||||||||
Send message is converted into the IRC format
| |||||||||||
The response from the server is analyzed
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
change code mode(Pictchar code -> Cmail code)
change code mode(Cmail code -> Pictchar code)
+Kelvin@110608, hTC customization for Emoji Start ** static public final String KDDI_PACKETSMS_CHAR_CODE = "SJIS"; /** modify
Constructor of KDDIPacketSmsDataConvertor
calculate message body size.
msg | message body |
---|
+[hTC]Kelvin, remove KDDI original codes Start ** public static byte[] kddiChangeCmailPictCharCode(byte[] message, int changeMode) { // Pictchar Herat Cup Telephone Watch byte[][] PictChar = {{(byte)0xF7, (byte)0xB2}, {(byte)0xF7, (byte)0xB4}, {(byte)0xF7, (byte)0xB3}, {(byte)0xF7, (byte)0xB1}}; // Cmail code byte[][] MailChar = {{(byte)0x86, (byte)0xB2}, {(byte)0x86, (byte)0xB3}, {(byte)0x86, (byte)0xB4}, {(byte)0x86, (byte)0xB5}}; byte[][] SrcCode = new byte[4][2]; // bfore code byte[][] DstCode = new byte[4][2]; // after code byte[] changedCode = new byte[message.length]; // return data int c = 0; int i = 0; if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode Start[change mode ="+changeMode+"]"); } // Parameter check if(null == message) { if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [message is null]"); } return null; } // Create character code table switch(changeMode) { case KDDI_CHANGE_CODE_MODE_CMAIL: // Pictchar code -> Cmail code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = PictChar[i][c]; DstCode[i][c] = MailChar[i][c]; } } break; case KDDI_CHANGE_CODE_MODE_PICTCHAR: // Cmail code -> Pictchar code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = MailChar[i][c]; DstCode[i][c] = PictChar[i][c]; } } break; default: if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [changeMode is illegal]"); } return null; } // Change code for(i = 0; i < message.length; i++) { // check flag boolean nChkFlg = false; if(KDDI_CHANGE_CODE_MODE_CMAIL == changeMode) { // Pictchar code -> Cmail code if(((byte)0xF7 == message[i]) && (((byte)0xB1 <= message[i+1]) || ((byte)0xB4 >= message[i+1]))) { // peculiar character nChkFlg = true; } } else { // Cmail code -> Pictchar code nChkFlg = true; } if(true == nChkFlg) { // Heart if((message[i] == SrcCode[0][0]) && (message[i+1] == SrcCode[0][1])) { changedCode[i] = DstCode[0][0]; changedCode[i+1] = DstCode[0][1]; i++; continue; } // Cup if((message[i] == SrcCode[1][0]) && (message[i+1] == SrcCode[1][1])) { changedCode[i] = DstCode[1][0]; changedCode[i+1] = DstCode[1][1]; i++; continue; } // Telephone if((message[i] == SrcCode[2][0] ) && (message[i+1] == SrcCode[2][1])) { changedCode[i] = DstCode[2][0]; changedCode[i+1] = DstCode[2][1]; i++; continue; } // Watch if((message[i] == SrcCode[3][0]) && (message[i+1] == SrcCode[3][1])) { changedCode[i] = DstCode[3][0]; changedCode[i+1] = DstCode[3][1]; i++; continue; } } // 1byte copy changedCode[i] = message[i]; boolean bResult = kddiIsSJIS(message, i); if(true == bResult) { i++; // 1byte copy changedCode[i] = message[i]; } if(( i + 1 ) == (message.length - 1)){ i++; changedCode[i] = message[i]; } } if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode end"); } return changedCode; } -[hTC]Kelvin, remove KDDI original codes Start
Send message is converted into the IRC format
dest | Destination address |
---|---|
msg | Message body |
sendMode | Send mode identifier |
null
at the error.
The response from the server is analyzed
result | Response from the server |
---|