package Ġcom . p unk studio . scanner . decode Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġcom . p unk studio . scanner . Scanner Activity Ċ import Ġjava . util . concurrent . Count DownLatch Ċ Ċ /** Ċ Ġ* Ġ@ author ĠM ason Ċ Ġ* Ċ Ġ* Ġ@ date Ġ 2 0 1 9 - 0 3 - 0 5 Ċ Ġ*/ Ċ internal Ġclass ĠDecode Thread ( private Ġval Ġm Activity : ĠScanner Activity ) Ġ: ĠThread () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Handler : ĠHandler ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Handler Init Latch : ĠCount DownLatch ĊĠĠĠ Ġ// Ġcontinue ? ĊĠĠĠ Ġval Ġhandler : ĠHandler ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Handler Init Latch . await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ie : ĠInterruptedException ) Ġ{ Ġ// Ġcontinue ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Handler ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠL ooper . prepare () ĊĠĠĠĠĠĠĠ Ġm Handler Ġ= ĠDecode Handler ( m Activity ) ĊĠĠĠĠĠĠĠ Ġm Handler Init Latch . count Down () ĊĠĠĠĠĠĠĠ ĠL ooper . loop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Handler Init Latch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġ} Ċ }