package Ġeu . kan ade . t ach iy omi . extension Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . data . notification . Notification Receiver Ċ import Ġeu . kan ade . t ach iy omi . data . notification . Notifications Ċ import Ġeu . kan ade . t ach iy omi . util . system . notification Builder Ċ import Ġeu . kan ade . t ach iy omi . util . system . notification Manager Ċ Ċ class ĠExtension Install Notifier ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBitmap Ġof Ġthe Ġapp Ġfor Ġnotifications . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġnotification Bitmap Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠBitmap Factory . decode Resource ( context . resources , ĠR . mip map . ic _ launcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPending Ġintent Ġof Ġaction Ġthat Ġcancel s Ġthe Ġlibrary Ġupdate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġcancel Intent Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠNotification Receiver . cancel Extension Update Pending Broadcast ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCached Ġprogress Ġnotification Ġto Ġavoid Ġcreating Ġa Ġlot . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġprogress Notification Builder Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . notification Builder ( Notifications . CHANNEL _ EXT _ PROGRESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Title ( context . getString ( R . string . app _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Small Icon ( android . R . drawable . stat _ sys _ download ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Large Icon ( notification Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Title ( context . getString ( R . string . updating _ extensions )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Progress ( 0 , Ġ 0 , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Sil ent ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Only Alert Once ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠContext Compat . getColor ( context , ĠR . color . secondary T ach iy omi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( R . drawable . ic _ close _ 2 4 dp , Ġcontext . getString ( android . R . string . cancel ), Ġcancel Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShows Ġthe Ġnotification Ġcontaining Ġthe Ġcurrently Ġupdating Ġm anga Ġand Ġthe Ġprogress . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġm anga Ġthe Ġm anga Ġthat 's Ġbeing Ġupdated . ĊĠĠĠĠ Ġ* Ġ@ param Ġcurrent Ġthe Ġcurrent Ġprogress . ĊĠĠĠĠ Ġ* Ġ@ param Ġtotal Ġthe Ġtotal Ġprogress . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Progress Notification ( progress : ĠInt , Ġmax : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . notification Manager . notify ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotifications . ID _ EXTENSION _ PROGRESS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Notification Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Channel Id ( Notifications . CHANNEL _ EXT _ PROGRESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( context . getString ( R . string . updating _ extensions )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Progress ( max , Ġprogress , Ġprogress Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Updated Notification ( extensions : ĠList < Extension Manager . Extension Info >, Ġhide Content : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . notification Manager . notify ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotifications . ID _ UPDATED _ EXT S , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Notification Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Channel Id ( Notifications . CHANNEL _ EXT _ UPDATED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . get Quantity String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . plurals . extensions _ updated _ plural , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ extension _ updated _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set O ngo ing ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( Notification Receiver . open Extensions Pending Activity ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. clear Actions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Progress ( 0 , Ġ 0 , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! hide Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Text ( extensions . join ToString (", Ġ") Ġ{ Ġit . name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ