package Ġcom . github . ty ng st ast . b ors data valu ational ar mer . android . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . Constraints Ċ import Ġandroidx . work . Existing Work Policy Ċ import Ġandroidx . work . Network Type Ċ import Ġandroidx . work . One Time Work RequestBuilder Ċ import Ġandroidx . work . Work Manager Ċ import Ġcom . github . ty ng st ast . b ors data valu ational ar mer . android . worker . Val uation Alarm Worker Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠVal uation Alarm Worker Factory ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVAL UATION _ SYNC _ WORK Ġ= Ġ" valu ation Sync Work "; ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWORK _ REQUEST _ TAG Ġ= Ġ" Val uation Sync Tag "; ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconstraints Ġ= ĠConstraints . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Required Network Type ( Network Type . CONNECTED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġwm Ġ= ĠWork Manager . getInstance ( context ) ĊĊĠĠĠ Ġfun Ġbegin Alarm Trigger Work () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwork Request Ġ= ĠOne Time Work RequestBuilder < Val uation Alarm Worker >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setInitial Delay ( random Initial Delay (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Tag ( WORK _ REQUEST _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Constraints ( constraints ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġwm . begin Unique Work ( VAL UATION _ SYNC _ WORK , ĠExisting Work Policy . REPLACE , Ġwork Request ). enqueue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ 6 0 Ġ- Ġ 6 0 0 Ġseconds Ġ-> Ġ 1 Ġ- Ġ 5 Ġminutes . ĊĠĠĠĠ Ġ* ĠUse Ġat Ġleast Ġ 1 Ġmin Ġto Ġlet Ġquotes Ġupdate Ġafter Ġopen . ĊĠĠĠĠ Ġ* ĠUse Ġseconds Ġto Ġspread Ġout Ġrequests Ġtowards Ġbackend Ġmore . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġrandom Initial Delay (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( 6 0 L .. 3 0 0 L ). random () ĊĠĠĠ Ġ} Ċ }