/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ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 . build . gradle . internal . test Ċ Ċ import Ġcom . android . build . gradle . internal . tasks . get A pk Files Ċ import Ġcom . android . build . gradle . internal . utils . to ImmutableList Ċ import Ġcom . android . build . gradle . internal . variant . Test Variant Data Ċ import Ġcom . android . builder . testing . TestData Ċ import Ġcom . android . builder . testing . api . Device Config Provider Ċ import Ġcom . android . ide . common . process . Process Executor Ċ import Ġcom . android . utils . I Logger Ċ import Ġcom . google . common . collect . ImmutableList Ċ import Ġorg . gradle . api . file . Directory Ċ import Ġorg . gradle . api . file . File Collection Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġ[ TestData ] Ġfor Ġtests Ġthat Ġrun Ġagainst Ċ Ġ* Ġthe Ġbundle ĠA PK s . Ċ Ġ* Ċ Ġ* ĠFor Ġthe Ġmoment , Ġthat Ġis Ġonly Ġdynamic Ġfeature Ġmodules . Ċ Ġ*/ Ċ class ĠBundle TestData Impl ( ĊĠĠĠ Ġprivate Ġval Ġtest Variant Data : ĠTest Variant Data , ĊĠĠĠ Ġtest A pk Dir : ĠProvider < Directory >, ĊĠĠĠ Ġprivate Ġval ĠmoduleName : ĠString ?, ĊĠĠĠ Ġprivate Ġval Ġapk Bundle : ĠFile Collection Ċ ) Ġ: ĠAbstract TestData Impl ( test Variant Data . variant Configuration , Ġtest A pk Dir , Ġnull ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġload From Metadata File ( metadata File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing , Ġthere Ġis Ġnothing Ġin Ġthe Ġmetadata Ġfile Ġwe Ġcannot Ġget Ġfrom Ġthe Ġtested Ġscope . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Application Id (): ĠString Ġ= Ġtest Variant Data . application Id ĊĊĠĠĠ Ġoverride Ġfun Ġget Tested Application Id (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġtest Variant Data . variant Configuration . tested Application Id ĊĊĠĠĠ Ġoverride Ġfun Ġis Library (): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtest Variant Data . tested Variant Data . variant Configuration . type . is A ar ĊĊĠĠĠ Ġoverride Ġfun Ġget Tested A pk s ( ĊĠĠĠĠĠĠĠ Ġprocess Executor : ĠProcess Executor , ĊĠĠĠĠĠĠĠ Ġsplit Select Exe : ĠFile ?, ĊĠĠĠĠĠĠĠ Ġdevice Config Provider : ĠDevice Config Provider , ĊĠĠĠĠĠĠĠ Ġlogger : ĠILogger ĊĠĠĠ Ġ): ĠImmutableList < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( moduleName Ġ!= Ġnull Ġ&& Ġdevice Config Provider . api Level Ġ< Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBundle Ġtool Ġf uses ĠA PK s Ġbelow Ġ 2 1 , Ġrequesting Ġa Ġmodule Ġwill Ġreturn Ġan Ġerror Ġeven Ġif Ġthat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmodule Ġis Ġf used . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ( https :// issue tracker . google . com / 1 1 9 6 6 3 2 4 7 ): ĠReturn Ġthe Ġf used ĠA PK Ġif Ġthe Ġrequested Ġmodule Ġwas Ġf used . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warning (" Testing Ġdynamic Ġfeatures Ġon Ġdevices ĠAPI Ġ< Ġ 2 1 Ġis Ġnot Ġcurrently Ġsupported .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠImmutableList . of < File >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġget A pk Files ( apk Bundle . single File . to Path (), Ġdevice Config Provider , ĠmoduleName ). map { it . to File ()}. to ImmutableList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Tested A pk s From Bundle (): ĠFile Collection ? Ġ= Ġapk Bundle Ċ } Ċ