/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġ- Ġ 2 0 2 2 ĠRay lan ĠK lit z ke ĠSch ult z Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġbr . com . soft quick . r ast re io Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġcom . mike pen z . about libraries . Lib s Builder Ċ Ċ // ĠThis Ġis Ġfor Ġeasy Ġediting Ġthe Ġmenu Ġin Ġall Ġactivities Ċ object ĠMain Menu Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠMENU _ HIDE _ DEFAULT Ġ= Ġint ArrayOf ( R . id . menu _ home _ screen , ĠR . id . menu _ status ) ĊĊĠĠĠ Ġ// ĠCalled Ġin ĠonCreate Options Menu ĊĠĠĠ Ġfun Ġhandle On Create Options Menu ( ĊĠĠĠĠĠĠĠ Ġmenu : ĠMenu , ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġmenus : ĠInt Array Ġ= Ġint ArrayOf () ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . menu Inflater . inflate ( R . menu . main _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ ĠR . layout . main ĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġmenus Ġthat Ġwe Ġdon 't Ġwant ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠMENU _ HIDE _ DEFAULT . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! menus . contains ( MENU _ HIDE _ DEFAULT [ i ])) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . find Item ( MENU _ HIDE _ DEFAULT [ i ]). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCalled Ġin Ġon Options ItemSelected ĊĠĠĠ Ġfun Ġhandle On Options ItemSelected ( item : ĠMenuItem , Ġactivity : ĠActivity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġopen Screen ( item . itemId , Ġactivity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOpen Ġa Ġscreen ĊĠĠĠ Ġfun Ġopen Screen ( screen Menu Id : ĠInt , Ġactivity : ĠActivity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( screen Menu Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ open _ source _ licenses Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow License s Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ term os _ uso Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen URL ( MainActivity . URL _ TERMS _ OF _ USE , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ priv ac idade Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen URL ( MainActivity . URL _ PRIV ACY _ POL ITY , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ home _ screen Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNot Ġusing Ġswitch Ġwith ĠgetClass (). getName () Ġbecause Ġwe Ġmight Ġforget Ġto Ġchange Ġhere Ġif Ġthe Ġclass Ġname Ġis Ġchanged ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( activity . java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity :: class . java Ġ// ĠTo Ġnot Ġbypass Ġthe ĠAccept ĠTerms Ġscreen . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . terms _ info ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoose Mode Activity :: class . java Ġ// ĠWhen Ġalready Ġin Ġmain Ġscreen . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . already _ in _ main _ screen ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠChoose Mode Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOpen ĠChoose App Activity Ġwithout Ġopening Ġthe Ġlast Ġactivity Ġagain ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" reset ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ status Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . trac car . client . Status Activity :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ contact Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Contact URL ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġopen Contact URL ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġopen URL ( CONTACT _ URL , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen URL ( url : ĠString ?, Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠParse Ġurl Ġand Ġopen Ġin Ġuser 's Ġbrowser Ġif Ġpossible ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġuri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġnot Ġpossible Ġ( no Ġbrowser Ġexists Ġon Ġthe Ġdevice ), Ġthen Ġshow Ġa Ġmessage Ġwith Ġthe Ġurl . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder 2 Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder 2 . setMessage ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" ok ") Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder 2 . set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder 2 . create (). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠShow Ġthe Ġlicense Ġinfo Ġactivity ĊĠĠĠ Ġfun Ġshow License s Activity ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlib Builder Ġ= ĠLib s Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Activity Title ( context ?. getString ( R . string . about _ app ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with License Shown ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with About AppName ( context . getString ( R . string . app _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with About Version Shown ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with About Version Shown Name ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with About Version Shown Code ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Search Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġlib Builder . start ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠCONT ACT _ URL Ġ= Ġ" https :// wa . me /+ 5 5 2 7 9 9 7 8 9 4 4 7 1 " Ċ }