package Ġcom . wen ha iz . him usic . module . main . local Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġbutter knife . OnClick Ċ import Ġbutter knife . Un binder Ċ import Ġcom . wen ha iz . him usic . Build Config Ċ import Ġcom . wen ha iz . him usic . R Ċ import Ġcom . wen ha iz . him usic . data . bean . Collect Ċ import Ġcom . wen ha iz . him usic . data . bean . Collect _ Ċ import Ġcom . wen ha iz . him usic . data . bean . Song Ċ import Ġcom . wen ha iz . him usic . ext . show Toast Ċ import Ġcom . wen ha iz . him usic . module . detail . Detail Fragment Ċ import Ġcom . wen ha iz . him usic . utils . Box Util Ċ import Ġio . object box . Box Ċ Ċ class ĠEdit Collect Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġm Un binder : ĠU nb inder ĊĊĠĠĠ Ġ@ BindView ( R . id . action _ bar _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġm Title : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . collect _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġcollect Title : ĠEditText ĊĠĠĠ Ġ@ BindView ( R . id . collect _ cover ) ĊĠĠĠ Ġlateinit Ġvar Ġcollect Cover : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . collect _ intro ) ĊĠĠĠ Ġlateinit Ġvar Ġcollect Intro : ĠEditText ĊĊĠĠĠ Ġvar Ġaction : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġcollect Id : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm Collect : ĠCollect ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ create _ collect ) ĊĠĠĠĠĠĠĠ Ġaction Ġ= Ġintent . action ĊĠĠĠĠĠĠĠ Ġm Un binder Ġ= ĠB utter Kn ife . bind ( this ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== ĠACTION _ CREATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Title . text Ġ= ĠgetString ( R . string . create _ collect ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Title . text Ġ= ĠgetString ( R . string . edit _ collect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollect Id Ġ= Ġintent . getLong Extra (" collect Id ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Collect () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġload Collect () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcollect Box Ġ= ĠBox Util . get Box Store ( this ). box For ( Collect :: class . java ) ĊĠĠĠĠĠĠĠ Ġm Collect Ġ= Ġcollect Box . query (). equal ( Collect _. id , Ġcollect Id ). build (). find Unique () ĊĠĠĠĠĠĠĠ Ġcollect Title . setText ( m Collect ?. title ) ĊĠĠĠĠĠĠĠ Ġcollect Intro . setText ( m Collect ?. desc ) ĊĠĠĠĠĠĠĠ Ġ// todo : æĺ¾ç¤º å°ģ éĿ¢ Ċ // ĠĠĠĠĠĠĠ Ġcollect Cover ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . action _ bar _ back , ĠR . id . save , ĠR . id . collect _ cover ) ĊĠĠĠ Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ bar _ back Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( collect Title . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æłĩé¢ĺ ä¸įèĥ½ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Collect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . collect _ cover Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo : ä»İ ç³»ç»Ł çĽ¸ åĨĮ éĢīæĭ© å°ģ éĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Collect () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġcollect Title . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġintro Ġ= Ġcollect Intro . text . toString () Ċ // ĠĠĠĠĠĠĠ Ġval Ġcollect Dao Ġ= ĠBox Util . getSession ( this ). collect Dao ĊĠĠĠĠĠĠĠ Ġval Ġcollect Box Ġ= ĠBox Util . get Box Store ( this ). box For ( Collect :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġexist Collect Ġ= Ġcollect Box . query (). equal ( Collect _. title , Ġtitle ). build (). find Unique () ĊĠĠĠĠĠĠĠ Ġ// åĲįç§° ä¸į éĩįå¤į æĹ¶ ä¿ĿåŃĺ æŃĮ åįķ ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== ĠACTION _ CREATE Ġ&& Ġexist Collect Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Collect ( title , Ġintro , Ġcollect Box ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( action Ġ== ĠACTION _ UPDATE Ġ&& Ġ( exist Collect Ġ== Ġnull Ġ|| Ġexist Collect . id Ġ== Ġm Collect ?. id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Collect ( title , Ġintro , Ġcollect Box ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Detail Fragment . RESULT _ UPDATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æŃĮ åįķ å·² åŃĺåľ¨ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ") ĊĠĠĠ Ġprivate Ġfun Ġinsert Collect ( title : ĠString , Ġintro : ĠString , Ġcollect Box : ĠBox < Collect >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Collect Ġ= ĠCollect () ĊĠĠĠĠĠĠĠ Ġm Collect ?. setIs From User ( true ) ĊĠĠĠĠĠĠĠ Ġ// ä¸ºäºĨ åĴĮ ç½ĳç»ľ åĬłè½½ çļĦæĹ¶éĹ´ ä¿ĿæĮģ æł¼å¼ı ç»Łä¸Ģ ĊĠĠĠĠĠĠĠ Ġm Collect ?. create Date Ġ= ĠSystem . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġm Collect ?. update Date Ġ= ĠSystem . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġm Collect ?. title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġm Collect ?. desc Ġ= Ġintro ĊĠĠĠĠĠĠĠ Ġval Ġcollect Id Ġ= Ġcollect Box . put ( m Collect ) ĊĠĠĠĠĠĠĠ Ġif Ġ( collect Id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra (" song ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Song To Collect ( m Collect !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Local Fragment . RESULT _ COLLECT _ CREATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æĸ°å»º æŃĮ åįķ å¤±è´¥ ï¼Į è¯· éĩį è¯ķ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ") ĊĠĠĠ Ġprivate Ġfun Ġupdate Collect ( title : ĠString , Ġintro : ĠString , Ġcollect Box : ĠBox < Collect >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Collect ?. title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġm Collect ?. desc Ġ= Ġintro ĊĠĠĠĠĠĠĠ Ġcollect Box . put ( m Collect ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Song To Collect ( collect : ĠCollect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsong Ġ= Ġintent . get Serializable Extra (" song ") Ġas ĠSong ĊĠĠĠĠĠĠĠ Ġcollect . songs . add ( song ) ĊĠĠĠĠĠĠĠ Ġval Ġcollect Box Ġ= ĠBox Util . get Box Store ( this ). box For ( Collect :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( collect Box . put ( collect ) Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æ·»åĬł æĪĲåĬŁ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪ·æĸ° æķ°æį® ï¼Į éĺ² æŃ¢ ç¼ĵåŃĺ å¯¼èĩ´ çļĦæķ°æį® ä¸į æĽ´æĸ° ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æ·»åĬł å¤±è´¥ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġshow Soft Input () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Soft Input () Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect Title . clear Focus () ĊĠĠĠĠĠĠĠ Ġcollect Title . request Focus () ĊĠĠĠĠĠĠĠ Ġcollect Title . setSelection ( collect Title . length ()) ĊĠĠĠĠĠĠĠ Ġval Ġinput Manager : ĠInput Method Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġinput Manager . show Soft Input ( collect Title , ĠInput Method Manager . SHOW _ FOR CED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġhide Soft Input () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Un binder . unbind () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Soft Input () Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect Title . clear Focus () ĊĠĠĠĠĠĠĠ Ġval Ġinput Manager : ĠInput Method Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġinput Manager . hide Soft Input From Window ( collect Title . window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION _ UPDATE Ġ= Ġ"${ Build Config . APPLICATION _ ID }. UPDATE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION _ CREATE Ġ= Ġ"${ Build Config . APPLICATION _ ID }. CREATE " ĊĠĠĠ Ġ} Ċ } Ċ