package Ġcom . example . notification demo ĊĊ Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Remote Input Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġchannel ID Ġ= Ġ" com . example . notification demo . channel 1 " ĊĠĠĠ Ġprivate Ġvar Ġnotification Manager : ĠNotification Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠKEY _ REPLY Ġ= Ġ" key _ reply " ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĊĠĠĠĠĠĠĠ Ġcreate Notification Channel ( channel ID , Ġ" Demo Channel ", Ġ" It 's Ġdemo ") ĊĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Not f ication () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Not f ication () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnotification Id Ġ= Ġ 3 3 ĊĠĠĠĠĠĠĠ Ġval Ġtap Result Intent Ġ= ĠIntent ( this , ĠSecond Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Intent : ĠPending Intent Ġ= ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtap Result Intent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġremote Input : ĠRemote Input Ġ= ĠRemote Input . Builder ( KEY _ REPLY ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Label (" Tell Ġus Ġwhy Ġyou Ġdid Ġnot Ġcomplete Ġyour Ġcourse ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġreply Action : ĠNotification Compat . Action Ġ= ĠNotification Compat . Action . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" REPLY ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Intent ĊĠĠĠĠĠĠĠ Ġ). add Remote Input ( remote Input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġdetails Intent Ġ= ĠIntent ( this , ĠDetails Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Details Intent : ĠPending Intent Ġ= ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Intent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdetails Action : ĠNotification Compat . Action Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Action . Builder ( 0 , Ġ" Details ", Ġpending Details Intent ). build () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġsettings Intent Ġ= ĠIntent ( this , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Settings Intent : ĠPending Intent Ġ= ĠPending Intent . getActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Intent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsettings Action : ĠNotification Compat . Action Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Action . Builder ( 0 , Ġ" Settings ", Ġpending Settings Intent ). build () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= ĠNotification Compat . Builder ( this @ MainActivity , Ġchannel ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" U de my ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" You Ġhave Ġone Ġun completed Ġcourse Ġwaiting Ġfor Ġyou .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( android . R . drawable . ic _ dialog _ info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( details Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( settings Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( reply Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġnotification Manager ?. notify ( notification Id , Ġnotification ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Notification Channel ( channel ID : ĠString , Ġname : ĠString , Ġchannel Description : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimportance Ġ= ĠNotification Manager . IMPORT ANCE _ HIGH ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( channel ID , Ġname , Ġimportance ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġchannel Description ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotification Manager ?. create Notification Channel ( channel ) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ