22
33import android .content .Intent ;
44import android .os .Bundle ;
5- import android .util .Log ;
65import android .widget .RadioButton ;
76import android .widget .RadioGroup ;
87import android .widget .TextView ;
3231import com .dynamsoft .utility .MultiFrameResultCrossFilter ;
3332
3433import java .util .Locale ;
35- import java .util .concurrent .ExecutorService ;
36- import java .util .concurrent .LinkedBlockingQueue ;
37- import java .util .concurrent .ThreadPoolExecutor ;
38- import java .util .concurrent .TimeUnit ;
3934
4035public class MainActivity extends AppCompatActivity {
4136 private static final String TEMPLATE_READ_VIN_BARCODE = "ReadVINBarcode" ;
@@ -44,8 +39,7 @@ public class MainActivity extends AppCompatActivity {
4439 private CameraEnhancer camera ;
4540 private String parsedText ;
4641 private String currentTemplate = TEMPLATE_READ_VIN_BARCODE ;
47- private final ExecutorService switchModeThread = new ThreadPoolExecutor (1 , 1 , 0 , TimeUnit .MILLISECONDS ,
48- new LinkedBlockingQueue <>(1 ), new ThreadPoolExecutor .DiscardOldestPolicy ());
42+
4943 @ Override
5044 protected void onCreate (Bundle savedInstanceState ) {
5145 super .onCreate (savedInstanceState );
@@ -160,10 +154,10 @@ private void initSwitchModeRadioGroup() {
160154 RadioButton btnBarcode = findViewById (R .id .btn_vin_barcode );
161155 RadioButton btnText = findViewById (R .id .btn_vin_text );
162156 ((RadioGroup ) findViewById (R .id .rg_modes )).setOnCheckedChangeListener ((group , checkedId ) -> {
163- if (btnBarcode .isPressed ()) {
157+ if (btnBarcode .isPressed ()) {
164158 camera .disableEnhancedFeatures (EnumEnhancerFeatures .EF_FRAME_FILTER );
165159 currentTemplate = TEMPLATE_READ_VIN_BARCODE ;
166- } else if (btnText .isPressed ()) {
160+ } else if (btnText .isPressed ()) {
167161 try {
168162 camera .enableEnhancedFeatures (EnumEnhancerFeatures .EF_FRAME_FILTER );
169163 } catch (Exception e ) {
@@ -173,12 +167,12 @@ private void initSwitchModeRadioGroup() {
173167 } else {
174168 return ;
175169 }
176- switchModeThread . submit (() -> {
177- if (! this . isFinishing ()) {
178- router . stopCapturing ();
179- router . startCapturing ( currentTemplate , null );
180- }
181- });
170+ try {
171+ router . switchCapturingTemplate ( currentTemplate );
172+ } catch ( CaptureVisionRouterException e ) {
173+ // Throws an exception only when attempting to switch to an invalid template name.
174+ throw new RuntimeException ( e );
175+ }
182176 });
183177 }
184178
0 commit comments