package Ġcom . example . orange s note ĊĊ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġcom . example . orange s note . data . App Database Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlin . concurrent . thread ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// å®ļä¹ī åħ¨å±Ģ åıĺéĩı ï¼Į å®ŀçİ° åľ¨ åı¦ ä¸Ģä¸ª Activity ä¸Ń åĪłéĻ¤ MainActivity ĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġvar Ġinstance : ĠMainActivity ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġnote List Ġ= ĠArrayList < Note >() ĊĠĠĠ Ġval Ġad pt er Ġ= ĠNote Adapter ( this , Ġnote List ) ĊĊĠĠĠ Ġprivate Ġval Ġmedia Player Ġ= ĠMedia Player () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġinit MediaPlayer () ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" onCreate ") ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Dao Ġ= ĠApp Database . get Database ( this ). note Dao () ĊĠĠĠĠĠĠĠ Ġnote List . clear () ĊĠĠĠĠĠĠ Ġ// Ġnote List . add ( Note (" ç¬¬ä¸Ģä¸ª ç¤ºä¾ĭ ", Ġ" åĨħå®¹ ")) ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( note Ġin Ġnote Dao . load All Notes ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote List . add ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( note Ġin Ġnote Dao . load All Notes ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" f uck 1 ", Ġnote . title +" Ġ, Ġ"+ note . content Ġ+ ", Ġ"+ note . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠGrid LayoutManager ( this , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġ// val Ġad pt er Ġ= ĠNote Adapter ( this , Ġnote List ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġad pt er ĊĠĠĠĠĠĠĠ Ġ// å®ŀçİ° æ»ĳ åĬ¨ ä¸İ æĭ ĸ æĭ ½ ĊĠĠĠĠĠĠĠ Ġval Ġcallback : ĠItem Touch Helper . Callback Ġ= ĠRe cycle Item Touch Helper ( ad pt er ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Touch Helper Ġ= ĠItem Touch Helper ( callback ) ĊĠĠĠĠĠĠĠ Ġitem Touch Helper . attach To RecyclerView ( re cyclerView ) ĊĊĠĠĠĠĠĠĠ Ġ// æ Ĥ¬ æµ ® æĮīéĴ® ç¼ĸè¾ĳ åĪĽå»º ĊĠĠĠĠĠĠĠ Ġadd Note . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠNote Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwin : ĠWindow Ġ= Ġwindow ĊĠĠĠĠĠĠĠ Ġwin . add Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ SHOW _ WHEN _ LOCK ED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠWindow Manager . LayoutParams . FLAG _ DIS MIS S _ KEY GU ARD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠWindow Manager . LayoutParams . FLAG _ KEEP _ SCREEN _ ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠWindow Manager . LayoutParams . FLAG _ T URN _ SCREEN _ ON ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġ// æ·»åĬł toolbar ĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . toolbar , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// è¿ĺ æ²¡ åĨĻ åĬŁèĥ½ , åı¯ æ·»åĬł éŁ³ ä¹Ĳ åķ ¥ çļĦ ï¼Į åºĶè¯¥ è·Ł å¤© æ°Ķ é¢Ħ æĬ¥ çļĦ å¼ķåħ¥ å·® ä¸į å¤ļ ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( item . itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . backup Ġ-> Ġif Ġ(! media Player . is Playing ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . delete Ġ-> Ġif Ġ( media Player . is Playing ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . pause () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit MediaPlayer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sorting Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtp list Ġ= Ġnote List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtp list ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" test ", Ġi . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtp list . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmin Ġ= Ġtp list [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġk Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġuntil Ġ Ġtp list . size ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( tp list [ j ]. title . length <= min . title . length ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġtp list [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk Ġ= Ġj ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtp list [ k ] Ġ= Ġtp list [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtp list [ i ] Ġ= Ġmin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" num ", tp list . size . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtp list . size ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" test 1 ", Ġtp list [ i ]. title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote List Ġ= Ġtp list ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad pt er . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" on P au ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" on Stop ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" on Resume ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" on Destroy ") ĊĠĠĠĠĠĠĠ Ġmedia Player . stop () ĊĠĠĠĠĠĠĠ Ġmedia Player . release () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ä¸į çŁ¥éģĵ åĴ ĭ åĪ·æĸ° ï¼Į åıªèĥ½ åľ¨ on Restart ä¸Ĭ éĩįæĸ° æĺ¾ç¤º ï¼Į ä¼° è®¡ æķĪ çİĩ å¾Ī ä½İ , åİŁ æĿ¥ æ²¡ åķ ¥ çĶ¨ ï¼Į è¿ĺ éĢł æĪĲ äºĨ bug ï¼Į å¿ĥ ç´ ¯ ĊĠĠĠ Ġoverride Ġfun Ġon Restart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Restart () ĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity 1 ", Ġ" on Restart ") ĊĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit MediaPlayer (){ ĊĠĠĠĠĠĠĠ Ġval Ġasset Manager Ġ= Ġassets ĊĠĠĠĠĠĠĠ Ġval Ġfd Ġ= Ġasset Manager . open Fd (" Versions . mp 3 ") ĊĠĠĠĠĠĠĠ Ġmedia Player . set DataSource ( fd . file Descriptor , Ġfd . start Offset , Ġfd . length ) ĊĠĠĠĠĠĠĠ Ġmedia Player . prepare () ĊĠĠĠ Ġ} Ċ }