From 36703c46b11a2300cdbba219628fc63be5bde7c3 Mon Sep 17 00:00:00 2001 From: Maksymilian Jopek Date: Thu, 22 Sep 2022 15:41:11 +0200 Subject: Scanning and start gen --- .../java/com/jopek/lectordecodi/MainActivity.java | 7 ---- .../ui/barcode_gen/BarcodeGenFragment.java | 27 ++++++++++++- .../lectordecodi/ui/reader/ReaderFragment.java | 46 ++++++++++++++++++++-- 3 files changed, 68 insertions(+), 12 deletions(-) (limited to 'app/src/main/java/com') diff --git a/app/src/main/java/com/jopek/lectordecodi/MainActivity.java b/app/src/main/java/com/jopek/lectordecodi/MainActivity.java index f40a08f..95cfb87 100644 --- a/app/src/main/java/com/jopek/lectordecodi/MainActivity.java +++ b/app/src/main/java/com/jopek/lectordecodi/MainActivity.java @@ -29,13 +29,6 @@ public class MainActivity extends AppCompatActivity { setContentView(binding.getRoot()); setSupportActionBar(binding.appBarMain.toolbar); - //binding.appBarMain.fab.setOnClickListener(new View.OnClickListener() { - // @Override - // public void onClick(View view) { - // Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - // .setAction("Action", null).show(); - // } - //}); DrawerLayout drawer = binding.drawerLayout; NavigationView navigationView = binding.navView; // Passing each menu ID as a set of Ids because each diff --git a/app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java b/app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java index e087d5e..7ccda24 100644 --- a/app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java +++ b/app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java @@ -1,20 +1,30 @@ package com.jopek.lectordecodi.ui.barcode_gen; +import android.graphics.Bitmap; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; +import com.google.zxing.BarcodeFormat; import com.jopek.lectordecodi.databinding.FragmentBarcodeGenBinding; +import com.journeyapps.barcodescanner.BarcodeEncoder; public class BarcodeGenFragment extends Fragment { private FragmentBarcodeGenBinding binding; + private EditText etInput; + private ImageView img; + private Button btnGen; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -24,8 +34,21 @@ public class BarcodeGenFragment extends Fragment { binding = FragmentBarcodeGenBinding.inflate(inflater, container, false); View root = binding.getRoot(); - final TextView textView = binding.textGallery; - barcodeGenViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); + etInput = binding.plainTextInput; + img = binding.barcodeImg; + btnGen = binding.btnGenBarcode; + + btnGen.setOnClickListener(v -> { + try { + BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); + Bitmap bitmap = barcodeEncoder.encodeBitmap(String.valueOf(etInput.getText()), BarcodeFormat.EAN_13, 400, 400); + Log.d("maks", "onCreateView: " + bitmap); + img.setImageBitmap(bitmap); + } catch(Exception e) { + + } + }); + return root; } diff --git a/app/src/main/java/com/jopek/lectordecodi/ui/reader/ReaderFragment.java b/app/src/main/java/com/jopek/lectordecodi/ui/reader/ReaderFragment.java index c0a7237..87d9615 100644 --- a/app/src/main/java/com/jopek/lectordecodi/ui/reader/ReaderFragment.java +++ b/app/src/main/java/com/jopek/lectordecodi/ui/reader/ReaderFragment.java @@ -1,20 +1,44 @@ package com.jopek.lectordecodi.ui.reader; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.TextView; +import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; +import com.jopek.lectordecodi.R; import com.jopek.lectordecodi.databinding.FragmentReaderBinding; +import com.journeyapps.barcodescanner.ScanContract; +import com.journeyapps.barcodescanner.ScanOptions; public class ReaderFragment extends Fragment { private FragmentReaderBinding binding; + private final String TAG = "maks"; + private TextView tvRead; + private Button bStartRead; + private Button bCopyCode; + private String readCode = ""; + + // Register the launcher and result handler + private final ActivityResultLauncher barcodeLauncher = registerForActivityResult(new ScanContract(), + result -> { + if(result.getContents() == null) { + tvRead.setText("Reading code failed"); + } else { + readCode = result.getContents(); + tvRead.setText("Readed: " + readCode); + } + }); public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -24,9 +48,25 @@ public class ReaderFragment extends Fragment { binding = FragmentReaderBinding.inflate(inflater, container, false); View root = binding.getRoot(); - binding.textHome2.setText("Tescik Home2"); - final TextView textView = binding.textHome; - readerViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); + tvRead = root.findViewById(R.id.read_from_code); + bStartRead = root.findViewById(R.id.start_read); + bCopyCode = root.findViewById(R.id.copy_read_from_code); + + bStartRead.setOnClickListener(view -> { + ScanOptions options = new ScanOptions(); + options.setDesiredBarcodeFormats(ScanOptions.ALL_CODE_TYPES); + options.setPrompt("Scan a QbaRCode"); + options.setCameraId(0); // Use a specific camera of the device + options.setBeepEnabled(false); + options.setBarcodeImageEnabled(true); + options.setOrientationLocked(false); + barcodeLauncher.launch(options); + }); + bCopyCode.setOnClickListener(view -> { + ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("label", readCode); + clipboard.setPrimaryClip(clip); + }); return root; } -- cgit v1.3.1