package Ġcom . feb ers . uest c _ bbs . module . post . view . edit Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Spinner Ċ import Ġandroidx . annotation . Ui Thread Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . feb ers . uest c _ bbs . R Ċ import Ġcom . feb ers . uest c _ bbs . base .* Ċ import Ġcom . feb ers . uest c _ bbs . entity . Board List Bean _ Ċ import Ġcom . feb ers . uest c _ bbs . entity . Post List Bean Ċ import Ġcom . feb ers . uest c _ bbs . entity . Post Send Result Bean Ċ import Ġcom . feb ers . uest c _ bbs . entity . Upload Result Bean Ċ import Ġcom . feb ers . uest c _ bbs . io . File Uploader Ċ import Ġcom . feb ers . uest c _ bbs . module . post . contract . PE dit Contract Ċ import Ġcom . feb ers . uest c _ bbs . module . post . contract . P List Contract Ċ import Ġcom . feb ers . uest c _ bbs . module . post . presenter . PE dit Presenter Impl Ċ import Ġcom . feb ers . uest c _ bbs . module . post . presenter . P List Presenter Impl Ċ import Ġcom . feb ers . uest c _ bbs . utils . post Event Ċ import Ġcom . feb ers . uest c _ bbs . view . adapter . Img GridView Adapter Ċ import Ġcom . feb ers . uest c _ bbs . module . post . view . content . CONTENT _ TYPE _ IMG Ċ import Ġcom . feb ers . uest c _ bbs . module . post . view . content . CONTENT _ TYPE _ TEXT Ċ import Ġcom . feb ers . uest c _ bbs . lib . emotion . Key Board Manager Ċ import Ġcom . feb ers . uest c _ bbs . lib . emotion . view . Em otion View Ċ import Ġcom . luck . picture . lib . Picture Selector Ċ import Ġcom . luck . picture . lib . config . Picture Config Ċ import Ġcom . luck . picture . lib . config . Picture MimeType Ċ import Ġcom . luck . picture . lib . entity . Local Media Ċ import Ġcom . luck . picture . lib . tools . Picture FileUtils Ċ import Ġkotlinx . android . synt hetic . main . fragment _ post _ edit .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ toolbar _ common .* Ċ import Ġorg . jetbrains . ank o . in determinate Progress Dialog Ċ import Ġorg . jetbrains . ank o . run On Ui Thread Ċ import Ġjava . io . File ĊĊ Ċ class ĠPost Edit Fragment : ĠBase Fragment (), ĠP Edit Contract . View , ĠP List Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġp List Presenter : ĠP List Contract . Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġp Edit Presenter : ĠP Edit Contract . Presenter ĊĊĠĠĠ Ġprivate Ġvar Ġis Anonymous : ĠInt Ġ= ĠUSER _ NO _ AN ONY MO US Ġ// åĮ ¿ åĲį ï¼Į é»ĺè®¤ ä¸į åĮ ¿ åĲį ( 0 ) ĊĠĠĠ Ġprivate Ġvar Ġis Only Author : ĠInt Ġ= ĠNO _ ONLY _ AUTHOR _ VIEW _ REPLY Ġ// åĽŀå¤į ä»ħ ä½ľèĢħ åı¯ è§ģ ï¼Į é»ĺè®¤ åĲ¦ ( 0 ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimg GridView Adapter : ĠImg GridView Adapter ĊĠĠĠ Ġprivate Ġval Ġselected Image Paths : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġval Ġselected Image Med ias : ĠMutable List < Local Media > Ġ= ĠArrayList () ĊĊĠĠĠ Ġprivate Ġval Ġboard Names : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġval Ġboard Ids : ĠMutable List < Int > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġboard Spinner Adapter : ĠArray Adapter < String >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġboard Spinner : ĠSp inner ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġclassification Names : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġval Ġclassification Ids : ĠMutable List < Int > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġclassification Id : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġclass Spinner Adapter : ĠArray Adapter < String >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġprogress Dialog : ĠProgress Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkeyboard Manager : ĠKey Board Manager ĊĊĠĠĠ Ġprivate Ġvar Ġfullscreen Edit View : ĠEdit View Fullscreen ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġset View (): ĠInt Ġ= ĠR . layout . fragment _ post _ edit ĊĊĠĠĠ Ġoverride Ġfun Ġon Lazy Init View ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Lazy Init View ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġp List Presenter Ġ= ĠP List Presenter Impl ( this ) ĊĠĠĠĠĠĠĠ Ġp Edit Presenter Ġ= ĠP Edit Presenter Impl ( this ) ĊĊĠĠĠĠĠĠĠ Ġinit Toolbar () ĊĠĠĠĠĠĠĠ Ġboard Names . add ( m Title . toString ()) ĊĠĠĠĠĠĠĠ Ġboard Ids . add ( mF id ) ĊĠĠĠĠĠĠĠ Ġboard Spinner Adapter Ġ= ĠArray Adapter ( context !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ layout _ spinner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . text _ view _ item _ spinner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard Names ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset DropDown View Resource ( R . layout . item _ layout _ spinner _ dropdown ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġboard Spinner Ġ= ĠSp inner ( toolbar _ common . context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġboard Spinner Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm F id Ġ= Ġboard Ids [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Names . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Ids . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Names . add (" ä¸į éĢīæĭ© ä¸»é¢ĺ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Ids . add ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Spinner Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp List Presenter . p List Request ( fid Ġ= Ġm F id , Ġpage Ġ= Ġ 1 , ĠpageSize Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoolbar _ common . addView ( board Spinner , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġclassification Names . add (" ä¸į éĢīæĭ© ä¸»é¢ĺ ") ĊĠĠĠĠĠĠĠ Ġclassification Ids . add ( 0 ) ĊĠĠĠĠĠĠĠ Ġclass Spinner Adapter Ġ= ĠArray Adapter ( context !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ layout _ spinner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . text _ view _ item _ spinner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Names ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset DropDown View Resource ( R . layout . item _ layout _ spinner _ dropdown ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġspinner _ post _ edit _ classification . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġclass Spinner Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Id Ġ= Ġclassification Ids [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġimg GridView Adapter Ġ= ĠImg GridView Adapter ( context !! , Ġselected Image Paths ) ĊĠĠĠĠĠĠĠ Ġimg GridView Adapter . setImage ClickListener ( object Ġ: ĠImg GridView Adapter . On Image ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Image Click ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPicture Selector . create ( this @ Post Edit Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. theme Style ( com . luck . picture . lib . R . style . picture _ default _ style ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open External Preview ( position , Ġselected Image Med ias ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Image Delete Click ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Paths . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Med ias . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg GridView Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġgrid _ view _ post _ img . adapter Ġ= Ġimg GridView Adapter ĊĊĠĠĠĠĠĠĠ Ġfab _ post _ edit . setOnClickListener Ġ{ Ġbefore Send New Post () Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ photo _ post _ edit . setOnClickListener Ġ{ Ġselect P ictures () Ġ} ĊĠĠĠĠĠĠĠ Ġinit Em otion View () ĊĊĠĠĠĠĠĠĠ Ġp List Presenter . board List Request ( mF id ) ĊĠĠĠĠĠĠĠ Ġp List Presenter . p List Request ( fid Ġ= Ġm F id , Ġpage Ġ= Ġ 1 , ĠpageSize Ġ= Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// åĮ ¿ åĲį åĬŁèĥ½ æĹłæ³ķ å®ŀçİ° Ċ // ĠĠĠĠĠĠĠ Ġcheck _ box _ is _ anonymous . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis Anonymous Ġ= Ġif Ġ( isChecked ) ĠUSER _ AN ONY MO US Ġelse ĠUSER _ NO _ AN ONY MO US Ġ} ĊĠĠĠĠĠĠĠ Ġcheck _ box _ is _ anonymous . visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠ Ġcheck _ box _ is _ only _ author . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis Only Author Ġ= Ġif Ġ( isChecked ) ĠONLY _ AUTHOR _ VIEW _ REPLY Ġelse ĠNO _ ONLY _ AUTHOR _ VIEW _ REPLY Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck _ box _ is _ only _ author . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġbtn _ edit _ text _ fullscreen . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fullscreen Edit View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfullscreen Edit View Ġ= ĠEdit View Fullscreen ( edit _ view _ post _ edit _ content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager ?. let Ġ{ Ġfragment Manager Ġ-> Ġfullscreen Edit View !!. show ( fragment Manager , Ġ" fullscreen _ edit ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity : ĠAppCompatActivity Ġ= Ġactivity Ġas ĠAppCompatActivity ĊĠĠĠĠĠĠĠ Ġactivity . set Support ActionBar ( toolbar _ common ) ĊĠĠĠĠĠĠĠ Ġactivity . support ActionBar ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoolbar _ common . set Navigation OnClickListener Ġ{ Ġactivity . finish () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ è¡¨ æĥħ éĶ® çĽĺ , éľĢè¦ģ æ³¨æĦı çļĦæĺ¯ å½ĵ æłĩé¢ĺ è¾ĵåħ¥ æ¡Ĩ èİ·åıĸ çĦ ¦ çĤ¹ çļĦæĹ¶åĢĻ ĊĠĠĠĠ Ġ* Ġ è¡¨ æĥħ éĶ® çĽĺ ä¸į åºĶè¯¥ åĩºçİ° , åĲĮæĹ¶ æīĵå¼Ģ çķĮéĿ¢ çļĦæĹ¶åĢĻ ï¼Į ĊĠĠĠĠ Ġ* Ġ æłĩé¢ĺ è¾ĵåħ¥ æ¡Ĩ åºĶè¯¥ ç¬¬ä¸Ģä¸ª èİ·å¾Ĺ çĦ ¦ çĤ¹ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Em otion View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( emotion _ view _ post _ edit Ġas ĠEm otion View ). attach EditText ( edit _ view _ post _ edit _ content ) ĊĠĠĠĠĠĠĠ Ġkeyboard Manager Ġ= ĠKey Board Manager . with ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Em otion Button ( btn _ emotion _ post _ edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Em otion View ( emotion _ view _ post _ edit Ġas ĠEm otion View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lock Content ( content _ view _ post _ edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Input Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å½ĵ it ä¸º true æĹ¶ è¾ĵåħ¥ æ³ķ å¼¹ åĩº ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Em otion Button OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġedit _ view _ post _ title . setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Manager . hide Input Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ emotion _ post _ edit . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn _ emotion _ post _ edit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Soft Input ( edit _ view _ post _ title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åıĳå¸ĥ æĸ° å¸ ĸ åŃĲ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbefore Send New Post () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst Title Ġ= Ġedit _ view _ post _ title . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġst Content Ġ= Ġedit _ view _ post _ edit _ content . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( st Title . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ view _ post _ title . error Ġ= ĠgetString ( R . string . please _ input _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( st Content . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ view _ post _ edit _ content . error Ġ= ĠgetString ( R . string . please _ input _ content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Image Paths . size Ġ>= Ġ 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( getString ( R . string . too _ many _ pictures )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( getString ( R . string . hint )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . confirm ) Ġ{ Ġdialog , Ġwhich Ġ-> Ġsend New Post ( st Title , Ġst Content ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( getString ( R . string . re _ edit )) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ set Negative Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend New Post ( st Title , Ġst Content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend New Post ( st Title : ĠString , Ġst Content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= Ġcontext !!. in determinate Progress Dialog (" è¯· ç¨ į åĢĻ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. show () ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Image Paths . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Edit Presenter . new Post Request ( fid Ġ= Ġm F id , Ġaid Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Id Ġ= Ġclassification Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġst Title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Ġ= Ġis Anonymous , Ġonly Author Ġ= Ġis Only Author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontents Ġ= Ġ* array Of ( CONTENT _ TYPE _ TEXT Ġto Ġst Content )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Image Post ( st Title , Ġst Content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Image Post ( title : ĠString , Ġcontent : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaid Buffer Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġval Ġcontent List : ĠMutable List < Pair < Int , ĠString >> Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġvar Ġsuccess Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġcontent List . add ( CONTENT _ TYPE _ TEXT Ġto Ġcontent ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( path Ġin Ġselected Image Paths . reversed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġflag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Uploader (). upload Post Image To BB S ( image File Ġ= ĠFile ( path ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġobject Ġ: ĠFile Uploader . On FileUpload Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Upload Fail ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Upload Success ( event : ĠBase Event < Upload Result Bean >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaid Buffer . append ("${ event . data . body ?. attachment ?. first ()?. id }, ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent List . add ( CONTENT _ TYPE _ IMG Ġto Ġevent . data . body ?. attachment ?. first ()?. url Name . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(++ success Count Ġ== Ġselected Image Paths . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. run On Ui Thread Ġ{ Ġprogress Dialog ?. setMessage (" ä¸Ĭä¼ł åĽ¾çīĩ æĪĲåĬŁ , æŃ£åľ¨ åıĳ è¡¨ å¸ ĸ åŃĲ ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaid Buffer . delete Char At ( aid Buffer . last Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Edit Presenter . new Post Request ( fid Ġ= Ġm F id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaid Ġ= Ġaid Buffer . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Id Ġ= Ġclassification Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Ġ= Ġis Anonymous , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġonly Author Ġ= Ġis Only Author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontents Ġ= Ġ* content List . to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Up loading ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog ?. setMessage (" æŃ£åľ¨ ä¸Ĭä¼ł ç¬¬ ${ success Count + 1 } å¼ł åĽ¾çīĩ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error (" ä¸Ĭä¼ł ç¬¬ ${ success Count + 1 } å¼ł åĽ¾çīĩ æĹ¶ å¤±è´¥ , éģ¿åħį ä¸Ĭä¼ł è¿ĩ å¤§ åĽ¾çīĩ , è¯· éĩį è¯ķ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui Thread ĊĠĠĠ Ġoverride Ġfun Ġshow P List ( event : ĠBase Event < Post List Bean >) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . data . classification Type _ list ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Names . add ( it . classification Type _ name !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassification Ids . add ( it . classification Type _ id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclass Spinner Adapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui Thread ĊĠĠĠ Ġoverride Ġfun Ġshow Board List ( event : ĠBase Event < Board List Bean _ >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . data . list ?. get ( 0 )?. board _ list ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard Names . add ( it . board _ name . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ids . add ( it . board _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Spinner Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow New Post Result ( event : ĠPost Send Result Bean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Event ( Post New Event ( Base Code . SUCCESS )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPicture FileUtils . delete Cache Dir File ( context !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect P ictures () Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Soft Input () ĊĠĠĠĠĠĠĠ ĠPicture Selector . create ( this @ Post Edit Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open Gallery ( Picture MimeType . of Image ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. max Select Num ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Drag Frame ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enable Crop ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. preview Image ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compress ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Result ( Picture Config . CH OOSE _ REQUEST ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠPicture Config . CH OOSE _ REQUEST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Images Ġ= ĠPicture Selector . obtain Multiple Result ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Med ias . addAll ( temp Images ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Images . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Image Paths . add ( selected Image Paths . size , Ġit . cut Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg GridView Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui Thread ĊĠĠĠ Ġoverride Ġfun Ġshow Error ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Dialog ?. dismiss () ĊĠĠĠĠĠĠĠ Ġif Ġ( msg . contains ( SERVICE _ RESPONSE _ NULL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Hint (" ç³ Ł ç³ ķ ï¼Į èİ·åıĸ çīĪ åĿĹ ä¿¡æģ¯ å¤±è´¥ äºĨ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( msg . contains ( SERVICE _ RESPONSE _ ERROR )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Hint ( getString ( R . string . hint _ check _ network )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow Hint ( msg ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠPicture FileUtils . delete Cache Dir File ( context !! ) ĊĠĠĠĠĠĠĠ Ġselected Image Paths . clear () ĊĠĠĠĠĠĠĠ Ġprogress Dialog Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( fid : ĠInt , Ġtitle : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPost Edit Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( F ID , Ġfid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( TITLE , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }