riyanwenas

ScannerActivity

Feb 15th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.16 KB | None | 0 0
  1. public class ScannerActivity extends BaseScannerActivity implements
  2. ZXingScannerView.ResultHandler, FormatSelectorDialogFragment.FormatSelectorDialogListener,
  3. CameraSelectorDialogFragment.CameraSelectorDialogListener {
  4.  
  5. private static final String FLASH_STATE = "FLASH_STATE";
  6. private static final String AUTO_FOCUS_STATE = "AUTO_FOCUS_STATE";
  7. private static final String SELECTED_FORMATS = "SELECTED_FORMATS";
  8. private static final String CAMERA_ID = "CAMERA_ID";
  9. private ZXingScannerView mScannerView;
  10. private boolean mFlash;
  11. private boolean mAutoFocus;
  12. private ArrayList<Integer> mSelectedIndices;
  13. private int mCameraId = -1;
  14.  
  15. private Button buttonNextScan;
  16. private Activity activity;
  17.  
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_scanner);
  22. setTitle("BARCODE SCANNER");
  23.  
  24. if (savedInstanceState != null) {
  25. mFlash = savedInstanceState.getBoolean(FLASH_STATE, false);
  26. mAutoFocus = savedInstanceState.getBoolean(AUTO_FOCUS_STATE, true);
  27. mSelectedIndices = savedInstanceState.getIntegerArrayList(SELECTED_FORMATS);
  28. mCameraId = savedInstanceState.getInt(CAMERA_ID, -1);
  29. } else {
  30. mFlash = false;
  31. mAutoFocus = true;
  32. mSelectedIndices = null;
  33. mCameraId = -1;
  34. }
  35.  
  36. setupToolbar();
  37. buttonNextScan = findViewById(R.id.buttonNextScan);
  38. activity = ScannerActivity.this;
  39.  
  40. ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
  41. mScannerView = new ZXingScannerView(this);
  42. setupFormats();
  43. contentFrame.addView(mScannerView);
  44. }
  45.  
  46. @Override
  47. protected void onResume() {
  48. super.onResume();
  49. mScannerView.setResultHandler(this);
  50. mScannerView.startCamera(mCameraId);
  51. mScannerView.setFlash(mFlash);
  52. mScannerView.setAutoFocus(mAutoFocus);
  53. }
  54.  
  55. @Override
  56. public void onSaveInstanceState(Bundle outState) {
  57. super.onSaveInstanceState(outState);
  58. outState.putBoolean(FLASH_STATE, mFlash);
  59. outState.putBoolean(AUTO_FOCUS_STATE, mAutoFocus);
  60. outState.putIntegerArrayList(SELECTED_FORMATS, mSelectedIndices);
  61. outState.putInt(CAMERA_ID, mCameraId);
  62. }
  63.  
  64. @Override
  65. public boolean onCreateOptionsMenu(Menu menu) {
  66. MenuItem menuItem;
  67.  
  68. if (mFlash) {
  69. menuItem = menu.add(Menu.NONE, R.id.menu_flash, 0, R.string.flash_on);
  70. } else {
  71. menuItem = menu.add(Menu.NONE, R.id.menu_flash, 0, R.string.flash_off);
  72. }
  73. MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
  74.  
  75.  
  76. if (mAutoFocus) {
  77. menuItem = menu.add(Menu.NONE, R.id.menu_auto_focus, 0, R.string.auto_focus_on);
  78. } else {
  79. menuItem = menu.add(Menu.NONE, R.id.menu_auto_focus, 0, R.string.auto_focus_off);
  80. }
  81. MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
  82.  
  83. menuItem = menu.add(Menu.NONE, R.id.menu_formats, 0, R.string.formats);
  84. MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
  85.  
  86. menuItem = menu.add(Menu.NONE, R.id.menu_camera_selector, 0, R.string.select_camera);
  87. MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
  88.  
  89. return super.onCreateOptionsMenu(menu);
  90. }
  91.  
  92. @Override
  93. public boolean onOptionsItemSelected(MenuItem item) {
  94. // Handle presses on the action bar items
  95. switch (item.getItemId()) {
  96. case R.id.menu_flash:
  97. mFlash = !mFlash;
  98. if (mFlash) {
  99. item.setTitle(R.string.flash_on);
  100. } else {
  101. item.setTitle(R.string.flash_off);
  102. }
  103. mScannerView.setFlash(mFlash);
  104. return true;
  105. case R.id.menu_auto_focus:
  106. mAutoFocus = !mAutoFocus;
  107. if (mAutoFocus) {
  108. item.setTitle(R.string.auto_focus_on);
  109. } else {
  110. item.setTitle(R.string.auto_focus_off);
  111. }
  112. mScannerView.setAutoFocus(mAutoFocus);
  113. return true;
  114. case R.id.menu_formats:
  115. DialogFragment fragment = FormatSelectorDialogFragment.newInstance(this, mSelectedIndices);
  116. fragment.show(getSupportFragmentManager(), "format_selector");
  117. return true;
  118. case R.id.menu_camera_selector:
  119. mScannerView.stopCamera();
  120. DialogFragment cFragment = CameraSelectorDialogFragment.newInstance(this, mCameraId);
  121. cFragment.show(getSupportFragmentManager(), "camera_selector");
  122. return true;
  123.  
  124. case android.R.id.home:
  125. onBackPressed();
  126. return true;
  127.  
  128. default:
  129. return super.onOptionsItemSelected(item);
  130. }
  131. }
  132.  
  133. @Override
  134. public void handleResult(Result rawResult) {
  135. //isi coding kebutuhan kita
  136. }
  137.  
  138. public void closeMessageDialog() {
  139. closeDialog("scan_results");
  140. }
  141.  
  142. public void closeFormatsDialog() {
  143. closeDialog("format_selector");
  144. }
  145.  
  146. public void closeDialog(String dialogName) {
  147. FragmentManager fragmentManager = getSupportFragmentManager();
  148. DialogFragment fragment = (DialogFragment) fragmentManager.findFragmentByTag(dialogName);
  149. if (fragment != null) {
  150. fragment.dismiss();
  151. }
  152. }
  153.  
  154. public void resume(View view) {
  155. mScannerView.resumeCameraPreview(this);
  156. buttonNextScan.setVisibility(View.GONE);
  157. }
  158.  
  159. @Override
  160. public void onFormatsSaved(ArrayList<Integer> selectedIndices) {
  161. mSelectedIndices = selectedIndices;
  162. setupFormats();
  163. }
  164.  
  165. @Override
  166. public void onCameraSelected(int cameraId) {
  167. mCameraId = cameraId;
  168. mScannerView.startCamera(mCameraId);
  169. mScannerView.setFlash(mFlash);
  170. mScannerView.setAutoFocus(mAutoFocus);
  171. }
  172.  
  173. public void setupFormats() {
  174. List<BarcodeFormat> formats = new ArrayList<BarcodeFormat>();
  175. if (mSelectedIndices == null || mSelectedIndices.isEmpty()) {
  176. mSelectedIndices = new ArrayList<Integer>();
  177. for (int i = 0; i < ZXingScannerView.ALL_FORMATS.size(); i++) {
  178. mSelectedIndices.add(i);
  179. }
  180. }
  181.  
  182. for (int index : mSelectedIndices) {
  183. formats.add(ZXingScannerView.ALL_FORMATS.get(index));
  184. }
  185. if (mScannerView != null) {
  186. mScannerView.setFormats(formats);
  187. }
  188. }
  189.  
  190. @Override
  191. public void onPause() {
  192. super.onPause();
  193. mScannerView.stopCamera();
  194. closeMessageDialog();
  195. closeFormatsDialog();
  196. }
  197.  
  198. @Override
  199. public void onBackPressed() {
  200. super.onBackPressed();
  201. }
  202.  
  203. @Override
  204. protected void onDestroy() {
  205. super.onDestroy();
  206. }
  207.  
  208. }
Advertisement
Add Comment
Please, Sign In to add comment