diff options
| author | Maksymilian Jopek <maks@jopek.eu> | 2022-09-22 15:41:11 +0200 |
|---|---|---|
| committer | Maksymilian Jopek <maks@jopek.eu> | 2022-09-22 15:41:11 +0200 |
| commit | 36703c46b11a2300cdbba219628fc63be5bde7c3 (patch) | |
| tree | 4faba605b2284c8e1cfb263a5f464935c1201fd0 /app/src/main/java/com/jopek/lectordecodi/ui | |
| parent | 7a012fedd21a03a26bb40fdf8a91315b6c512ec9 (diff) | |
| download | lector-de-codi-36703c46b11a2300cdbba219628fc63be5bde7c3.tar.gz lector-de-codi-36703c46b11a2300cdbba219628fc63be5bde7c3.tar.zst lector-de-codi-36703c46b11a2300cdbba219628fc63be5bde7c3.zip | |
Scanning and start gen
Diffstat (limited to 'app/src/main/java/com/jopek/lectordecodi/ui')
| -rw-r--r-- | app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java | 27 | ||||
| -rw-r--r-- | app/src/main/java/com/jopek/lectordecodi/ui/reader/ReaderFragment.java | 46 |
2 files changed, 68 insertions, 5 deletions
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<ScanOptions> 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; } |
