package Ġcom . lu ig iv amp a 9 2 . n fc share Ċ Ċ import Ġandroid . n fc . N def Message Ċ import Ġandroid . n fc . N def Record Ċ import Ġjava . io . Unsupported EncodingException Ċ Ċ object ĠN def Util Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠN DEF _ F ID _ DATA Ġ= Ġbyte ArrayOf ( 0 xE 1 . to Byte (), Ġ 0 x 0 4 . to Byte ()) ĊĠĠĠ Ġprivate Ġval ĠN DEF _ MIME _ TYPE _ VC ARD Ġ= Ġ" text / v card ". toByteArray () ĊĊĠĠĠ Ġfun Ġcreate N def Message ( message : ĠString ): ĠN def Message Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Record V card Contact ( message )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN def Message ( create Contact Record ("", Ġmessage , ĠN DEF _ F ID _ DATA )) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN def Message ( create Uri Record ("", Ġmessage , ĠN DEF _ F ID _ DATA )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Record V card Contact ( message : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġmessage . startsWith (" BEGIN : VC ARD ") Ġ&& Ġmessage . endsWith (" END : VC ARD ") ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Uri Record ( language : ĠString , Ġtext : ĠString , Ġid : ĠByteArray ): ĠN def Record Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Bytes : ĠByteArray ĊĠĠĠĠĠĠĠ Ġval Ġtext Bytes : ĠByteArray ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Bytes Ġ= Ġlanguage . toByteArray ( charset (" US - ASCII ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Bytes Ġ= Ġtext . toByteArray ( charset (" UTF - 8 ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrecord Payload Ġ= ĠByteArray ( 1 Ġ+ Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ) Ġ+ Ġtext Bytes . size ) ĊĊĠĠĠĠĠĠĠ Ġrecord Payload [ 0 ] Ġ= Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ). to Byte () ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( language Bytes , Ġ 0 , Ġrecord Payload , Ġ 1 , Ġlanguage Bytes . size Ġand Ġ 0 x 0 3 F ) ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( text Bytes , Ġ 0 , Ġrecord Payload , Ġ 1 Ġ+ Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ), Ġtext Bytes . size ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠN def Record ( N def Record . T NF _ W ELL _ KNOWN , ĠN def Record . R TD _ URI , Ġid , Ġrecord Payload ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Contact Record ( language : ĠString , Ġtext : ĠString , Ġid : ĠByteArray ): ĠN def Record Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Bytes : ĠByteArray ĊĠĠĠĠĠĠĠ Ġval Ġtext Bytes : ĠByteArray ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Bytes Ġ= Ġlanguage . toByteArray ( charset (" US - ASCII ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Bytes Ġ= Ġtext . toByteArray ( charset (" UTF - 8 ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrecord Payload Ġ= ĠByteArray ( 1 Ġ+ Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ) Ġ+ Ġtext Bytes . size ) ĊĊĠĠĠĠĠĠĠ Ġrecord Payload [ 0 ] Ġ= Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ). to Byte () ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( language Bytes , Ġ 0 , Ġrecord Payload , Ġ 1 , Ġlanguage Bytes . size Ġand Ġ 0 x 0 3 F ) ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( text Bytes , Ġ 0 , Ġrecord Payload , Ġ 1 Ġ+ Ġ( language Bytes . size Ġand Ġ 0 x 0 3 F ), Ġtext Bytes . size ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠN def Record ( N def Record . T NF _ MIME _ MEDIA , ĠN DEF _ MIME _ TYPE _ VC ARD , Ġid , Ġrecord Payload ) ĊĠĠĠ Ġ} Ċ }