diff --git a/api/messaging/src/main/java/blackberry/messaging/message/MessageUtility.java b/api/messaging/src/main/java/blackberry/messaging/message/MessageUtility.java index 5faf0bb..d6e433f 100644 --- a/api/messaging/src/main/java/blackberry/messaging/message/MessageUtility.java +++ b/api/messaging/src/main/java/blackberry/messaging/message/MessageUtility.java @@ -19,8 +19,9 @@ import net.rim.blackberry.api.mail.Address; import net.rim.blackberry.api.mail.AddressException; -import net.rim.blackberry.api.mail.Message; import net.rim.blackberry.api.mail.Folder; +import net.rim.blackberry.api.mail.Message; +import net.rim.blackberry.api.mail.PINAddress; import net.rim.blackberry.api.mail.Store; /** @@ -312,7 +313,12 @@ public static Address[] stringToAddresses( String addressString ) { for( int i = 0; i < emails.length; i++ ) { try { - addresses[ i ] = new Address( emails[ i ], emails[ i ] ); + // Check if PIN address, use PINAddress instead of Address + if(MessageUtility.isPIN (emails[i])){ + addresses[ i ] = new PINAddress( emails[ i ], emails[ i ]); + } else { + addresses[ i ] = new Address( emails[ i ], emails[ i ] ); + } } catch( AddressException e ) { addresses[ i ] = null; } @@ -320,4 +326,29 @@ public static Address[] stringToAddresses( String addressString ) { return addresses; } + + /** + * Check whether the address given is PIN address. + * PIN Address is in hexadecimal format [ 0-9, A-F ] + * + * @param address address to be check + * @return true when the address is a PIN address + */ + public static boolean isPIN ( String address ) { + char[] check = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; + + // PIN should in 8 length string + if(address.length()!=8) return false; + for(int i=0;i