plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġid (" kotlin - android ") ĊĠĠĠ Ġid (" jac oco ") Ċ } Ċ Ċ android Ġ{ ĊĠĠĠ Ġset Compile Sdk Version ( 3 0 ) ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġset Min Sdk Version ( 1 5 ) ĊĠĠĠĠĠĠĠ Ġset Target Sdk Version ( 3 0 ) ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġ" 2 . 7 . 0 " ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android x . test . runner . Android JUnit Runner " ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Argument ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" filter ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . otal i ast ud ios . cam er av iew . tools . Sdk Exclude Filter , Ġcom . otal i ast ud ios . cam er av iew . tools . Sdk Include Filter ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġbuild Types [" debug "]. is Test Coverage Enabled Ġ= Ġtrue ĊĠĠĠ Ġbuild Types [" release "]. is Min ify Enabled Ġ= Ġfalse Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġtest Implementation (" junit : junit : 4 . 1 3 . 2 ") ĊĠĠĠ Ġtest Implementation (" org . mockito : mockito - inline : 3 . 8 . 0 ") ĊĊĠĠĠ Ġandroid Test Implementation (" android x . test : runner : 1 . 3 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test : rules : 1 . 3 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test . ext : junit : 1 . 1 . 2 ") ĊĠĠĠ Ġandroid Test Implementation (" org . mockito : mockito - android : 2 . 2 8 . 2 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test . espress o : espress o - core : 3 . 3 . 0 ") ĊĊĠĠĠ Ġapi (" android x . ex if interface : ex if interface : 1 . 3 . 2 ") ĊĠĠĠ Ġapi (" android x . lifecycle : lifecycle - common : 2 . 3 . 1 ") ĊĠĠĠ Ġapi (" com . google . android . gms : play - services - tasks : 1 7 . 2 . 1 ") ĊĠĠĠ Ġimplementation (" android x . annotation : annotation : 1 . 2 . 0 ") ĊĠĠĠ Ġimplementation (" com . otal i ast ud ios . opengl : eg lo o : 0 . 6 . 0 ") Ċ } Ċ Ċ // ĠPublish ing Ċ // Ċ // publisher Ġ{ Ċ // ĠĠĠ Ġproject . description Ġ= Ġ" A Ġwell Ġdocumented , Ġhigh - level ĠAndroid Ġinterface Ġthat Ġmakes Ġcapturing Ġ" Ġ+ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ" pictures Ġand Ġvideos Ġeasy , Ġaddressing Ġall Ġof Ġthe Ġcommon Ġissues Ġand Ġneeds . Ġ" Ġ+ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ" Real - time Ġfilters , Ġgest ures , Ġwater marks , Ġframe Ġprocessing , ĠRAW , Ġoutput Ġof Ġany Ġsize ." Ċ // ĠĠĠ Ġproject . artifact Ġ= Ġ" cam er av iew " Ċ // ĠĠĠ Ġproject . group Ġ= Ġ" com . otal i ast ud ios " Ċ // ĠĠĠ Ġproject . url Ġ= Ġ" https :// github . com / nat ario 1 / Camera View " Ċ // ĠĠĠ Ġproject . add License ( License . APACHE _ 2 _ 0 ) Ċ // ĠĠĠ Ġbin tray Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġrelease . sources Ġ= ĠRelease . SOURCES _ AUTO Ċ // ĠĠĠĠĠĠĠ Ġrelease . docs Ġ= ĠRelease . DOCS _ AUTO Ċ // ĠĠĠĠĠĠĠ Ġauth . user Ġ= Ġ" BIN TR AY _ USER " Ċ // ĠĠĠĠĠĠĠ Ġauth . key Ġ= Ġ" BIN TR AY _ KEY " Ċ // ĠĠĠĠĠĠĠ Ġauth . repo Ġ= Ġ" BIN TR AY _ REPO " Ċ // ĠĠĠ Ġ} Ċ // ĠĠĠ Ġdirectory Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdirectory Ġ= Ġfile ( repositories . maven Local (). url ). absolute Path Ċ // ĠĠĠ Ġ} Ċ //} Ċ // Ċ //// ĠCode ĠCoverage Ċ // val Ġbuild Dir Ġ= Ġproject . build Dir . absolute Path Ċ // val Ġcoverage Input Dir Ġ= Ġ"$ build Dir / coverage _ input " Ġ// Ġchanging ? Ġchange Ġgithub Ġworkflow Ċ // val Ġcoverage Output Dir Ġ= Ġ"$ build Dir / coverage _ output " Ġ// Ġchanging ? Ġchange Ġgithub Ġworkflow Ċ // Ċ //// ĠRun Ġunit Ġtests , Ġwith Ġcoverage Ġenabled Ġin Ġthe Ġandroid Ġ{ Ġ} Ġconfiguration . Ċ //// ĠOutput Ġwill Ġbe Ġan Ġ. exec Ġfile Ġin Ġbuild / jac oco . Ċ // tasks . register (" run UnitTests ") Ġ{ Ġ// Ġchanging Ġname ? Ġchange Ġgithub Ġworkflow Ċ // ĠĠĠ Ġdepends On (" test Debug UnitTest ") Ċ // ĠĠĠ Ġdo Last Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġcopy Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ("$ build Dir / jac oco / test Debug UnitTest . exec ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġinto ("$ coverage Input Dir / unit _ tests ") Ġ// Ġchanging ? Ġchange Ġgithub Ġworkflow Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //} Ċ // Ċ //// ĠRun Ġandroid Ġtests Ġwith Ġcoverage . Ċ // tasks . register (" run Android Tests ") Ġ{ Ġ// Ġchanging Ġname ? Ġchange Ġgithub Ġworkflow Ċ // ĠĠĠ Ġdepends On (" connected Debug Android Test ") Ċ // ĠĠĠ Ġdo Last Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġcopy Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ("$ build Dir / outputs / code _ coverage / debug Android Test / connected ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġinclude ("* coverage . ec ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġinto ("$ coverage Input Dir / android _ tests ") Ġ// Ġchanging ? Ġchange Ġgithub Ġworkflow Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //} Ċ // Ċ //// ĠMerge Ġthe Ġtwo Ġwith Ġa Ġj aco co Ġtask . Ċ // jac oco Ġ{ Ġtool Version Ġ= Ġ" 0 . 8 . 5 " Ġ} Ċ // tasks . register (" compute Coverage ", ĠJ aco co Report :: class ) Ġ{ Ċ // ĠĠĠ Ġdepends On (" compile Debug Sources ") Ġ// ĠCompile Ġsources , Ġneeded Ġbelow Ċ // ĠĠĠ Ġexecution Data . from ( file Tree ( coverage Input Dir )) Ċ // ĠĠĠ Ġsource Directories . from ( android . source Sets [" main "]. java . src Dirs ) Ċ // ĠĠĠ Ġadditional Source Dirs . from ("$ build Dir / generated / source / build Config / debug ") Ċ // ĠĠĠ Ġadditional Source Dirs . from ("$ build Dir / generated / source / r / debug ") Ċ // ĠĠĠ Ġclass Directories . from ( file Tree ("$ build Dir / inter medi ates / javac / debug ") Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// ĠNot Ġeverything Ġhere Ġis Ġrelevant Ġfor ĠCamera View , Ġbut Ġlet 's Ġkeep Ġit Ġgeneric Ċ // ĠĠĠĠĠĠĠ Ġexclude ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ R . class ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ R $ *. class ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ Build Config .* ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ Manifest * .* ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" android /** ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" android x /** ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com / google /** ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /* \$ View Injector * .* ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ D agger * Component . class ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ D agger * Component \$ Builder . class ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /* Module _* Factory . class ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġdon " t Ġtest ĠOpenGL Ġfilters . Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ com / otal i ast ud ios / cam er av iew / filters /** .* " Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠ Ġ}) Ċ // ĠĠĠ Ġreports . html . isEnabled Ġ= Ġtrue Ċ // ĠĠĠ Ġreports . xml . isEnabled Ġ= Ġtrue Ċ // ĠĠĠ Ġreports . html . destination Ġ= Ġfile ("$ coverage Output Dir / html ") Ċ // ĠĠĠ Ġreports . xml . destination Ġ= Ġfile ("$ coverage Output Dir / xml / report . xml ") Ċ //}