package Ġcom . pe ter ale xb iz jak . eu rop a open . utils . extensions Ċ Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . URL Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ Ċ @ Throws ( Activity NotFoundException :: class ) Ċ internal Ġfun ĠFragment . launch URL ( url : ĠString , Ġview : ĠView ) Ġ{ ĊĠĠĠ Ġif Ġ( url . is Url Valid ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Launcher Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Category ( Intent . CATEGORY _ BRO WS ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . R ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ REQUIRE _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext ?. startActivity ( url Launcher Intent ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Invalid ĠURL ", ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠFragment . send Email ( ĊĠĠĠ Ġsubject : ĠString , ĊĠĠĠ Ġreceiv ers : ĠArray < String >, ĊĠĠĠ Ġbody : ĠString , ĊĠĠĠ Ġview : ĠView Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( re ceiv ers . all Ġ{ Ġit . is Email Valid () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Intent Ġ= ĠIntent ( Intent . ACTION _ SEND TO ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" mailto :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ EMAIL , Ġreceiv ers ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ SUBJECT , Ġsubject ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġbody ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . R ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ REQUIRE _ DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext ?. startActivity ( email Intent ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Couldn 't Ġlaunch Ġan Ġemail Ġclient ", ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠString . is Url Valid (): ĠBoolean Ġ= ĊĠĠĠ ĠURL Util . isValid Url ( this ) Ċ Ċ private Ġfun ĠString . is Email Valid (): ĠBoolean Ġ= ĊĠĠĠ Ġandroid . util . Patterns . EMAIL _ ADDRESS . matcher ( this ). matches ()