/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ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 . gradle . structure . configur ables . android . modules Ċ Ċ import Ġcom . android . ide . common . repository . Gradle Version Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . Base Perspective Configurable Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . Ps Context Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . create Tree Model Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . Properties Ui Model Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . list Property Editor Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . map Property Editor Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . modules . Module Panel Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . simple Property Editor Ċ import Ġcom . android . tools . idea . gradle . structure . configur ables . ui . ui Property Ċ import Ġcom . android . tools . idea . gradle . structure . model . Ps Module Type Ċ import Ġcom . android . tools . idea . gradle . structure . model . android . Android Module Descriptors Ċ import Ġcom . android . tools . idea . gradle . structure . model . android . Ps Android Module Ċ import Ġcom . android . tools . idea . gradle . structure . model . android . Ps Android Module Default Config Descriptors Ċ import Ġcom . android . tools . idea . gradle . structure . model . meta . maybe Value Ċ import Ġcom . google . wire less . android . sdk . stats . PS DE vent Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . util . Dis poser Ċ Ċ class ĠAndroid Module Root Configurable ( ĊĠ Ġcontext : ĠP s Context , ĊĠ Ġperspective Configurable : ĠBase Perspective Configurable , ĊĠ Ġmodule : ĠP s Android Module Ċ ) Ġ: ĠAbstract Module Configurable < Ps Android Module , ĠModule Panel >( context , Ġperspective Configurable , Ġmodule ), ĠDis posable Ġ{ ĊĊĠ Ġprivate Ġval Ġsigning Configs Model Ġ= Ġcreate Tree Model ( Signing Configs Configurable ( module , Ġcontext ). also Ġ{ ĠDis poser . register ( this , Ġit ) Ġ}) ĊĊĠ Ġoverride Ġfun ĠgetId () Ġ= Ġ" android . ps d . modules ." Ġ+ ĠdisplayName ĊĠ Ġoverride Ġfun Ġcreate Panel () Ġ= ĊĠĠĠĠĠ ĠModule Panel ( context , Ġmodule , Ġsigning Configs Model ) ĊĠ Ġoverride Ġfun Ġdispose () Ġ= ĠUnit Ċ } Ċ Ċ // ĠTODO ( b / 1 4 2 0 9 9 7 5 2 ): Ġthis Ġcould Ġbe Ġa Ġgeneral Ġmechanism Ġattached Ġto Ġthe Ġdescriptors Ċ private Ġfun Ġdependencies Info Present ( context : ĠP s Context , Ġmodule : ĠP s Android Module ) Ġ= ĊĠ Ġmodule . project Type Ġ== ĠP s Module Type . ANDROID _ APP Ġ&& ĊĠ Ġcontext . project . android Gradle Plugin Version . maybe Value ĊĠĠĠ Ġ? . let Ġ{ ĠGradle Version . try Parse ( it ) Ġ} ?. is At Least In cluding Pre views ( 4 , Ġ 0 , Ġ 0 ) Ġ?: Ġfalse Ċ Ċ fun Ġandroid Module Properties Model ( context : ĠP s Context , Ġmodule : ĠP s Android Module ) Ġ= ĊĠ ĠProperties Ui Model ( ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . compile Sdk Version , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULE _ PROPERTIES _ COMPILE _ SDK _ VERSION ), ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . build Tools Version , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULE _ PROPERTIES _ BUILD _ TO LS _ VERSION ), ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . nd k Version , Ġ:: simple Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . source Compatibility , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULE _ PROPERTIES _ SOURCE _ COMPAT IBILITY ), ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . target Compatibility , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULE _ PROPERTIES _ TARGET _ COMPAT IBILITY ) ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 4 2 0 9 9 7 5 2 ): ĠPro per ly Ġconfigure Ġcondition Ġwhen Ġit Ġis Ġavailable Ġand Ġenable . ĊĠĠĠĠĠ Ġ/* , ĊĠĠĠĠĠ Ġui Property ( Android Module Descriptors . view Binding Enabled , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) */ ĊĠĠĠ Ġ) Ġ+ Ġwhen Ġ( dependencies Info Present ( context , Ġmodule )) Ġ{ ĊĠĠĠĠĠ Ġtrue Ġ-> ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġui Property ( Android Module Descriptors . include Dependencies Info In A pk , Ġ:: simple Property Editor , Ġnull ), ĊĠĠĠĠĠĠĠ Ġui Property ( Android Module Descriptors . include Dependencies Info In Bundle , Ġ:: simple Property Editor , Ġnull )) ĊĠĠĠĠĠ Ġfalse Ġ-> ĠlistOf () ĊĠĠĠ Ġ} ĊĠ Ġ) ĊĊ Ċ fun Ġdefault Config Properties Model ( is Library : ĠBoolean ) Ġ= ĊĠ ĠProperties Ui Model ( ĊĠĠĠ ĠlistOf NotNull ( ĊĠĠĠĠĠ Ġif Ġ(! is Library ) Ġui Property ( Ps Android Module Default Config Descriptors . application Id , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ APPLICATION _ ID ) ĊĠĠĠĠĠ Ġelse Ġnull , ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġif Ġ(! is Library ) Ġui Property ( Ps Android Module Default Config Descriptors . application Id Suffix , Ġ:: simple Property Editor , Ġnull ) Ġelse Ġnull , ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . version Code , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ VERSION _ CODE ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . version Name , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ VERSION _ NAME ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . version Name Suffix , Ġ:: simple Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . target Sdk Version , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ TARGET _ SDK _ VERSION ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . min Sdk Version , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ MIN _ SDK _ VERSION ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . signing Config , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ SIGN ING _ CONFIG ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġif Ġ( is Library ) Ġui Property ( Ps Android Module Default Config Descriptors . consumer Pro Guard Files , Ġ:: list Property Editor , Ġnull ) Ġelse Ġnull , ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . pro Guard Files , Ġ:: list Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ PRO GU ARD _ FILES ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . manifest Place holders , Ġ:: map Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ MAN IFEST _ PLACE HOLDER S ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . multi Dex Enabled , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ MULTI _ DEX _ ENABLED ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . res Configs , Ġ:: list Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . test Instrumentation Runner , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ TEST _ INSTR UMENT ATION _ RUN NER _ CLASS _ NAME ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . test Instrumentation Runner Arguments , Ġ:: map Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . test Functional Test , Ġ:: simple Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġ// ĠTODO ( b / 1 2 3 0 1 3 4 6 6 ): Ġ[ New ĠP SD ] ĠAnalytics Ġfor Ġnew ĠP SD Ġmissing Ġfields . ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . test Handle Profiling , Ġ:: simple Property Editor , Ġnull ), ĊĠĠĠĠĠ Ġui Property ( Ps Android Module Default Config Descriptors . test Application Id , Ġ:: simple Property Editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPS DE vent . P SD Field . PROJECT _ STRUCTURE _ DIALOG _ FIELD _ MODULES _ DEFAULT CONFIG _ TEST _ APPLICATION _ ID ))) Ċ