package Ġcom . example . orange s note Ċ Ċ import Ġandroid . app . Alarm Manager Ċ 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 . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . work . One Time Work Request Ċ import Ġandroidx . work . Work Manager Ċ import Ġcom . example . orange s note . data . App Database Ċ import Ġkotlinx . android . synt hetic . main . activity _ note .* Ċ import Ġjava . util .* Ċ import Ġkotlin . concurrent . thread ĊĊ Ċ class ĠNote Activity Ġ: ĠAppCompatActivity (){ ĊĊĠĠĠ Ġprivate Ġvar Ġam : ĠAlarm Manager ? Ġ= Ġnull ĊĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ note ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġintent . getString Extra (" note _ title ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġintent . getString Extra (" note _ content ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġintent . getString Extra (" note _ Id ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ ĠLog . d (" f uck ", Ġtitle ) ĊĠĠĠĠĠĠĠ ĠLog . d (" f uck ", Ġcontent ) ĊĠĠĠĠĠĠĠ ĠLog . d (" f uck ", Ġid ) ĊĠĠĠĠĠĠĠ Ġtitle Add . setText ( title ) ĊĠĠĠĠĠĠĠ Ġcontent Add . setText ( content ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Dao Ġ= ĠApp Database . get Database ( this ). note Dao () ĊĠĠĠĠĠĠĠ Ġsubmit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title Add . text . toString () Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Note Ġ= Ġnote Dao . load ById ( id . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Note . title Ġ= Ġtitle Add . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Note . content Ġ= Ġcontent Add . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote Dao . update Note ( temp Note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" f uck 0 ", Ġtemp Note . title Ġ+ Ġ", Ġ" Ġ+ Ġtemp Note . content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote Dao . insert Note ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Add . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Add . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . instance ?. finish (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠOne Time Work Request . Builder ( My Worker :: class . java ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWork Manager . getInstance ( this ). enqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// æİ¥æĶ¶ å¹¿ æĴŃ ĊĊĠĠĠĠĠĠ Ġ/* Ġval Ġmanager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel (" time ", Ġ" Time ", ĠNotification Manager . IMPORT ANCE _ DEFAULT ) ĊĠĠĠĠĠĠĠ Ġmanager . create Notification Channel ( channel ) Ċ */ ĊĠĠĠĠĠĠĠ Ġset Btn . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è°ĥæķ´ ä¸º ä¸ŃåĽ½ æĹ¶ åĮº ï¼Į ä¸į çĦ¶ æľī 8 å°ı æĹ¶ å·® æ¯Ķè¾ĥ éº » çĥ ¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" Asia / Sh ang hai ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . time Zone Ġ= Ġtz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ å½ĵåīį æĹ¶éĹ´ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set Hour . text . toString () ! ="" && set Min . text . toString () ! ="") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . set ( Calendar . HOUR _ OF _ DAY , Ġset Hour . text . toString (). toInt ()); // å°ı æĹ¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . MINUTE , Ġset Min . text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); // åĪĨ éĴŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . set ( Calendar . SECOND , Ġ 0 );// ç§Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è®¡ æĹ¶ åıĳéĢģ éĢļçŁ¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Intent Ġ= ĠIntent ( this , ĠMy Receiver :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Intent . action Ġ= Ġ" NOTIFICATION "; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Pending Intent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . get Broadcast ( this , Ġ 0 , Ġm Intent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġam Ġ= Ġthis . getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set Hour . text . toString () = ="" || set Min . text . toString () = ="" || ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Hour . text . toString (). toInt () Ġ> Ġ 2 4 Ġ|| Ġset Min . text . toString (). toInt () Ġ> Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" è¯·è¾ĵåħ¥ æŃ£ç¡® çļĦæĹ¶éĹ´ æł¼å¼ı ï¼ģ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" f uck 1 0 ", Ġc . time In Millis . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġam !!. set Exact And Allow While Idle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlarm Manager . RTC _ WAKE UP , Ġc . time In Millis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pending Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" è®¾ç½® æĪĲåĬŁ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠ Ġ// çĽĳåĲ¬ å¹¶ éĺ² æŃ¢ çĶ¨æĪ· æĮī back éĶ® çĽ´æİ¥ è¿ĶåĽŀ åĪ° æ¡ Į éĿ¢ ï¼Į ä¹ĭåīį éĤ£ ä¸ª æĸ¹æ³ķ ä¸į è¡Į ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( title Add . text . toString () Ġ== Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} Ċ } ĊĊ