package Ġxyz . heart . sms . activity . main Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Handler Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġxyz . heart . sms . activity . Messenger Activity Ċ import Ġxyz . heart . sms . shared . data . DataSource Ċ import Ġxyz . heart . sms . shared . service . jobs . Scheduled Message Job Ċ import Ġxyz . heart . sms . shared . util . Cursor Util Ċ import Ġxyz . heart . sms . shared . util . Notification Utils Ċ import Ġxyz . heart . sms . utils . Text Any where Conversation Card App lier Ċ Ċ class ĠMain On Start Delegate ( private Ġval Ġactivity : ĠMess enger Activity ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġnav Controller ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġactivity . nav Controller ĊĊĠĠĠ Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nav Controller . conversation List Fragment Ġ!= Ġnull Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! nav Controller . conversation List Fragment !!. is Expanded ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! activity . fab . is Shown Ġ&& Ġnav Controller . other Fragment Ġ== Ġnull ) Ġactivity . fab . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Text Any where Promotion () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . sn oo ze Controller . update Sn oo ze Icon () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss All Active Notifications () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠScheduled Message Job . schedule Next Run ( activity ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Text Any where Promotion () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcon vo List Ġ= Ġnav Controller . conversation List Fragment !! ĊĠĠĠĠĠĠĠ Ġval Ġapp lier Ġ= ĠText Any where Conversation Card App lier ( con vo List ) ĊĠĠĠĠĠĠĠ Ġval Ġre cycler Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcon vo List . re cyclerView ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( recycler Ġ!= Ġnull Ġ&& Ġapp lier . should Add Card ToList ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscroll To Top Ġ= Ġre cycler . layout Manager Ġis ĠLinearLayoutManager Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( recycler . layout Manager Ġas ĠLinearLayoutManager ). findFirst Visible Item Position () Ġ== Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp lier . add Card To Conversation List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scrollTo Top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler . smooth Scroll To Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss All Active Notifications () Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠDataSource . getUn seen Messages ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġc . count ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCursor Util . close Sil ent ( c ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsince Ġthe Ġnotification Ġfunctionality Ġhere Ġis Ġnot Ġnearly Ġas Ġgood Ġas Ġ 7 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġwill Ġjust Ġremove Ġthem Ġall , Ġif Ġthere Ġis Ġmore Ġthan Ġone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Utils . cancel All ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} Ċ }