package Ġkr . co . find a . android template . feature . create Find a Template . dialog Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġkr . co . find a . android template . type . Plugin Error Ċ import Ġkr . co . find a . android template . util . File Helper Ċ import Ġkr . co . find a . android template . util . Replacement s Ċ import Ġkr . co . find a . android template . ext . de capitalize With Under Bar Ċ import Ġkr . co . find a . android template . type . File Extension Ċ import Ġkr . co . find a . android template . type . Screen Type Ċ Ċ class ĠCreate Find a Template Dialog Presenter ( ĊĠĠĠ Ġprivate Ġval Ġview : ĠCreate Find a Template Dialog Contract . View , ĊĠĠĠ Ġprivate Ġval Ġfile Helper : ĠFile Helper Ċ ) Ġ: ĠCreate Find a Template Dialog Contract . Presenter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Find a Template ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġscreen Type : ĠScreen Type , ĊĠĠĠĠĠĠĠ Ġselected Directory : ĠVirtual File ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Conflict ed FileName ( name , Ġscreen Type , Ġselected Directory . path )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Conflict Name Dialog ( project , ĠPlugin Error . FT 1 0 3 , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġfile Helper . get PackageName By Path ( selected Directory . path ) ĊĠĠĠĠĠĠĠ Ġcreate Ui Code File ( name , ĠpackageName , Ġscreen Type , Ġselected Directory ) ĊĠĠĠĠĠĠĠ Ġcreate ViewModel File ( name , ĠpackageName , Ġselected Directory ) ĊĠĠĠĠĠĠĠ Ġcreate Layout File ( project , Ġname , ĠpackageName , Ġscreen Type , Ġselected Directory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Conflict ed FileName ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġscreen Type : ĠScreen Type , ĊĠĠĠĠĠĠĠ Ġselected DirectoryPath : ĠString ĊĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Same Code File Exist Ġ= Ġfile Helper . isFile Exist With Path ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ selected DirectoryPath }/${ name }${ screen Type . name }. kt " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġis Same ViewModel File Exist Ġ= Ġfile Helper . isFile Exist With Path ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ selected DirectoryPath }/${ name } ViewModel . kt " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Same Code File Exist Ġ-> Ġ"${ name }${ screen Type . name }. kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Same ViewModel File Exist Ġ-> Ġ"${ name } ViewModel . kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Ui Code File ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ ĠpackageName : ĠString , ĊĠĠĠĠĠĠĠ Ġscreen Type : ĠScreen Type , ĊĠĠĠĠĠĠĠ Ġselected Directory : ĠVirtual File ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Name Ġ= Ġ"${ screen Type . name } Template " ĊĊĠĠĠĠĠĠĠ Ġfile Helper . create File With Template ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Directory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ name }${ screen Type . name }", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Extension . Kotlin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe placement s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName Ġ= ĠpackageName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Name Ġ= Ġget Layout Name ( screen Type , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate ViewModel File ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ ĠpackageName : ĠString , ĊĠĠĠĠĠĠĠ Ġselected Directory : ĠVirtual File ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Name Ġ= Ġ" ViewModel Template " ĊĊĠĠĠĠĠĠĠ Ġfile Helper . create File With Template ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Directory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ name } ViewModel ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Extension . Kotlin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe placement s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName Ġ= ĠpackageName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Layout File ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ ĠpackageName : ĠString , ĊĠĠĠĠĠĠĠ Ġscreen Type : ĠScreen Type , ĊĠĠĠĠĠĠĠ Ġselected Directory : ĠVirtual File ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Name Ġ= Ġget Layout Name ( screen Type , Ġname ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Directory Ġ= Ġfile Helper . get Layout Directory ( selected Directory . path ) ĊĠĠĠĠĠĠĠ Ġif Ġ( layout Directory Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Error Dialog ( project , ĠPlugin Error . FT 1 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtemplate Name Ġ= Ġ" Layout Template " ĊĊĠĠĠĠĠĠĠ Ġfile Helper . create File With Template ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Directory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Extension . XML , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe placement s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Package Ġ= Ġ"${ packageName }.${ name } ViewModel " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Layout Name ( ĊĠĠĠĠĠĠĠ Ġscreen Type : ĠScreen Type , ĊĠĠĠĠĠĠĠ Ġname : ĠString ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ screen Type . name . de capitalize ()} _${ name . de capitalize With Under Bar () }" ĊĠĠĠ Ġ} Ċ }