package Ġcom . gor ill alog ic . mig uel h inc ap ie . domain . accessibility Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġ[ M ig uel ĠH inc ap ie ĠC ] Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ* Ġhttps :// stackoverflow . com / users / 1 3 3 2 5 4 9 / mig uel h inc api ec Ċ Ġ* Ġhttps :// github . com / mig uel h inc ap ie Ċ Ġ* Ġhttps :// www . linkedin . com / in / mig uel h inc ap ie / Ċ Ġ*/ Ċ import Ġandroid . content . Context Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Log Ċ import Ġcom . gor ill alog ic . mig uel h inc ap ie . domain . util . intValue Ċ import Ġcom . gor ill alog ic . mig uel h inc ap ie . domain . util . to Boolean Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjavax . inject . Inject Ċ Ċ private Ġconst Ġval ĠT AL K _ BACK _ SERVICE _ NAME Ġ= Ġ" com . google . android . mar vin . talk back /. Talk Back Service " Ċ private Ġconst Ġval ĠT AL K _ BACK _ SERVICE _ NAME _ DISABLED Ġ= Ġ"" Ċ Ċ class ĠTalk Back Facade Ġ@ Inject Ġconstructor ( private Ġval Ġcontext Weak Reference : ĠWeak Reference < Context >) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġstate Ġof Ġthe Ġservice : Ġ< code > true </ code > Ġif Ġit 's ĠON , Ġ< code > false </ code > Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġswitch Talk Back State () Ġ= Ġif Ġ( is Talk Back Enabled ()) Ġ! disable Talk Back () Ġelse Ġenable Talk Back () ĊĊĠĠĠ Ġfun Ġis Talk Back Enabled () Ġ= ĠSettings . Secure . getString ( ĊĠĠĠĠĠĠĠ Ġcontext Weak Reference . get ()?. content Resolver , ĊĠĠĠĠĠĠĠ ĠSettings . Secure . ACC ES SI B ILITY _ ENABLED ĊĠĠĠ Ġ) ?. toInt ()?. to Boolean () ĊĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġenable Talk Back () Ġ= Ġchange Accessibility Services State ( true , ĠT AL K _ BACK _ SERVICE _ NAME ) ĊĊĠĠĠ Ġfun Ġdisable Talk Back () Ġ= Ġchange Accessibility Services State ( false , ĠT AL K _ BACK _ SERVICE _ NAME _ DISABLED ) ĊĊĠĠĠ Ġprivate Ġfun Ġchange Accessibility Services State ( ĊĠĠĠĠĠĠĠ Ġenable : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġaccessibility ServiceName : ĠString ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . Secure . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Weak Reference . get ()?. content Resolver , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . Secure . ENABLED _ ACC ES SI B ILITY _ SERVICES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessibility ServiceName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . Secure . putString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Weak Reference . get ()?. content Resolver , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . Secure . ACC ES SI B ILITY _ ENABLED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable . intValue (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Accessibility Helper ", Ġe . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }