/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 5 - 2 0 1 7 ĠJack sg ong ( blog . dream to be . cn ) Ċ Ġ* Ċ Ġ* Ġ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 . hu aw en . base library . views . keyboard . widget . f span el Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Window Ċ import Ġandroid . widget . Relative Layout Ċ Ċ import Ġcom . hu aw en . base library . views . keyboard . IF SP anel Conflict Layout Ċ import Ġcom . hu aw en . base library . views . keyboard . IP anel Height Target Ċ import Ġcom . hu aw en . base library . views . keyboard . handler . KP Switch F SP anel Layout Handler Ċ import Ġcom . hu aw en . base library . views . keyboard . util . K PS Keyboard Util Ċ import Ġcom . hu aw en . base library . views . keyboard . util . View Util Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠJack sg ong Ġon Ġ 3 / 3 1 / 1 6 . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠThe Ġpanel Ġcontainer Ġrelative Ġlayout Ġfor Ġfull - screen Ġtheme Ġwindow , Ġand Ġthis Ġlayout 's Ġheight Ġwould Ċ Ġ* Ġbe Ġalways Ġequal Ġto Ġthe Ġheight Ġof Ġthe Ġkeyboard . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠFor Ġnon - full - screen Ġtheme Ġwindow , Ġplease Ġuse Ġ[ KP Switch Panel Relative Layout ] Ġinstead . Ċ Ġ* Ċ Ġ* Ġ@ see ĠK PS Keyboard Util . attach Ċ Ġ* Ġ@ see Ġ. record Keyboard Status Ċ Ġ* Ġ@ see ĠK P Switch F SP anel Frame Layout Ċ Ġ* Ċ Ġ* Ġ@ see ĠK P Switch F SP anel LinearLayout Ċ Ġ*/ Ċ class ĠK P Switch F SP anel Relative Layout Ġ: ĠRelative Layout , ĠI Panel Height Target , ĠIF SP anel Conflict Layout Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġheight : ĠInt ?= 0 ĊĠĠĠĠĊĠĠĠ Ġprivate Ġvar Ġpanel Handler : ĠK P Switch F SP anel Layout Handler ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Res : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġpanel Handler Ġ= ĠK P Switch F SP anel Layout Handler ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh Height ( panel Height : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView Util . refresh Height ( this , Ġpanel Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Keyboard Showing ( show ing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpanel Handler ?. on Keyboard Showing ( show ing ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġrecord Keyboard Status ( window : ĠWindow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpanel Handler ?. record Keyboard Status ( window ) ĊĠĠĠ Ġ} Ċ } Ċ