/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 , ĠM os he ĠW ais berg Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . github . duplicates . alarm Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Base Columns ._ ID Ċ import Ġcom . github . duplicates . Days OfWeek Ċ import Ġcom . github . duplicates . Duplicate Provider Ċ Ċ /** Ċ Ġ* ĠProvide Ġduplicate Ġmessages Ġfor ĠSamsung Ġdevices . Ċ Ġ* Ċ Ġ* Ġ@ author Ġm os he . w Ċ Ġ*/ Ċ class ĠSamsung Alarm Provider ( context : ĠContext ) Ġ: ĠDuplicate Provider < Alarm Item >( context ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetContent Uri (): ĠUri ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUri . parse (" content :// com . s amsung . sec . android . clock package / alarm ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Cursor Projection (): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPRO JECTION ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Item ( cursor : ĠCursor ): ĠAlarm Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAlarm Item () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopulate Item ( cursor : ĠCursor , Ġitem : ĠAlarm Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem . id Ġ= Ġcursor . getLong ( INDEX _ ID ) ĊĠĠĠĠĠĠĠ Ġitem . activate Ġ= Ġcursor . getInt ( INDEX _ ACTIVE ) ĊĠĠĠĠĠĠĠ Ġitem . sound Tone Ġ= Ġcursor . getInt ( INDEX _ AL AR MS O UND ) ĊĠĠĠĠĠĠĠ Ġitem . alarm Time Ġ= Ġcursor . getInt ( INDEX _ ALARM TIME ) ĊĠĠĠĠĠĠĠ Ġitem . sound Tone Ġ= Ġcursor . getInt ( INDEX _ AL AR MT ONE ) ĊĠĠĠĠĠĠĠ Ġitem . sound Uri Ġ= Ġcursor . getString ( INDEX _ ALARM URI ) ĊĠĠĠĠĠĠĠ Ġitem . alert Time Ġ= Ġcursor . getLong ( INDEX _ ALERT TIME ) ĊĠĠĠĠĠĠĠ Ġitem . create Time Ġ= Ġcursor . getLong ( INDEX _ CRE AT ETIME ) ĊĠĠĠĠĠĠĠ Ġitem . is Daily Brief ing Ġ= Ġcursor . getInt ( INDEX _ DA IL Y BR IE F ) Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġitem . name Ġ= Ġempty ( cursor , ĠINDEX _ NAME ) ĊĠĠĠĠĠĠĠ Ġitem . notification Type Ġ= Ġcursor . getInt ( INDEX _ NOT ITY PE ) ĊĠĠĠĠĠĠĠ Ġitem . repeat Ġ= Ġto Days OfWeek ( cursor . getInt ( INDEX _ REPEAT TYPE )) ĊĠĠĠĠĠĠĠ Ġitem . is Sub due Activate Ġ= Ġcursor . getInt ( INDEX _ SB D ACTIVE ) Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġitem . sub due Duration Ġ= Ġcursor . getInt ( INDEX _ SB DD URATION ) ĊĠĠĠĠĠĠĠ Ġitem . sub due Tone Ġ= Ġcursor . getInt ( INDEX _ SB DT ONE ) ĊĠĠĠĠĠĠĠ Ġitem . sub due Uri Ġ= Ġcursor . getInt ( INDEX _ SB D URI ) ĊĠĠĠĠĠĠĠ Ġitem . is Sn oo ze Activate Ġ= Ġcursor . getInt ( INDEX _ SN Z ACTIVE ) Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġitem . sn oo ze Done Count Ġ= Ġcursor . getInt ( INDEX _ SN Z COUNT ) ĊĠĠĠĠĠĠĠ Ġitem . sn oo ze Duration Ġ= Ġcursor . getInt ( INDEX _ SN Z DURATION ) ĊĠĠĠĠĠĠĠ Ġitem . sn oo ze Repeat Ġ= Ġcursor . getInt ( INDEX _ SN Z REPEAT ) ĊĠĠĠĠĠĠĠ Ġitem . volume Ġ= Ġcursor . getInt ( INDEX _ VOLUME ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Read Permissions (): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPER MISSION S _ READ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Delete Permissions (): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPER MISSION S _ WRITE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġto Days OfWeek ( repeat : ĠInt ): ĠDays OfWeek ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( repeat Ġand ĠRE PEAT _ WEEK LY Ġ!= ĠRE PEAT _ WEEK LY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdays OfWeek Ġ= ĠDays OfWeek ( 0 ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 0 , Ġrepeat Ġand ĠDAY _ S UND AY Ġ== ĠDAY _ S UND AY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 1 , Ġrepeat Ġand ĠDAY _ MON DAY Ġ== ĠDAY _ MON DAY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 2 , Ġrepeat Ġand ĠDAY _ T UES DAY Ġ== ĠDAY _ T UES DAY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 3 , Ġrepeat Ġand ĠDAY _ W ED N ES DAY Ġ== ĠDAY _ W ED N ES DAY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 4 , Ġrepeat Ġand ĠDAY _ TH UR SD AY Ġ== ĠDAY _ TH UR SD AY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 5 , Ġrepeat Ġand ĠDAY _ FR ID AY Ġ== ĠDAY _ FR ID AY ) ĊĠĠĠĠĠĠĠ Ġdays OfWeek . set ( 6 , Ġrepeat Ġand ĠDAY _ S ATUR DAY Ġ== ĠDAY _ S ATUR DAY ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdays OfWeek ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPACK AGE Ġ= Ġ" com . sec . android . app . clock package " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPER MISSION S _ READ Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" com . sec . android . app . clock package . permission . READ _ ALARM ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPER MISSION S _ WRITE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" com . sec . android . app . clock package . permission . WRITE _ ALARM ") ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPRO JECTION Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" active ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" create time ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alert time ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alarm time ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" repeat type ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" not it ype ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sn z active ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sn z duration ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sn z repeat ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sn z count ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" daily brief ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s bd active ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sb dd uration ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sb dt one ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alarm sound ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alar mt one ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" volume ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s bd uri ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" alarm uri ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" name " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ ID Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ ACTIVE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ CRE AT ETIME Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ ALERT TIME Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ ALARM TIME Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ REPEAT TYPE Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ NOT ITY PE Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SN Z ACTIVE Ġ= Ġ 7 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SN Z DURATION Ġ= Ġ 8 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SN Z REPEAT Ġ= Ġ 9 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SN Z COUNT Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ DA IL Y BR IE F Ġ= Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SB D ACTIVE Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SB DD URATION Ġ= Ġ 1 3 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SB DT ONE Ġ= Ġ 1 4 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ AL AR MS O UND Ġ= Ġ 1 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ AL AR MT ONE Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ VOLUME Ġ= Ġ 1 7 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ SB D URI Ġ= Ġ 1 8 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ ALARM URI Ġ= Ġ 1 9 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINDEX _ NAME Ġ= Ġ 2 0 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRE PEAT _ WEEK LY Ġ= Ġ 0 x 0 0 0 0 0 0 0 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRE PEAT _ TOM OR ROW Ġ= Ġ 0 x 0 0 0 0 0 0 0 1 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ S UND AY Ġ= Ġ 0 x 1 0 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ MON DAY Ġ= Ġ 0 x 0 1 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ T UES DAY Ġ= Ġ 0 x 0 0 1 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ W ED N ES DAY Ġ= Ġ 0 x 0 0 0 1 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ TH UR SD AY Ġ= Ġ 0 x 0 0 0 0 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ FR ID AY Ġ= Ġ 0 x 0 0 0 0 0 1 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDAY _ S ATUR DAY Ġ= Ġ 0 x 1 0 0 0 0 0 1 0 ĊĠĠĠ Ġ} Ċ } Ċ