/* Ċ Ġ* Ġ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 . wizard . template . impl . activities . primary Detail Flow . src . app _ package Ċ Ċ import Ġcom . android . tools . idea . wizard . template . Language Ċ import Ġcom . android . tools . idea . wizard . template . get Material Component Name Ċ import Ġcom . android . tools . idea . wizard . template . escape Kotlin Identifier Ċ import Ġcom . android . tools . idea . wizard . template . impl . activities . common . findViewById Ċ import Ġcom . android . tools . idea . wizard . template . impl . activities . common . import View Binding Class Ċ import Ġcom . android . tools . idea . wizard . template . impl . activities . common . layout To View Binding Class Ċ import Ġcom . android . tools . idea . wizard . template . render If Ċ Ċ fun Ġcontent Detail Fragment Kt ( ĊĠ Ġcollection Name : ĠString , ĊĠ Ġdetail Name : ĠString , ĊĠ Ġapplication Package : ĠString ?, ĊĠ Ġdetail Name Layout : ĠString , ĊĠ Ġobject Kind : ĠString , ĊĠ ĠpackageName : ĠString , ĊĠ Ġuse Android X : ĠBoolean , ĊĠ Ġis View Binding Supported : ĠBoolean Ċ ): ĠString Ġ{ ĊĠ Ġval Ġlayout Name Ġ= Ġ" fragment _${ detail Name Layout }" ĊĠ Ġval ĠonCreate View Block Ġ= Ġif Ġ( is View Binding Supported ) Ġ""" ĊĠĠĠĠĠ Ġ_ binding Ġ= Ġ${ layout To View Binding Class ( layout Name )}. inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠ Ġval Ġroot View Ġ= Ġbinding . root ĊĠ Ġ""" Ġelse Ġ" val Ġroot View Ġ= Ġinflater . inflate ( R . layout .$ layout Name , Ġcontainer , Ġfalse )" ĊĊĠ Ġreturn Ġ""" Ċ package Ġ${ escape Kotlin Identifier ( packageName )} Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Drag Event Ċ import Ġ${ get Material Component Name (" android . support . v 4 . app . Fragment ", Ġuse Android X )} Ċ import Ġ${ get Material Component Name (" android . support . design . widget . Col lap sing Toolbar Layout ", Ġtrue )} Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ ${ render If ( application Package Ġ!= Ġnull ) Ġ{ Ġ" import Ġ${ application Package }. R " Ġ}} Ċ import Ġ${ packageName }. placeholder . Placeholder Content Ċ ${ import View Binding Class ( is View Binding Supported , ĠpackageName , Ġlayout Name , ĠLanguage . Kotlin )} Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġsingle Ġ$ object Kind Ġdetail Ġscreen . Ċ Ġ* ĠThis Ġfragment Ġis Ġeither Ġcontained Ġin Ġa Ġ[ ${ collection Name } Fragment ] Ċ Ġ* Ġin Ġtwo - pane Ġmode Ġ( on Ġlarger Ġscreen Ġdevices ) Ġor Ġself - contained Ċ Ġ* Ġon Ġhand sets . Ċ Ġ*/ Ċ class Ġ${ detail Name } Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġplaceholder Ġcontent Ġthis Ġfragment Ġis Ġpresent ing . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġitem : ĠPlace holder Content . Placeholder Item ? Ġ= Ġnull ĊĊĠĠĠ Ġlateinit Ġvar Ġitem Detail TextView : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġtoolbar Layout : ĠCol lap sing Toolbar Layout ? Ġ= Ġnull Ċ Ċ ${ render If ( is View Binding Supported ) Ġ{ """ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : Ġ${ layout To View Binding Class ( layout Name )} ? Ġ= Ġnull ĊĠĠĠ Ġ// ĠThis Ġproperty Ġis Ġonly Ġvalid Ġbetween ĠonCreate View Ġand ĊĠĠĠ Ġ// Ġon Destroy View . ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! Ċ """ }} ĊĊĠĠĠ Ġprivate Ġval Ġdrag Listener Ġ= ĠView . On Drag Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠDrag Event . ACTION _ DROP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Data Item : ĠClip Data . Item Ġ= Ġevent . clip Data . getItem At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrag Data Ġ= Ġclip Data Item . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= ĠPlace holder Content . ITEM _ MAP [ drag Data ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Content () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . containsKey ( ARG _ ITEM _ ID )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLoad Ġthe Ġplaceholder Ġcontent Ġspecified Ġby Ġthe Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġarguments . ĠIn Ġa Ġreal - world Ġscenario , Ġuse Ġa ĠLoader ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġto Ġload Ġcontent Ġfrom Ġa Ġcontent Ġprovider . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= ĠPlace holder Content . ITEM _ MAP [ it . getString ( ARG _ ITEM _ ID )] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ$ onCreate View Block ĊĊĠĠĠĠĠĠĠ Ġtoolbar Layout Ġ= Ġ${ findViewById ( ĊĠĠĠĠĠĠĠĠĠĠ ĠLanguage . Kotlin , ĊĠĠĠĠĠĠĠĠĠĠ Ġis View Binding Supported Ġ= Ġis View Binding Supported , ĊĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" toolbar _ layout ", ĊĠĠĠĠĠĠĠĠĠĠ Ġparent View Ġ= Ġ" root View ", ĊĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġ" Col lap sing Toolbar Layout ")} ĊĠĠĠĠĠĠĠ Ġitem Detail TextView Ġ= Ġ${ findViewById ( ĊĠĠĠĠĠĠĠĠĠ ĠLanguage . Kotlin , ĊĠĠĠĠĠĠĠĠĠ Ġis View Binding Supported Ġ= Ġis View Binding Supported , ĊĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġdetail Name Layout , ĊĠĠĠĠĠĠĠĠĠ Ġparent View Ġ= Ġ" root View ")} ĊĊĠĠĠĠĠĠĠ Ġupdate Content () ĊĠĠĠĠĠĠĠ Ġroot View . setOn Drag Listener ( drag Listener ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar Layout ?. title Ġ= Ġitem ?. content ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġthe Ġplaceholder Ġcontent Ġas Ġtext Ġin Ġa ĠTextView . ĊĠĠĠĠĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Detail TextView . text Ġ= Ġit . details ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġfragment Ġargument Ġrepresenting Ġthe Ġitem ĠID Ġthat Ġthis Ġfragment ĊĠĠĠĠĠĠĠĠ Ġ* Ġrepresents . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ ITEM _ ID Ġ= Ġ" item _ id " ĊĠĠĠ Ġ} Ċ Ċ ${ render If ( is View Binding Supported ) Ġ{ """ ĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ """ }} Ċ } Ċ """ Ċ } Ċ