package Ġcom . f phoenix cor ne ae . plugin Ċ Ċ import Ġcom . android . build . gradle . App Plugin Ċ import Ġcom . android . build . gradle . Base Extension Ċ import Ġcom . android . build . gradle . Library Extension Ċ import Ġcom . android . build . gradle . Library Plugin Ċ import Ġcom . android . build . gradle . internal . dsl . Base App Module Extension Ċ import Ġorg . gradle . api . Java Version Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . dsl . Dependency Handler Ċ import Ġorg . gradle . api . plugins . Plugin Container Ċ import Ġorg . gradle . kotlin . dsl . getBy Type Ċ import Ġorg . gradle . kotlin . dsl . with Type Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . K apt Extension Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Android Plugin Wrapper Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . get Kotlin Plugin Version Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ class ĠVersion Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġapi Ġ= Ġ" api " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġimplementation Ġ= Ġ" implementation " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġk apt Ġ= Ġ" k apt " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġtest Implementation Ġ= Ġ" test Implementation " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġandroid Test Implementation Ġ= Ġ" android Test Implementation " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . plugins . config ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlugin Container . config ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Plugin Added Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcom . android . application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApp Plugin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± æıĴä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . config Common Plugin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± Ġk apt Ġéħįç½® é¡¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type < K apt Extension >(). apply Common K apt ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± Ġandroid Ġéħįç½® é¡¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type < Base App Module Extension >(). apply App Common s ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± ä¾Ŀèµĸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . config App Dependencies () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcom . android . library ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLibrary Plugin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± æıĴä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . config Common Plugin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± Ġk apt Ġéħįç½® é¡¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type < K apt Extension >(). apply Common K apt ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± Ġandroid Ġéħįç½® é¡¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type < Library Extension >(). apply Library Common s ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¬ åħ± ä¾Ŀèµĸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . config Library Dependencies () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠKotlin Android Plugin Wrapper Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® Ġproject Ġbuild . gradle . k ts Ġä¸ŃçļĦ éħįç½® åĬ¨æĢģ è®¾ç½® Ġkotlin Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . get Kotlin Plugin Version (). also Ġ{ Ġkotlin Version Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¬ åħ± Ġplugin Ġæı Ĵ ä»¶ ä¾Ŀèµĸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠProject . config Common Plugin () Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply ( Deps . Plugin . kotlin Android ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply ( Deps . Plugin . kotlin K apt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġapp ĠModule Ġ åħ¬ åħ± ä¾Ŀèµĸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠProject . config App Dependencies () Ġ{ ĊĠĠĠĠĠĠĠ Ġdependencies . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar ", Ġ"*. aar ")) )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , ĠDep s . Kotlin . stdlib ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , ĠDep s . Android X . appcompat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠD Router ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , ĠDep s . D Router . api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Test Dependencies () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġlibrary ĠModule Ġ åħ¬ åħ± ä¾Ŀèµĸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠProject . config Library Dependencies () Ġ{ ĊĠĠĠĠĠĠĠ Ġdependencies . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( api , Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar ", Ġ"*. aar ")) )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , ĠDep s . Kotlin . stdlib ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠD Router ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( implementation , ĠDep s . D Router . api ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Test Dependencies () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġtest Ġ ä¾Ŀèµĸ éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠDependency Handler . config Test Dependencies () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( test Implementation , ĠDep s . Test . junit ) ĊĠĠĠĠĠĠĠ Ġadd ( android Test Implementation , ĠDep s . Test . junit Ext ) ĊĠĠĠĠĠĠĠ Ġadd ( android Test Implementation , ĠDep s . Test . runner ) ĊĠĠĠĠĠĠĠ Ġadd ( android Test Implementation , ĠDep s . Test . espress o ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġapp ĠModule Ġéħįç½® é¡¹ ï¼Į æŃ¤ å¤Ħ åĽºå®ļ äºĨ Ġapplication Id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠBase App Module Extension . apply App Common s ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Ġ= ĠDep s . Android . application Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuild Features Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapply Base Common s ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġlibrary ĠModule Ġéħįç½® é¡¹ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠLibrary Extension . apply Library Common s ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Features Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapply Base Common s ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¬ åħ± éľĢè¦ģ æ·»åĬł çļĦ è®¾ç½® ï¼Į å¦Ĥ Ġsdk Ġ çĽ®æłĩ çīĪæľ¬ ï¼Į jdk Ġ çīĪæľ¬ ï¼Į jvm Ġ çĽ®æłĩ çīĪæľ¬ çŃī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠBase Extension . apply Base Common s ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Sdk Version ( Deps . Android . compile Sdk Version ) ĊĠĠĠĠĠĠĠ Ġbuild Tools Version ( Deps . Android . build Tools Version ) ĊĊĠĠĠĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Ġ= ĠDep s . Android . min Sdk Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= ĠDep s . Android . target Sdk Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Code Ġ= ĠDep s . Android . version Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Ġ= ĠDep s . Android . version Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= ĠDep s . Test . android JUnit Runner ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName ( Deps . Build Type . Release ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæī§è¡Į pro guard æ·· æ· Ĩ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç§»éĻ¤ æĹł çĶ¨çļĦ resource æĸĩä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName ( Deps . Build Type . Debug ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæī§è¡Į pro guard æ·· æ· Ĩ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç§»éĻ¤ æĹł çĶ¨çļĦ resource æĸĩä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Ġ= Ġget ByName (" main ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain . java . src Dirs (" src / main / kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain . jni Lib s . src Dirs (" src / main / jni Lib s ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type < Kotlin Compile > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= ĠJava Version . VERSION _ 1 1 . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlint Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Check Dependencies Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Check Release Build s Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Abort OnError Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġk apt Ġéħįç½® é¡¹ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠK apt Extension . apply Common K apt ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }