/* Ċ Ġ* Ġ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 . np w . module . recipes . dynamic Feature Module Ċ Ċ import Ġcom . android . tools . idea . np w . dynamic app . Device Feature Kind Ċ import Ġcom . android . tools . idea . np w . dynamic app . Device Feature Model Ċ import Ġcom . android . tools . idea . np w . dynamic app . Download Install Kind Ċ Ċ fun Ġandroid Manifest Xml ( ĊĠ Ġdynamic Feature F using : ĠString , ĊĠ Ġis Instant Module : ĠBoolean , ĊĠ ĠpackageName : ĠString , ĊĠ Ġproject Simple Name : ĠString , ĊĠ Ġdownload Install Kind : ĠDownload Install Kind , ĊĠ Ġdevice Features : ĠCollection < Device Feature Model > Ċ ): ĠString Ġ{ ĊĊĠ Ġval Ġdelivery Block Ġ= Ġwhen ( download Install Kind ) Ġ{ ĊĠĠĠ ĠDownload Install Kind . INCLUDE _ AT _ INSTALL _ TIME Ġ-> Ġ"< dist : install - time Ġ/> " ĊĠĠĠ ĠDownload Install Kind . INCLUDE _ AT _ INSTALL _ TIME _ WITH _ CONDITION S Ġ-> Ġ{ ĊĠĠĠĠĠ Ġval Ġdevice Features Block Ġ= Ġdevice Features . join ToString ("\ n ") Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it . device Feature Type . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠDevice Feature Kind . NAME Ġ-> Ċ """ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< dist : device - feature Ġdist : name ="${ it . device Feature Value }" Ġ/> """ ĊĠĠĠĠĠĠĠĠĠ ĠDevice Feature Kind . GL _ ES _ VERSION Ġ-> Ċ """ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< dist : device - feature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdist : name =" android . hardware . openg les . version " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdist : version ="${ it . device Feature Value }" Ġ/> """ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ""" < dist : install - time > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< dist : conditions > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠTo Ġinclude Ġor Ġexclude Ġthis Ġmodule Ġby Ġuser Ġcountries , Ġuncomment Ġand Ġupdate Ġthis Ġsection . Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠLearn Ġmore Ġ@ Ġ[ https :// d . android . com / r / studio - ui / dynamic - delivery / conditional - delivery ] Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠĠ Ġ< dist : user - countries Ġdist : exclude =" false "> Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠĠĠĠ Ġ< dist : country Ġdist : code =" US " Ġ/> Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠĠ Ġ</ dist : user - countries > Ġ--> Ċ $ device Features Block ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ dist : conditions > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ dist : install - time > """ ĊĠĠĠ Ġ} ĊĠĠĠ ĠDownload Install Kind . ON _ DE M AND _ ONLY Ġ-> Ġ"< dist : on - demand Ġ/> " ĊĠ Ġ} ĊĊĠ Ġreturn Ġ""" Ċ <? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> Ċ < manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠ Ġxmlns : dist =" http :// schemas . android . com / apk / distribution " ĊĠĠĠ Ġpackage ="${ packageName }"> ĊĊĠĠĠ Ġ< dist : module ĊĠĠĠĠĠĠĠ Ġdist : instant ="${ is Instant Module }" ĊĠĠĠĠĠĠĠ Ġdist : title ="@ string / title _${ project Simple Name }"> ĊĠĠĠĠĠĠĠ Ġ< dist : delivery > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ delivery Block ĊĠĠĠĠĠĠĠ Ġ</ dist : delivery > ĊĠĠĠĠĠĠĠ Ġ< dist : f using Ġdist : include ="${ dynamic Feature F using }" Ġ/> ĊĠĠĠ Ġ</ dist : module > Ċ </ manifest > Ċ """ Ċ } Ċ