package Ġcom . bug f ender Ċ Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ class ĠUpload Mapping Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġproject . extensions . create (" bug f ender ", ĠUpload Mapping Plugin Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġproject . logger . debug ("[ Bug f ender ] ĠActiv ating Ġplugin ") ĊĊĠĠĠĠĠĠĠ Ġproject . plugin Manager . with Plugin (" com . android . application ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Ġ= Ġproject . extensions . getBy Type ( App Extension :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . debug ("[ Bug f ender ] ĠFound Ġan ĠAndroid Ġapplication ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġmakes Ġsure Ġthat Ġwe Ġget ĠVari ants Ġafter Ġthey Ġare Ġpopulated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . after Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . application Variants . configure Each Ġ{ Ġvariant Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . debug ("[ Bug f ender ] ĠAt tempting Ġto Ġapply Ġplugin Ġto Ġ{}", Ġvariant . name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! variant . build Type . is Min ify Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . lifecycle ("[ Bug f ender ] ĠNot Ġapplying Ġto Ġ{} : Ġmin ification Ġis Ġdisabled ", Ġvariant . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ configure Each ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcapital Name Ġ= Ġvariant . name . capitalize () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġassemble Task Ġ= Ġvariant . assemble Provider . or Null ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Task Ġ= Ġproject . tasks . find ByName (" bundle ${ capital Name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( assemble Task Ġ== Ġnull Ġ&& Ġbundle Task Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . warn ("[ Bug f ender ] ĠNo Ġassemble Ġor Ġbundle Ġprovider Ġavailable Ġfor Ġ{}", Ġvariant . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ configure Each ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= ĠUpload Mapping Task . constructor ( variant , Ġconfig ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġproject . tasks . register ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bf Upload Mapping ${ capital Name }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpload Mapping Task :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstructor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassemble Task ?. final ized By ( task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle Task ?. final ized By ( task ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . debug ("[ Bug f ender ] ĠApp lied Ġplugin Ġto Ġ{}", Ġvariant . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }