Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ScannerActivity extends BaseScannerActivity implements
- ZXingScannerView.ResultHandler, FormatSelectorDialogFragment.FormatSelectorDialogListener,
- CameraSelectorDialogFragment.CameraSelectorDialogListener {
- private static final String FLASH_STATE = "FLASH_STATE";
- private static final String AUTO_FOCUS_STATE = "AUTO_FOCUS_STATE";
- private static final String SELECTED_FORMATS = "SELECTED_FORMATS";
- private static final String CAMERA_ID = "CAMERA_ID";
- private ZXingScannerView mScannerView;
- private boolean mFlash;
- private boolean mAutoFocus;
- private ArrayList<Integer> mSelectedIndices;
- private int mCameraId = -1;
- private Button buttonNextScan;
- private Activity activity;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_scanner);
- setTitle("BARCODE SCANNER");
- if (savedInstanceState != null) {
- mFlash = savedInstanceState.getBoolean(FLASH_STATE, false);
- mAutoFocus = savedInstanceState.getBoolean(AUTO_FOCUS_STATE, true);
- mSelectedIndices = savedInstanceState.getIntegerArrayList(SELECTED_FORMATS);
- mCameraId = savedInstanceState.getInt(CAMERA_ID, -1);
- } else {
- mFlash = false;
- mAutoFocus = true;
- mSelectedIndices = null;
- mCameraId = -1;
- }
- setupToolbar();
- buttonNextScan = findViewById(R.id.buttonNextScan);
- activity = ScannerActivity.this;
- ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
- mScannerView = new ZXingScannerView(this);
- setupFormats();
- contentFrame.addView(mScannerView);
- }
- @Override
- protected void onResume() {
- super.onResume();
- mScannerView.setResultHandler(this);
- mScannerView.startCamera(mCameraId);
- mScannerView.setFlash(mFlash);
- mScannerView.setAutoFocus(mAutoFocus);
- }
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putBoolean(FLASH_STATE, mFlash);
- outState.putBoolean(AUTO_FOCUS_STATE, mAutoFocus);
- outState.putIntegerArrayList(SELECTED_FORMATS, mSelectedIndices);
- outState.putInt(CAMERA_ID, mCameraId);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuItem menuItem;
- if (mFlash) {
- menuItem = menu.add(Menu.NONE, R.id.menu_flash, 0, R.string.flash_on);
- } else {
- menuItem = menu.add(Menu.NONE, R.id.menu_flash, 0, R.string.flash_off);
- }
- MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
- if (mAutoFocus) {
- menuItem = menu.add(Menu.NONE, R.id.menu_auto_focus, 0, R.string.auto_focus_on);
- } else {
- menuItem = menu.add(Menu.NONE, R.id.menu_auto_focus, 0, R.string.auto_focus_off);
- }
- MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
- menuItem = menu.add(Menu.NONE, R.id.menu_formats, 0, R.string.formats);
- MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
- menuItem = menu.add(Menu.NONE, R.id.menu_camera_selector, 0, R.string.select_camera);
- MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_NEVER);
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle presses on the action bar items
- switch (item.getItemId()) {
- case R.id.menu_flash:
- mFlash = !mFlash;
- if (mFlash) {
- item.setTitle(R.string.flash_on);
- } else {
- item.setTitle(R.string.flash_off);
- }
- mScannerView.setFlash(mFlash);
- return true;
- case R.id.menu_auto_focus:
- mAutoFocus = !mAutoFocus;
- if (mAutoFocus) {
- item.setTitle(R.string.auto_focus_on);
- } else {
- item.setTitle(R.string.auto_focus_off);
- }
- mScannerView.setAutoFocus(mAutoFocus);
- return true;
- case R.id.menu_formats:
- DialogFragment fragment = FormatSelectorDialogFragment.newInstance(this, mSelectedIndices);
- fragment.show(getSupportFragmentManager(), "format_selector");
- return true;
- case R.id.menu_camera_selector:
- mScannerView.stopCamera();
- DialogFragment cFragment = CameraSelectorDialogFragment.newInstance(this, mCameraId);
- cFragment.show(getSupportFragmentManager(), "camera_selector");
- return true;
- case android.R.id.home:
- onBackPressed();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- @Override
- public void handleResult(Result rawResult) {
- //isi coding kebutuhan kita
- }
- public void closeMessageDialog() {
- closeDialog("scan_results");
- }
- public void closeFormatsDialog() {
- closeDialog("format_selector");
- }
- public void closeDialog(String dialogName) {
- FragmentManager fragmentManager = getSupportFragmentManager();
- DialogFragment fragment = (DialogFragment) fragmentManager.findFragmentByTag(dialogName);
- if (fragment != null) {
- fragment.dismiss();
- }
- }
- public void resume(View view) {
- mScannerView.resumeCameraPreview(this);
- buttonNextScan.setVisibility(View.GONE);
- }
- @Override
- public void onFormatsSaved(ArrayList<Integer> selectedIndices) {
- mSelectedIndices = selectedIndices;
- setupFormats();
- }
- @Override
- public void onCameraSelected(int cameraId) {
- mCameraId = cameraId;
- mScannerView.startCamera(mCameraId);
- mScannerView.setFlash(mFlash);
- mScannerView.setAutoFocus(mAutoFocus);
- }
- public void setupFormats() {
- List<BarcodeFormat> formats = new ArrayList<BarcodeFormat>();
- if (mSelectedIndices == null || mSelectedIndices.isEmpty()) {
- mSelectedIndices = new ArrayList<Integer>();
- for (int i = 0; i < ZXingScannerView.ALL_FORMATS.size(); i++) {
- mSelectedIndices.add(i);
- }
- }
- for (int index : mSelectedIndices) {
- formats.add(ZXingScannerView.ALL_FORMATS.get(index));
- }
- if (mScannerView != null) {
- mScannerView.setFormats(formats);
- }
- }
- @Override
- public void onPause() {
- super.onPause();
- mScannerView.stopCamera();
- closeMessageDialog();
- closeFormatsDialog();
- }
- @Override
- public void onBackPressed() {
- super.onBackPressed();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment