/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ package Ġorg . jetbrains . r . settings Ċ Ċ import Ġcom . intellij . ide . util . Properties Component Ċ import Ġcom . intellij . openapi . application . Application Info Ċ import Ġcom . intellij . openapi . application . Application Manager Ċ import Ġcom . intellij . openapi . editor . event . Editor Factory Event Ċ import Ġcom . intellij . openapi . editor . event . Editor Factory Listener Ċ import Ġcom . intellij . openapi . file Editor . File Document Manager Ċ import Ġcom . intellij . openapi . update Settings . impl . Plugin Downloader Ċ import Ġcom . intellij . openapi . util . J DOM Util Ċ import Ġcom . intellij . openapi . util . System Info Ċ import Ġcom . intellij . openapi . vfs . Charset Toolkit Ċ import Ġcom . intellij . util . io . Http Requests Ċ import Ġorg . j dom . J DOM Exception Ċ import Ġorg . jetbrains . r . R FileType Ċ import Ġorg . jetbrains . r . R Plugin Util Ċ import Ġjava . net . URL Encoder Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ private Ġconst Ġval ĠKEY Ġ= Ġ" r . last . update . timestamp " Ċ Ċ class ĠR Update Component Ġ: ĠEditor Factory Listener Ġ{ ĊĠ Ġoverride Ġfun Ġeditor Created ( event : ĠEditor Factory Event ) Ġ{ ĊĠĠĠ Ġif Ġ( Application Manager . getApplication (). is UnitTest Mode ) Ġreturn ĊĠĠĠ Ġval Ġdocument Ġ= Ġevent . editor . document ĊĊĠĠĠ Ġval Ġfile Ġ= ĠFile Document Manager . getInstance (). getFile ( document ) ĊĠĠĠ Ġif Ġ( file Ġ!= Ġnull Ġ&& Ġ( file . fileType Ġis ĠR FileType Ġ|| Ġfile . extension ?. toLowerCase () Ġ== Ġ" r md ")) Ġ{ ĊĠĠĠĠĠ Ġcheck For Updates () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcheck For Updates () Ġ{ ĊĠĠĠ Ġval Ġproperties Component Ġ= ĠProperties Component . getInstance () ĊĠĠĠ Ġval Ġlast Update Ġ= Ġproperties Component . get Or Init Long ( KEY , Ġ 0 ) ĊĠĠĠ Ġif Ġ( last Update Ġ== Ġ 0 L Ġ|| ĠSystem . currentTimeMillis () Ġ- Ġlast Update Ġ> ĠTimeUnit . DAYS . to Millis ( 1 )) Ġ{ ĊĠĠĠĠĠ ĠApplication Manager . getApplication (). execute On P ooled Thread Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Number Ġ= ĠApplication Info . getInstance (). build . asString () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= ĠR Plugin Util . get Plugin () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Version Ġ= Ġplugin . getVersion () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġplugin Id Ġ= Ġplugin . get Plugin Id (). getId String () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġos Ġ= ĠURL Encoder . encode ( System Info . OS _ NAME Ġ+ Ġ" Ġ" Ġ+ ĠSystem Info . OS _ VERSION , ĠCharset Toolkit . UTF 8 ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġuid Ġ= ĠPlugin Downloader . get Market place Downloads UUID () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// plugins . jetbrains . com / plugins / list " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"? plugin Id =" Ġ+ Ġplugin Id Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& build =" Ġ+ Ġbuild Number Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& plugin Version =" Ġ+ Ġplugin Version Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& os =" Ġ+ Ġos Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& uuid =" Ġ+ Ġuid ĊĠĠĠĠĠĠĠĠĠ ĠProperties Component . getInstance (). setValue ( KEY , ĠSystem . currentTimeMillis (). toString ()) ĊĠĠĠĠĠĠĠĠĠ ĠHttp Requests . request ( url ). connect < Any > Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM Util . load ( request . inputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( ignore : ĠJ DOM Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( ignored : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }