/* Ċ Ġ* ĠCopyright Ġ( C ) Ġgu olin , ĠSu zh ou ĠQu xi ang ĠInc . ĠOpen Ġsource Ġcodes Ġfor Ġstudy Ġonly . Ċ Ġ* ĠDo Ġnot Ġuse Ġfor Ġcommercial Ġpurpose . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . qu xi ang gif . feeds . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . ScrollView Ċ Ċ import Ġcom . qu xi ang gif . core . Gif Fun Ċ import Ġcom . qu xi ang gif . core . extension . dp 2 px Ċ import Ġcom . qu xi ang gif . feeds . ui . Post Feed Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ post _ feed .* Ċ Ċ /** Ċ Ġ* Ġ åıĳéĢģ Feed çķĮ éĿ¢çļĦ ä¸» å¸ĥå±Ģ ï¼Į éĢļè¿ĩ è¿Ļä¸ª çķĮéĿ¢ åı¯ä»¥ çĽĳåĲ¬ åĪ° éĶ® çĽĺ å¼¹ åĩºçļĦ æĥħåĨµ ï¼Į å¦Ĥæŀľ éĶ® çĽĺ å¼¹ åĩº ï¼Į åĪĻ å°Ĩ åĮħåĲ« G IF åĽ¾çīĩ çļĦ ScrollView æ»ļ åĬ¨ åĪ° åºķ éĥ¨ ãĢĤ Ċ Ġ* Ċ Ġ* Ġ@ author Ġgu olin Ċ Ġ* Ġ@ since Ġ 1 7 / 4 / 1 Ċ Ġ*/ Ċ class ĠPost Feed Layout ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: ĠLinearLayout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPost Feed Activity çļĦ å®ŀä¾ĭ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġvar Ġactivity : ĠPost Feed Activity Ġ= Ġcontext Ġas ĠPost Feed Activity ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ G IF åĽ¾çīĩ å¸ĥå±Ģ çļĦ Params ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠGIF åĽ¾çīĩ å¸ĥå±Ģ çļĦ Params ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġselected Gif LayoutParams : ĠLinearLayout . LayoutParams ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġactivity . selected Gif Layout . layout Params Ġas ĠLayout Params ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ çļĦ Params ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ çļĦ Params ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġcontent Edit Params : ĠLinearLayout . LayoutParams ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġactivity . content Edit . layout Params Ġas ĠLayout Params ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( width : ĠInt , Ġheight : ĠInt , Ġold Width : ĠInt , Ġold Height : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( width , Ġheight , Ġold Width , Ġold Height ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Keyboard Shown ( height , Ġold Height )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Gif Layout Need To Scroll ( height )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Layout For Keyboard Shown () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset Layout For Keyboard Hidden () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® å¸ĥå±Ģ å¤§å°ı çļĦ åıĺåĮĸ æĿ¥ åĪ¤æĸŃ éĶ® çĽĺ æĺ¯åĲ¦ å¼¹ åĩº ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Height ĊĠĠĠĠ Ġ* Ġ å¸ĥå±Ģ å¤§å°ı åıĺåĮĸ åĲİ æĸ°çļĦ é«ĺåº¦ ĊĠĠĠĠ Ġ* Ġ@ param Ġold Height ĊĠĠĠĠ Ġ* Ġ å¸ĥå±Ģ å¤§å°ı åıĺåĮĸ åĲİ åİŁ æĿ¥çļĦ é«ĺåº¦ ĊĠĠĠĠ Ġ* Ġ@ return Ġ éĶ® çĽĺ å¼¹ åĩº è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis Keyboard Shown ( new Height : ĠInt , Ġold Height : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Height Ġ< Ġold Height ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ å½ĵåīį çķĮ éĿ¢çļĦ åı¯ æĺ¾ç¤º åĮºåŁŁ çļĦ é«ĺåº¦ æĺ¯åĲ¦ éľĢè¦ģ æ»ļ åĬ¨ G IF åĽ¾çīĩ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġheight ĊĠĠĠĠ Ġ* Ġåı¯ æĺ¾ç¤º åĮºåŁŁ çļĦ å¤§å°ı ĊĠĠĠĠ Ġ* Ġ@ return ĠéľĢè¦ģ æ»ļ åĬ¨ G IF åĽ¾çīĩ è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis Gif Layout Need To Scroll ( height : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Height Ġ= Ġactivity . toolbar !!. height Ġ// Ġ å·¥åħ· æłı çļĦ é«ĺåº¦ ĊĠĠĠĠĠĠĠ Ġval Ġselected Gif Layout Height Ġ= Ġactivity . override Height Ġ// ĠGIF å¸ĥå±Ģ çļĦ é«ĺåº¦ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Edit Height Ġ= Ġdp 2 px ( 5 5 f ) Ġ// Ġ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ åľ¨ éĶ® çĽĺ å¼¹ åĩº æĹ¶çļĦ é»ĺè®¤ é«ĺåº¦ ĊĠĠĠĠĠĠĠ Ġval Ġneed Height Ġ= Ġtoolbar Height Ġ+ Ġselected Gif Layout Height Ġ+ Ġcontent Edit Height ĊĠĠĠĠĠĠĠ Ġreturn Ġheight Ġ< Ġneed Height ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå½ĵ éĶ® çĽĺ å¼¹ åĩº æĹ¶ ï¼Į éĩį ç½® G IF å¸ĥå±Ģ åĴĮ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ çļĦ å¸ĥå±Ģ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreset Layout For Keyboard Shown () Ġ{ ĊĠĠĠĠĠĠĠ ĠG if Fun . get Handler (). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Edit Params Ġ= Ġcontent Edit Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Gif LayoutParams Ġ= Ġselected Gif LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Edit Params . height Ġ= ĠLinearLayout . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Edit Params . weight Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĶ® çĽĺ å¼¹ åĩº æĹ¶ ï¼Į éĻĲ å®ļ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ çļĦ æľĢå¤§ è¡Į æķ° æĺ¯ 2 ï¼Į åĲ¦åĪĻ ä¼ļ åĩºçİ° æĸĩåŃĹ è¦ĨçĽĸ åĽ¾çīĩ çļĦ æĥħåĨµ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . content Edit . max Lines Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Gif LayoutParams . height Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Gif LayoutParams . weight Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸ºäºĨ äº§çĶŁ å¼¹ åĩº éĶ® çĽĺ å°Ĩ åĽ¾çīĩ åºķ ä¸Ĭ åİ» çļĦ æķĪæŀľ ï¼Į éľĢè¦ģ å°Ĩ G IF å¸ĥå±Ģ æ»ļ åĬ¨ åĪ° åºķ éĥ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Selected Gif Layout () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå½ĵ éĶ® çĽĺ éļĲèĹı æĹ¶ ï¼Į éĩį ç½® G IF å¸ĥå±Ģ åĴĮ åĨħå®¹ è¾ĵåħ¥ æ¡Ĩ çļĦ å¸ĥå±Ģ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġreset Layout For Keyboard Hidden () Ġ{ ĊĠĠĠĠĠĠĠ ĠG if Fun . get Handler (). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Edit Params Ġ= Ġcontent Edit Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Gif LayoutParams Ġ= Ġselected Gif LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Edit Params . height Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Edit Params . weight Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . content Edit . max Lines Ġ= ĠInteger . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Gif LayoutParams . weight Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Gif LayoutParams . height Ġ= Ġactivity . override Height ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ G IF å¸ĥå±Ģ æ»ļ åĬ¨ åĪ° åºķ éĥ¨ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġscroll Selected Gif Layout () Ġ{ ĊĠĠĠĠĠĠĠ ĠG if Fun . get Handler (). post Ġ{ Ġactivity . selected Gif Layout . full Scroll ( ScrollView . FOCUS _ DOWN ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ }