package Ġorg . co epi . android . system Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent . ACTION _ SEND Ċ import Ġandroid . content . Intent . EXTRA _ EMAIL Ċ import Ġandroid . content . Intent . EXTRA _ STREAM Ċ import Ġandroid . content . Intent . EXTRA _ SUBJECT Ċ import Ġandroid . content . Intent . EXTRA _ TEXT Ċ import Ġandroid . content . Intent . create Chooser Ċ import Ġandroid . net . Uri Ċ import Ġorg . co epi . android . system . log . log Ċ Ċ interface ĠEmail Ġ{ ĊĠĠĠ Ġfun Ġopen ( activity : ĠActivity , Ġrecipient : ĠString , Ġsubject : ĠString , Ġattachment Uri : ĠUri ? Ġ= Ġnull , Ġmessage : ĠString Ġ= Ġ"") Ċ } Ċ Ċ class ĠEmail Impl : ĠEmail Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġopen ( activity : ĠActivity , Ġrecipient : ĠString , Ġsubject : ĠString , Ġattachment Uri : ĠUri ?, Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( ACTION _ SEND ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" mailto :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" message / rfc 8 2 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ EMAIL , ĠarrayOf ( recipient )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ SUBJECT , Ġsubject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ TEXT , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ STREAM , Ġattachment Uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( create Chooser ( intent , Ġ" Choose ĠEmail ĠClient ... ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e (" Couldn 't Ġopen Ġemail Ġclient : Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ