/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ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 . nav editor . analytics Ċ Ċ import Ġcom . android . tools . idea . common . analytics . set Application Id Ċ import Ġcom . android . tools . idea . common . model . Nl Model Ċ import Ġcom . android . tools . idea . run . A pk Provision Exception Ċ import Ġcom . google . wire less . android . sdk . stats . Android Studio Event Ċ import Ġcom . google . wire less . android . sdk . stats . Nav Editor Event Ċ import Ġjava . util . concurrent . Executor Ċ import Ġjava . util . concurrent . Rejected ExecutionException Ċ import Ġjava . util . function . Consumer Ċ Ċ class ĠNav Usage Tracker Impl ( ĊĠ Ġprivate Ġval Ġexecutor : ĠExecutor , ĊĠ Ġoverride Ġval Ġmodel : ĠN l Model ?, ĊĠ Ġprivate Ġval Ġevent Logger : ĠConsumer < Android Studio Event . Builder > Ċ ) Ġ: ĠNav Usage Tracker Ġ{ ĊĊĠ Ġoverride Ġfun Ġlog Event ( event : ĠNav Editor Event ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġexecutor . execute Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstudio Event Ġ= ĠAndroid Studio Event . newBuilder () ĊĠĠĠĠĠĠĠĠĠ Ġ. set Kind ( Android Studio Event . Event Kind . NAV _ EDITOR _ EVENT ) ĊĠĠĠĠĠĠĠĠĠ Ġ. set Nav Editor Event ( event ) ĊĊĠĠĠĠĠĠĠ Ġmodel ?. let Ġ{ Ġstudio Event . set Application Id ( model . facet ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġevent Logger . accept ( studio Event ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcatch Ġ( e : ĠReject ed ExecutionException ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠWe Ġare Ġhitting Ġthe Ġth rottling Ġlimit ĊĠĠĠ Ġ} ĊĠĠĠ Ġcatch Ġ( e : ĠA pk Provision Exception ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠApplication Id Ġis Ġunavailable . ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }