/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġ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 . project . upgrade Ċ Ċ import Ġcom . android . ide . common . repository . Gradle Version Ċ import Ġcom . android . tools . idea . gradle . dsl . api . Gradle Build Model Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model Ċ import Ġcom . android . tools . idea . gradle . dsl . api . util . De letable Psi Element Holder Ċ import Ġcom . android . tools . idea . gradle . project . upgrade . Ag p Upgrade Component Ne cess ity . IR RE LE V ANT _ P AST Ċ import Ġcom . android . tools . idea . gradle . project . upgrade . Ag p Upgrade Component Ne cess ity . M AND AT ORY _ INDEP END ENT Ċ import Ġcom . android . tools . idea . gradle . project . upgrade . Ag p Upgrade Component Ne cess ity . OPTIONAL _ INDEP END ENT Ċ import Ġcom . google . wire less . android . sdk . stats . Upgrade Assistant Component Info Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . refactor ing . ui . Usage View Descriptor Adapter Ċ import Ġcom . intellij . usage View . Usage Info Ċ import Ġcom . intellij . usage View . Usage View Descriptor Ċ import Ġcom . intellij . us ages . impl . rules . Usage Type Ċ import Ġorg . jetbrains . android . util . Android Bundle Ċ Ċ class ĠRemove Implementation Properties Ref actor ing Processor : ĠA gp Upgrade Component Ref actor ing Processor Ġ{ ĊĠ Ġconstructor ( project : ĠProject , Ġcurrent : ĠGradle Version , Ġnew : ĠGradle Version ): Ġsuper ( project , Ġcurrent , Ġnew ) ĊĠ Ġconstructor ( processor : ĠA gp Upgrade Ref actor ing Processor ): Ġsuper ( processor ) ĊĊĠ Ġ// ĠThis Ġcannot Ġbe Ġexpressed Ġas Ġa Ġpoint Ġor Ġregion Ġnecess ity , Ġbecause Ġalthough Ġthe Ġimplementation Ġclasses Ġbacking Ġthese Ġproperties ĊĠ Ġ// Ġis Ġscheduled Ġto Ġbe Ġaltered Ġonly Ġfor ĠA GP Ġ 8 . 0 . 0 , Ġand Ġso Ġfor ĠGro ovy Ġbuild Ġfiles Ġremoving Ġthe Ġproperties Ġis Ġoptional Ġuntil Ġthen , ĊĠ Ġ// Ġthe Ġinterface Ġdefinitions Ġhave Ġalready Ġbeen Ġremoved , Ġso Ġit Ġis Ġnecessary Ġfor ĠKotlin Script Ġbuild Ġfiles Ġin Ġthe Ġ 7 . 0 . 0 - alpha Ġseries . ĊĠ Ġ// ĠWe Ġcannot Ġmake Ġit Ġrequired Ġby Ġ 7 . 0 . 0 - alpha , Ġthough , Ġbecause Ġusers Ġmight Ġmist aken ly Ġinclude Ġthose Ġproperties Ġin ĠGro ovy Ġfiles Ġwithout ĊĠ Ġ// Ġreceiving Ġerrors Ġor Ġeven Ġdeprecation Ġnotices Ġduring Ġthe Ġ 7 . x Ġseries . ĊĠ Ġoverride Ġfun Ġnecess ity (): ĠA gp Upgrade Component Ne cess ity Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġnew Ġ< ĠGradle Version . parse (" 7 . 0 . 0 - alpha 1 3 ") Ġ-> ĠOPTIONAL _ INDEP END ENT ĊĠĠĠ Ġcurrent Ġ> ĠGradle Version . parse (" 8 . 0 . 0 ") Ġ-> ĠIR RE LE V ANT _ P AST ĊĠĠĠ Ġelse Ġ-> ĠM AND AT ORY _ INDEP END ENT ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġfind Component Usage s (): ĠArray < Usage Info > Ġ{ ĊĠĠĠ Ġval Ġusage s Ġ= ĠArrayList < Usage Info >() ĊĠĠĠ Ġproject Build Model . all Included Build Models . forEach Ġmodel @{ Ġmodel Ġ-> ĊĠĠĠĠĠ Ġval Ġmodel Psi Element Ġ= Ġmodel . psi Element Ġ?: Ġreturn @ model ĊĠĠĠĠĠ Ġval Ġmodule Kind Ġ= Ġmodel . module Kind Ġ?: Ġreturn @ model ĊĠĠĠĠĠ Ġmodel .( module Kind . implementation Properties ) (). forEach Ġ{ Ġproperty Model Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġpsi Element Ġ= Ġproperty Model . represent ative Cont ained Psi Element Ġ?: Ġreturn @ forEach ĊĠĠĠĠĠĠĠ Ġval Ġwrapped Psi Element Ġ= ĠWr apped Psi Element ( psi Element , Ġthis , ĠREMOVE _ IMPLEMENT ATION _ PROPERTY _ USAGE _ TYPE ) ĊĠĠĠĠĠĠĠ Ġval Ġusage Info Ġ= ĠRemove Implementation Property Usage Info ( wrapped Psi Element , Ġproperty Model ) ĊĠĠĠĠĠĠĠ Ġusage s . add ( usage Info ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġusage s . to Typed Array () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget CommandName (): ĠString Ġ= ĠAndroid Bundle . message (" project . upgrade . remove Implementation Properties Ref actor ing Processor . command Name ") ĊĊĠ Ġoverride Ġfun Ġget Short Description (): ĠString ? Ġ= ĊĠĠĠ Ġ""" ĊĠĠĠĠĠ ĠThe Ġbuild Ġconfiguration Ġused Ġto Ġallow Ġsetting Ġof Ġproperties Ġfor Ġsome ĊĠĠĠĠĠ Ġmodules , Ġeven Ġwhere Ġthose Ġproperties Ġdo Ġnot Ġhave Ġany Ġeffect Ġfor Ġthat Ġkind ĊĠĠĠĠĠ Ġof Ġmodule . Ġ ĠIn Ġsome Ġcircumstances Ġfrom Ġnow , Ġattempts Ġto Ġset Ġthose ĊĠĠĠĠĠ Ġproperties Ġmay Ġcause Ġerrors Ġrather Ġthan Ġbeing Ġsilently Ġignored . ĊĠĠĠ Ġ""" . trim Indent () ĊĊĠ Ġoverride Ġfun Ġcomplete Component Info ( builder : ĠUpgrade Assistant Component Info . Builder ): ĠUpgrade Assistant Component Info . Builder Ġ= ĊĠĠĠ Ġbuilder . set Kind ( Upgrade Assistant Component Info . Upgrade Assistant Component Kind . REMOVE _ IMPLEMENT ATION _ PROPERTIES ) ĊĊĠ Ġoverride Ġfun Ġcreate Usage View Descriptor ( us ages : ĠArray < out ĠUsage Info >): ĠUsage View Descriptor Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠUsage View Descriptor Adapter () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġget Elements (): ĠArray < Psi Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPsi Element . EMPTY _ ARRAY ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġget Processed Elements Header () Ġ= ĠAndroid Bundle . message (" project . upgrade . remove Implementation Properties Ref actor ing Processor . usage View . header ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠREMOVE _ IMPLEMENT ATION _ PROPERTY _ USAGE _ TYPE Ġ= ĠUsage Type ( Android Bundle . message Pointer (" project . upgrade . remove Implementation Property . usage Type ")) ĊĠ Ġ} Ċ } Ċ Ċ class ĠRemove Implementation Property Usage Info ( ĊĠ Ġelement : ĠWr apped Psi Element , ĊĠ Ġval Ġmodel : ĠDe letable Psi Element Holder Ċ ): ĠGradle Build Model Usage Info ( element ) Ġ{ ĊĠ Ġoverride Ġfun Ġperform Build Model Ref actor ing ( processor : ĠGradle Build Model Ref actor ing Processor ) Ġ{ ĊĠĠĠ Ġmodel . delete () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Tooltip Text (): ĠString Ġ= ĠAndroid Bundle . message (" project . upgrade . remove Implementation Property . tooltip Text ") Ċ } Ċ Ċ val ĠGradle Build Model . module Kind : ĠModule Kind ? ĊĠ Ġget () Ġ{ ĊĠĠĠ Ġfun ĠSet < String >. intersect s ( other : ĠSet < String >) Ġ= Ġthis . any Ġ{ Ġother . contains ( it ) Ġ} ĊĠĠĠ Ġval Ġplugin Set Ġ= Ġplugins (). map Ġ{ Ġit . name (). force String () Ġ}. toSet () ĊĠĠĠ Ġval Ġapp Set Ġ= Ġset Of (" android ", Ġ" com . android . application ") ĊĠĠĠ Ġval Ġlibrary Set Ġ= Ġset Of (" com . android . library ") ĊĠĠĠ Ġval Ġtest Set Ġ= Ġset Of (" com . android . test ") ĊĠĠĠ Ġval Ġdynamic Feature Set Ġ= Ġset Of (" com . android . dynamic - feature ") ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠ Ġapp Set . intersect s ( plugin Set ) Ġ-> ĠModule Kind . APP ĊĠĠĠĠĠ Ġlibrary Set . intersect s ( plugin Set ) Ġ-> ĠModule Kind . LIBRARY ĊĠĠĠĠĠ Ġdynamic Feature Set . intersect s ( plugin Set ) Ġ-> ĠModule Kind . DYNAMIC _ FEATURE ĊĠĠĠĠĠ Ġtest Set . intersect s ( plugin Set ) Ġ-> ĠModule Kind . TEST ĊĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ enum Ġclass ĠModule Kind ( val Ġimplementation Properties : ĠGradle Build Model . () Ġ-> ĠList < Gradle Property Model >) Ġ{ ĊĠ ĠAPP ( ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġandroid (). aid l Package d List (), ĊĠĠĠĠĠĠĠ Ġandroid (). target Project Path (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). consumer Pro guard Files () ĊĠĠĠĠĠ Ġ) Ġ+ ĊĠĠĠĠĠ Ġandroid (). build Types (). map Ġ{ Ġit . consumer Pro guard Files () Ġ} Ġ+ ĊĠĠĠĠĠ Ġandroid (). product Fl avors (). map Ġ{ Ġit . consumer Pro guard Files () Ġ} ĊĠĠĠ Ġ}), ĊĠ ĠLIB R ARY ( ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġandroid (). asset Pack s (), ĊĠĠĠĠĠĠĠ Ġandroid (). dynamic Features (), ĊĠĠĠĠĠĠĠ Ġandroid (). target Project Path (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id Suffix (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). max Sdk Version (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Code (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name Suffix () ĊĠĠĠĠĠ Ġ) Ġ+ ĊĠĠĠĠĠ Ġandroid (). build Types (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( it . c runch P ng s (), Ġit . debug gable (), Ġit . embed Micro App (), Ġit . application Id Suffix (), Ġit . version Name Suffix ()) ĊĠĠĠĠĠ Ġ} Ġ+ ĊĠĠĠĠĠ Ġandroid (). product Fl avors (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( it . application Id (), Ġit . application Id Suffix (), Ġit . max Sdk Version (), Ġit . version Code (), Ġit . version Name (), Ġit . version Name Suffix ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}), ĊĠ ĠD Y NAMIC _ FEATURE ( ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġandroid (). aid l Package d List (), ĊĠĠĠĠĠĠĠ Ġandroid (). asset Pack s (), ĊĠĠĠĠĠĠĠ Ġandroid (). dynamic Features (), ĊĠĠĠĠĠĠĠ Ġandroid (). target Project Path (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id Suffix (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). consumer Pro guard Files (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). max Sdk Version (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). multi Dex Enabled (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). target Sdk Version (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Code (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name Suffix () ĊĠĠĠĠĠ Ġ) Ġ+ ĊĠĠĠĠĠ Ġandroid (). build Types (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ Ġit . debug gable (), ĊĠĠĠĠĠĠĠĠĠ Ġit . is Default (), ĊĠĠĠĠĠĠĠĠĠ Ġit . embed Micro App (), ĊĠĠĠĠĠĠĠĠĠ Ġit . consumer Pro guard Files (), ĊĠĠĠĠĠĠĠĠĠ Ġit . application Id Suffix (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Name Suffix () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} Ġ+ ĊĠĠĠĠĠ Ġandroid (). product Fl avors (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ Ġit . is Default (), ĊĠĠĠĠĠĠĠĠĠ Ġit . consumer Pro guard Files (), ĊĠĠĠĠĠĠĠĠĠ Ġit . application Id (), ĊĠĠĠĠĠĠĠĠĠ Ġit . application Id Suffix (), ĊĠĠĠĠĠĠĠĠĠ Ġit . multi Dex Enabled (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Code (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Name (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Name Suffix () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}), ĊĠ ĠTEST ( ĊĠĠĠ Ġ{ ĊĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġandroid (). aid l Package d List (), ĊĠĠĠĠĠĠĠ Ġandroid (). asset Pack s (), ĊĠĠĠĠĠĠĠ Ġandroid (). dynamic Features (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). application Id Suffix (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). consumer Pro guard Files (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Code (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name (), ĊĠĠĠĠĠĠĠ Ġandroid (). default Config (). version Name Suffix (), ĊĠĠĠĠĠ Ġ) Ġ+ ĊĠĠĠĠĠ Ġandroid (). build Types (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( it . is Default (), Ġit . consumer Pro guard Files (), Ġit . embed Micro App (), Ġit . application Id Suffix (), Ġit . version Name Suffix ()) ĊĠĠĠĠĠ Ġ} Ġ+ ĊĠĠĠĠĠ Ġandroid (). product Fl avors (). flatMap Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ Ġit . is Default (), ĊĠĠĠĠĠĠĠĠĠ Ġit . consumer Pro guard Files (), ĊĠĠĠĠĠĠĠĠĠ Ġit . application Id (), ĊĠĠĠĠĠĠĠĠĠ Ġit . application Id Suffix (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Code (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Name (), ĊĠĠĠĠĠĠĠĠĠ Ġit . version Name Suffix () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}), Ċ } ĊĊ