package Ġcom . zk team . ui . components . notification Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġcom . zk team . ui . components . R Ċ import Ġjava . util .* Ċ Ċ class ĠZ K Notification Builder Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IFICATION _ CLICK Ġ= Ġ" NOTIFICATION _ CLICK " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnotification Manager : ĠNotification Manager Compat ĊĠĠĠ Ġprivate Ġvar Ġmsg Receiver : ĠNotification Msg Receiver ? Ġ= Ġnull ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġparent Group : ĠRemote Views ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbuilder : ĠNotification Compat . Builder ĊĠĠĠ Ġprivate Ġvar Ġchild Count : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġlist : ĠArrayList < Item Data Bean >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Close ed Ġ= Ġfalse ĊĊĠĠĠ Ġfun ĠNotification Builder ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġnotification Manager Ġ= ĠNotification Manager Compat . from ( context ) ĊĠĠĠĠĠĠĠ Ġbuilder Ġ= ĠNotification Compat . Builder ( context , Ġ" 1 1 ") ĊĠĠĠĠĠĠĠ Ġbuilder . setContent Title (" Z hu o Ke SDK - Notification ĠUtil ") // æłĩé¢ĺ ĊĠĠĠĠĠĠĠ Ġbuilder . setContent Text ("") // åĨħå®¹ ĊĠĠĠĠĠĠĠ Ġbuilder . set Small Icon ( R . mip map . ic _ launcher _ round )// Icon Ġå¦Ĥæŀľ ä¸į è®¾ç½® Icon , Notification ä¸įä¼ļ è·³ åĩºæĿ¥ ĊĠĠĠĠĠĠĠ Ġbuilder . setAuto Cancel ( false )// çĤ¹åĩ» ä»¥ åĲİ æĺ¯åĲ¦ èĩªåĬ¨ æ¸ħ éĻ¤ , true - çĤ¹åĩ» åĲİ èĩªåĬ¨ æ¸ħ éĻ¤ , false - çĤ¹åĩ» ä»¥ åĲİ ä¸įä¼ļ èĩªåĬ¨ æ¸ħ éĻ¤ ĊĠĠĠĠĠĠĠ Ġbuilder . set O ngo ing ( true )// è®¾ç½® æĺ¯åĲ¦ ä¸º æŃ£åľ¨ è¿Ľè¡Į çļĦ éĢļçŁ¥ ĊĠĠĠĠĠĠĠ Ġbuilder . set Only Alert Once ( false )// set Only Alert Once Ġæĺ¯åĲ¦ æıĲç¤º ä¸Ģæ¬¡ . Ġtrue Ġ- Ġå¦Ĥæŀľ Notification å·²ç»ı åŃĺåľ¨ çĬ¶æĢģ æłı åį³ ä½¿ åľ¨ è°ĥçĶ¨ notify åĩ½æķ° ä¹Ł ä¸įä¼ļ æĽ´æĸ° . ĊĠĠĠĠĠĠĠ Ġ// æľĢ å¤ĸ å±Ĥ å¸ĥå±Ģ Group ĊĠĠĠĠĠĠĠ Ġparent Group Ġ= ĠRemote Views ( context . packageName , ĠR . layout . notification _ util _ group ) ĊĠĠĠĠĠĠĠ Ġchild Count Ġ= Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Item ( item Data Bean : ĠItem Data Bean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList < Item Data Bean >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( list !!. size Ġ>= Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" åĻ ¢ ~ å·¥åħ· æłı æĶ¾ ä¸į ä¸ĭ äºĨ ï¼Į åĪłéĻ¤ äºĽ åĨį æ·»åĬł åĲ§ ãĢĤ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist !!. add ( item Data Bean ) ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Item ( item Data Bean : ĠItem Data Bean , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull Ġ|| Ġlist !!. size Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist ! ![ index ] Ġ= Ġitem Data Bean ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Item ( item Data Bean : ĠItem Data Bean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist !!. indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Bean Ġ= Ġlist ! ![ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Bean . itemId . content Equals ( item Data Bean . itemId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ! ![ i ] Ġ= Ġitem Data Bean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Item ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist !!. remove At ( index ) ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Item ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( item Bean Ġin Ġlist !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Bean . itemId . content Equals ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list !!. remove ( item Bean )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove All Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList < Item Data Bean >() ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġchild Count Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġparent Group . removeAll Views ( R . id . not ifi y _ item _ parent _ group ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Bean Ġin Ġlist !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠRemote Views ( context . packageName , ĠR . layout . notification _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setText View Text ( R . id . not ifi y _ item _ text , Ġitem Bean . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set ImageView Resource ( R . id . not ifi y _ item _ img , Ġitem Bean . img Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( NOTIFICATION _ CLICK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" data ", Ġitem Bean ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . get Broadcast ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġchild Count , Ġintent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOn Click Pending Intent ( R . id . notification _ item _ view , Ġpending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Group . addView ( R . id . not ifi y _ item _ parent _ group , ĠitemView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( click Listener : ĠNotification ItemClickListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( click Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Receiver Ġ= ĠNotification Msg Receiver ( click Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . register Receiver ( msg Receiver , ĠIntent Filter ( NOTIFICATION _ CLICK )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . setContent ( parent Group ) ĊĠĠĠĠĠĠĠ Ġnotification Manager . notify ( 1 , Ġbuilder . build ()) ĊĠĠĠĠĠĠĠ Ġis Close ed Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Close ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġis Close ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġnotification Manager . cancel ( 1 ) ĊĠĠĠĠĠĠĠ Ġparent Group . removeAll Views ( R . id . not ifi y _ item _ parent _ group ) ĊĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList < Item Data Bean >() ĊĠĠĠĠĠĠĠ Ġif Ġ( msg Receiver Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . unregister Receiver ( msg Receiver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Receiver Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }