package Ġcom . github . ser g ere in ov . aa 2 0 2 0 . domain Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Notification Channel Compat Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġandroidx . core . app . Notification Manager Compat . IMPORT ANCE _ HIGH Ċ import Ġandroidx . core . net . to Uri Ċ import Ġcom . github . ser g ere in ov . aa 2 0 2 0 . MainActivity Ċ import Ġcom . github . ser g ere in ov . aa 2 0 2 0 . R Ċ import Ġcom . github . ser g ere in ov . aa 2 0 2 0 . database . Movie Entity Ċ Ċ interface ĠNotifications Ġ{ ĊĠĠĠ Ġfun Ġshow Notification ( movie : ĠMovie Entity ) ĊĠĠĠ Ġfun Ġdismiss Notification ( movie Id : ĠLong ) Ċ } Ċ Ċ class ĠAndroid Notifications ( private Ġval Ġcontext : ĠContext ) Ġ: ĠNotifications Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCHAN NEL _ NEW _ MOV IE Ġ= Ġ" new _ movie " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ CONTENT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNEW _ MOV IE _ TAG Ġ= Ġ" new Ġmovie Ġtag " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġnotification Manager Compat : ĠNotification Manager Compat Ġ= ĊĠĠĠĠĠĠĠ ĠNotification Manager Compat . from ( context ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( notification Manager Compat . get Notification Channel ( CHANNEL _ NEW _ MOV IE ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager Compat . create Notification Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Channel Compat . Builder ( CHANNEL _ NEW _ MOV IE , ĠIMPORT ANCE _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setName ( context . getString ( R . string . channel _ new _ movie )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setDescription ( context . getString ( R . string . channel _ new _ movie _ description )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Notification ( movie : ĠMovie Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Uri Ġ= Ġ" com . github . ser g ere in ov . aa 2 0 2 0 :// aa 2 0 2 0 . local / movie /${ movie . id }". to Uri () ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNotification Compat . Builder ( context , ĠCHAN NEL _ NEW _ MOV IE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( context . getString ( R . string . there _ is _ a _ new _ movie )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( movie . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ star _ outline ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Only Alert Once ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setData ( content Uri ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġnotification Manager Compat . notify ( NEW _ MOV IE _ TAG , Ġmovie . id . toInt (), Ġbuilder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdismiss Notification ( movie Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotification Manager Compat . cancel ( NEW _ MOV IE _ TAG , Ġmovie Id . toInt ()) ĊĠĠĠ Ġ} Ċ } Ċ