package Ġio . github . sim ons ch iller . pref iller Ċ Ċ import Ġcom . android . build . gradle .* Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ class ĠPref iller Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . extensions . create (" pref iller ", ĠPref iller Extension :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠE ager ly Ġfail Ġthe Ġbuild Ġif Ġthe ĠA GP Ġis Ġnot Ġavailable ĊĠĠĠĠĠĠĠ Ġif Ġ(! project . plugins . has Plugin (" com . android . internal . version - check ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Pref iller Ġis Ġonly Ġapplicable Ġto ĠAndroid Ġprojects ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRegister Ġtasks Ġwhen ĠAndroid Ġplugins Ġare Ġavailable ĊĠĠĠĠĠĠĠ Ġproject . plugins . configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvariants Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApp Plugin , Ġis ĠDynamic Feature Plugin Ġ-> Ġproject . extensions . getBy Type ( App Extension :: class . java ). application Variants ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLibrary Plugin Ġ-> Ġproject . extensions . getBy Type ( Library Extension :: class . java ). library Variants ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRegister Ġpref iller Ġtasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariants ?. configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextension . database Configs . forEach Ġ{ Ġconfig Ġ-> Ġconfig . register Tasks ( project , Ġthis ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ