/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 . android . tools . idea . ui builder . handlers . ui Ċ Ċ import Ġcom . android . Sdk Constants . CLASS _ APP _ BAR _ LAYOUT Ċ import Ġcom . android . Sdk Constants . CLASS _ COLL AP SING _ TOOL BAR _ LAYOUT Ċ import Ġcom . android . Sdk Constants . CLASS _ COORD IN ATOR _ LAYOUT Ċ import Ġcom . android . Sdk Constants . CLASS _ FLOAT ING _ ACTION _ BUTTON Ċ import Ġcom . android . Sdk Constants . CLASS _ NE ST ED _ SCROLL _ VIEW Ċ import Ġcom . android . Sdk Constants . CLASS _ TAB _ ITEM Ċ import Ġcom . android . Sdk Constants . CLASS _ TAB _ LAYOUT Ċ import Ġcom . android . Sdk Constants . CLASS _ TOOL BAR _ V 7 Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . android . refactor ing . getName In Project Ċ Ċ fun Ġformat Namespaces ( namespaces : ĠMap < String , ĠString >): ĠString Ġ{ ĊĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠ Ġfor Ġ( ns Ġin Ġnamespaces . keys ) Ġ{ ĊĠĠĠ Ġval Ġprefix Ġ= Ġnamespaces [ ns ] ĊĠĠĠ Ġresult . append (" ĠĠĠ Ġxmlns :$ prefix =\" $ ns \"\ n ") ĊĠ Ġ} ĊĠ Ġreturn Ġresult . toString () Ċ } Ċ Ċ object ĠTemplates Ġ{ ĊĠ Ġ// ĠTODO : ĠRemove Ġthe Ġhardcoded ĠApp Bar Ġheight Ġ( 1 9 2 dp ) Ġand ĠID Ġ( app bar ). ĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget Coordinator Layout ( project : ĠProject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Prefix : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Prefix : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace Declarations : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfits System Windows : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Flags : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Interpolator : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Image : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbehaviour Overlap Top : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Y Position : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Content As Xml : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< ${ CLASS _ COORD IN ATOR _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠ Ġ$ namespace Declarations ĊĠĠĠĠĠ Ġ$ fits System Windows ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent "> ĊĠĠĠĠĠ Ġ< ${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : id ="@ + id / app bar " ĊĠĠĠĠĠĠĠĠĠ Ġ$ fits System Windows ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" 1 9 2 dp " ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent "> ĊĠĠĠĠĠĠĠ Ġ< ${ CLASS _ COLL AP SING _ TOOL BAR _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : toolbar Id ="@ + id / toolbar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : layout _ scroll Flags ="$ scroll Flags " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ scroll Interpolator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : content S cri m =" ? attr / color Primary "> ĊĠĠĠĠĠĠĠĠĠ Ġ$ background Image ĊĊĠĠĠĠĠĠĠĠĠ Ġ< ${ CLASS _ TOOL BAR _ V 7 . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : id ="@ + id / toolbar " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" ? attr / action Bar Size " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent "> ĊĠĠĠĠĠĠĠĠĠ Ġ</ ${ CLASS _ TOOL BAR _ V 7 . getName In Project ( project )}> ĊĠĠĠĠĠĠĠ Ġ</ ${ CLASS _ COLL AP SING _ TOOL BAR _ LAYOUT . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ</ ${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ< ${ CLASS _ NE ST ED _ SCROLL _ VIEW . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent " ĊĠĠĠĠĠĠĠĠĠ Ġ$ be haviour Overlap Top ĊĠĠĠĠĠĠĠĠĠ Ġ$ scroll Y Position ĊĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : layout _ behavior ="${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )} ${ "$ "} Scrolling View Behavior "> ĊĠĠĠĠĠĠĠĠĠ Ġ$ page Content As Xml ĊĊĠĠĠĠĠ Ġ</ ${ CLASS _ NE ST ED _ SCROLL _ VIEW . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ$ fab ĊĊĠĠĠ Ġ</ ${ CLASS _ COORD IN ATOR _ LAYOUT . getName In Project ( project )}> ĊĠ Ġ""" . trim Indent () ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget Coordinator Layout With Tabs ( project : ĠProject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Prefix : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Prefix : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace Declarations : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Flags : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Items : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Y Position : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Content As Xml : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< ${ CLASS _ COORD IN ATOR _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠ Ġ$ namespace Declarations ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent "> ĊĠĠĠĠĠ Ġ< ${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : id ="@ + id / app bar " ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" wrap _ content " ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent "> ĊĠĠĠĠĠĠĠ Ġ< ${ CLASS _ TOOL BAR _ V 7 . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" ? attr / action Bar Size " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : layout _ scroll Flags =" scroll | enter Always "> ĊĠĠĠĠĠĠĠ Ġ</ ${ CLASS _ TOOL BAR _ V 7 . getName In Project ( project )}> ĊĠĠĠĠĠĠĠ Ġ< ${ CLASS _ TAB _ LAYOUT . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : id ="@ + id / tabs " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" wrap _ content " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ scroll Flags ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : tab Mode =" scroll able "> ĊĠĠĠĠĠĠĠ Ġ$ tab Items ĊĠĠĠĠĠĠĠ Ġ</ ${ CLASS _ TAB _ LAYOUT . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ</ ${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ< ${ CLASS _ NE ST ED _ SCROLL _ VIEW . getName In Project ( project )} ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent " ĊĠĠĠĠĠĠĠĠĠ Ġ$ scroll Y Position ĊĠĠĠĠĠĠĠĠĠ Ġ$ auto Prefix : layout _ behavior ="${ CLASS _ APP _ BAR _ LAYOUT . getName In Project ( project )} ${ '$ '} Scrolling View Behavior "> ĊĠĠĠĠĠĠĠ Ġ$ page Content As Xml ĊĠĠĠĠĠ Ġ</ ${ CLASS _ NE ST ED _ SCROLL _ VIEW . getName In Project ( project )}> ĊĠĠĠĠĠ Ġ$ fab ĊĠĠĠ Ġ</ ${ CLASS _ COORD IN ATOR _ LAYOUT . getName In Project ( project )}> ĊĠ Ġ""" . trim Indent () ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget Tag Floating ActionButton ( project : ĠProject , Ġandroid Prefix : ĠString , Ġimage Src : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< ${ CLASS _ FLOAT ING _ ACTION _ BUTTON . getName In Project ( project )} ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" wrap _ content " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" wrap _ content " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : src ="$ image Src " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ gravity =" bottom | end " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ margin =" 1 6 dp "/> " ĊĠĠĠ Ġ""" . trim Indent () ĊĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget ImageView ( android Prefix : ĠString , Ġcollapse Mode : ĠString , Ġimage Src : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< ImageView ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : id ="@ + id / app _ bar _ image " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent " ĊĠĠĠĠĠĠĠ Ġ$ collapse Mode ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : src ="$ image Src " ĊĠĠĠĠĠĠĠ Ġ$ android Prefix : scale Type =" center Crop "/> ĊĠ Ġ""" . trim Indent () ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget Tab Item ( project : ĠProject , Ġandroid Prefix : ĠString , Ġtext Attribute : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< ${ CLASS _ TAB _ ITEM . getName In Project ( project )} ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" wrap _ content " ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" wrap _ content " ĊĠĠĠĠĠ Ġ$ android Prefix : text ="$ text Attribute "/> ĊĠ Ġ""" . trim Indent () ĊĊĠ Ġ@ Jvm Static ĊĠ Ġfun Ġget TextView ( android Prefix : ĠString , Ġtext : ĠString ) Ġ= Ġ""" ĊĠĠĠ Ġ< TextView ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ height =" match _ parent " ĊĠĠĠĠĠ Ġ$ android Prefix : layout _ width =" wrap _ content " ĊĠĠĠĠĠ Ġ$ android Prefix : text ="$ text " ĊĠĠĠĠĠ Ġ$ android Prefix : padding =" 1 6 dp "/> ĊĠĠĠ Ġ""" . trim Indent () Ċ } ĊĊ