package Ġcom . jo er . util Ċ Ċ import Ġcom . jo er . shell . Callback Ċ import Ġcom . jo er . shell . Shell Command Ċ import Ġjava . util . regex . Matcher Ċ import Ġjava . util . regex . Pattern Ċ Ċ object ĠConnected Device Ġ{ ĊĠĠĠ Ġprivate Ġval Ġshell Command Ġ= ĠShell Command () ĊĊĠĠĠ Ġfun Ġcheck Connected Devices ( callback : ĠConnected Device Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshell Command . execute Command (" adb Ġdevices ", Ġobject Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġterminated With Content ( content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern : ĠPattern Ġ= ĠPattern . compile ("\\ b device \\ b ", ĠPattern . CASE _ INS ENS ITIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher : ĠMatcher Ġ= Ġpattern . matcher ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( matcher . find ()) Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ== Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . device Connected () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ> Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . too Many Devices () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ== Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . not En ough Devices () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . general Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠConnected Device Callback Ġ{ ĊĠĠĠ Ġfun Ġdevice Connected () ĊĠĠĠ Ġfun Ġtoo Many Devices () ĊĠĠĠ Ġfun Ġnot En ough Devices () ĊĠĠĠ Ġfun Ġgeneral Error () Ċ }