Some UI
This commit is contained in:
		@@ -1,7 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
          xmlns:tools="http://schemas.android.com/tools">
 | 
			
		||||
    <uses-feature android:name="android.hardware.camera" android:required="false"/>
 | 
			
		||||
    <uses-feature android:name="android.hardware.camera" android:required="true"/>
 | 
			
		||||
    <uses-permission android:name="android.permission.CAMERA" />
 | 
			
		||||
    <application
 | 
			
		||||
            android:allowBackup="true"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,16 @@
 | 
			
		||||
package org.foxarmy.barcodescannerforemployees
 | 
			
		||||
 | 
			
		||||
//import com.google.mlkit.vision.codescanner.GmsBarcodeScannerOptions
 | 
			
		||||
import android.app.Activity
 | 
			
		||||
import android.content.Intent
 | 
			
		||||
import android.graphics.Bitmap
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import android.provider.MediaStore
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import android.widget.Toast
 | 
			
		||||
import androidx.activity.result.contract.ActivityResultContracts
 | 
			
		||||
import androidx.fragment.app.Fragment
 | 
			
		||||
import com.google.mlkit.vision.barcode.common.Barcode
 | 
			
		||||
import com.google.mlkit.vision.codescanner.GmsBarcodeScannerOptions
 | 
			
		||||
@@ -15,7 +20,9 @@ import org.foxarmy.barcodescannerforemployees.databinding.AddProductFragmentBind
 | 
			
		||||
/**
 | 
			
		||||
 * A simple [Fragment] subclass as the default destination in the navigation.
 | 
			
		||||
 */
 | 
			
		||||
class addProductFragment : Fragment() {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AddProductFragment : Fragment() {
 | 
			
		||||
 | 
			
		||||
    private var _binding: AddProductFragmentBinding? = null
 | 
			
		||||
 | 
			
		||||
@@ -33,25 +40,56 @@ class addProductFragment : Fragment() {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
 | 
			
		||||
        super.onActivityResult(requestCode, resultCode, data)
 | 
			
		||||
        when (requestCode) {
 | 
			
		||||
            200 -> {
 | 
			
		||||
                if (resultCode == Activity.RESULT_OK && data != null) {
 | 
			
		||||
                    binding.imageView.setImageBitmap(data.extras?.get("data") as Bitmap)
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    val requestPermissionLauncher = registerForActivityResult(
 | 
			
		||||
        ActivityResultContracts.RequestPermission()
 | 
			
		||||
    ) { isGranted ->
 | 
			
		||||
        if (isGranted) {
 | 
			
		||||
            val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
 | 
			
		||||
            startActivityForResult(cameraIntent, 200)
 | 
			
		||||
        } else {
 | 
			
		||||
            Toast.makeText(
 | 
			
		||||
                requireContext(),
 | 
			
		||||
                "I need permission for camera in order to take a picture!",
 | 
			
		||||
                Toast.LENGTH_LONG
 | 
			
		||||
            ).show()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
 | 
			
		||||
        super.onViewCreated(view, savedInstanceState)
 | 
			
		||||
 | 
			
		||||
        binding.takePictureButton.setOnClickListener {
 | 
			
		||||
            requestPermissionLauncher.launch(android.Manifest.permission.CAMERA)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        binding.scanButton.setOnClickListener {
 | 
			
		||||
//            findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
 | 
			
		||||
//            Toast.makeText(requireContext(), "Test", Toast.LENGTH_LONG).show()
 | 
			
		||||
            val options = GmsBarcodeScannerOptions.Builder()
 | 
			
		||||
                .setBarcodeFormats(
 | 
			
		||||
                    Barcode.FORMAT_EAN_13)
 | 
			
		||||
                    Barcode.FORMAT_EAN_13
 | 
			
		||||
                )
 | 
			
		||||
                .build()
 | 
			
		||||
            val scanner = GmsBarcodeScanning.getClient(requireContext())
 | 
			
		||||
            scanner.startScan()
 | 
			
		||||
                .addOnSuccessListener { barcode ->
 | 
			
		||||
                    // Task completed successfully
 | 
			
		||||
                    //Toast.makeText(requireContext(), barcode.rawValue, Toast.LENGTH_LONG).show()
 | 
			
		||||
                    binding.productName.setText(barcode.rawValue)
 | 
			
		||||
                }
 | 
			
		||||
                .addOnFailureListener { e ->
 | 
			
		||||
                    Toast.makeText(requireContext(), "Failed to scan barcode. Please, try again", Toast.LENGTH_LONG).show()
 | 
			
		||||
                    Toast.makeText(
 | 
			
		||||
                        requireContext(),
 | 
			
		||||
                        "Failed to scan barcode. Please, try again or enter data manually",
 | 
			
		||||
                        Toast.LENGTH_LONG
 | 
			
		||||
                    ).show()
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -0,0 +1,39 @@
 | 
			
		||||
package org.foxarmy.barcodescannerforemployees
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.database.sqlite.SQLiteDatabase
 | 
			
		||||
import android.database.sqlite.SQLiteOpenHelper
 | 
			
		||||
import android.provider.BaseColumns
 | 
			
		||||
 | 
			
		||||
object ProductContract {
 | 
			
		||||
    object ProductEntry :BaseColumns {
 | 
			
		||||
        const val TABLE_NAME = "products"
 | 
			
		||||
        const val PRODUCT_NAME = "name"
 | 
			
		||||
        const val PRODUCT_NET_WEIGHT = "net_weight"
 | 
			
		||||
        const val IMAGE_FILENAME = "image_filename"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const val SQL_CREATE_ENTRIES =
 | 
			
		||||
    "CREATE TABLE ${ProductContract.ProductEntry.TABLE_NAME} (" +
 | 
			
		||||
            "${BaseColumns._ID} INTEGER PRIMARY KEY," +
 | 
			
		||||
            "${ProductContract.ProductEntry.PRODUCT_NAME} TEXT," +
 | 
			
		||||
            "${ProductContract.ProductEntry.PRODUCT_NET_WEIGHT} TEXT" +
 | 
			
		||||
            "${ProductContract.ProductEntry.IMAGE_FILENAME} TEXT)"
 | 
			
		||||
 | 
			
		||||
class DBStorageController(context: Context) : SQLiteOpenHelper (context, DATABASE_NAME, null, DATABASE_VERSION) {
 | 
			
		||||
 | 
			
		||||
    override fun onCreate(db: SQLiteDatabase) {
 | 
			
		||||
        db.execSQL(SQL_CREATE_ENTRIES)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
 | 
			
		||||
        TODO("Not yet implemented")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        // If you change the database schema, you must increment the database version.
 | 
			
		||||
        const val DATABASE_VERSION = 1
 | 
			
		||||
        const val DATABASE_NAME = "FeedReader.db"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,15 +1,14 @@
 | 
			
		||||
package org.foxarmy.barcodescannerforemployees
 | 
			
		||||
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import com.google.android.material.snackbar.Snackbar
 | 
			
		||||
import android.provider.BaseColumns
 | 
			
		||||
import android.view.Menu
 | 
			
		||||
import android.view.MenuItem
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity
 | 
			
		||||
import androidx.navigation.findNavController
 | 
			
		||||
import androidx.navigation.ui.AppBarConfiguration
 | 
			
		||||
import androidx.navigation.ui.navigateUp
 | 
			
		||||
import androidx.navigation.ui.setupActionBarWithNavController
 | 
			
		||||
import android.view.Menu
 | 
			
		||||
import android.view.MenuItem
 | 
			
		||||
import android.widget.Toast
 | 
			
		||||
import org.foxarmy.barcodescannerforemployees.databinding.ActivityMainBinding
 | 
			
		||||
 | 
			
		||||
class MainActivity : AppCompatActivity() {
 | 
			
		||||
@@ -20,6 +19,34 @@ class MainActivity : AppCompatActivity() {
 | 
			
		||||
    override fun onCreate(savedInstanceState: Bundle?) {
 | 
			
		||||
        super.onCreate(savedInstanceState)
 | 
			
		||||
 | 
			
		||||
        val dbHelper = DBStorageController(applicationContext)
 | 
			
		||||
//        val db = dbHelper.writableDatabase
 | 
			
		||||
//
 | 
			
		||||
//        val values = ContentValues().apply {
 | 
			
		||||
//            put(ProductContract.ProductEntry.PRODUCT_NAME, "Имя продукта")
 | 
			
		||||
//            put(ProductContract.ProductEntry.PRODUCT_NET_WEIGHT, "0г")
 | 
			
		||||
//            put(ProductContract.ProductEntry.IMAGE_FILENAME, "image.png")
 | 
			
		||||
//        }
 | 
			
		||||
//
 | 
			
		||||
//        val netRowId = db?.insert(ProductContract.ProductEntry.TABLE_NAME, null, values)
 | 
			
		||||
 | 
			
		||||
        val db2 = dbHelper.readableDatabase
 | 
			
		||||
 | 
			
		||||
        val projection = arrayOf(BaseColumns._ID, ProductContract.ProductEntry.PRODUCT_NAME, ProductContract.ProductEntry.PRODUCT_NET_WEIGHT, ProductContract.ProductEntry.IMAGE_FILENAME)
 | 
			
		||||
 | 
			
		||||
        val selection = "${ProductContract.ProductEntry.PRODUCT_NAME} = ?"
 | 
			
		||||
        val selectionArgs = arrayOf("Имя продукта")
 | 
			
		||||
 | 
			
		||||
        val cursor = db2.query(
 | 
			
		||||
            ProductContract.ProductEntry.TABLE_NAME,
 | 
			
		||||
            null,
 | 
			
		||||
            selection,
 | 
			
		||||
            selectionArgs,
 | 
			
		||||
            null,
 | 
			
		||||
            null,
 | 
			
		||||
            null
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        binding = ActivityMainBinding.inflate(layoutInflater)
 | 
			
		||||
        setContentView(binding.root)
 | 
			
		||||
 | 
			
		||||
@@ -33,7 +60,8 @@ class MainActivity : AppCompatActivity() {
 | 
			
		||||
//            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
 | 
			
		||||
//                .setAction("Action", null)
 | 
			
		||||
//                .setAnchorView(R.id.add_product_fab).show()
 | 
			
		||||
            Toast.makeText(applicationContext, "Test", Toast.LENGTH_SHORT)
 | 
			
		||||
//            Toast.makeText(applicationContext, "Test", Toast.LENGTH_SHORT).show()
 | 
			
		||||
            navController.navigate(R.id.AddProductFragment)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ import org.foxarmy.barcodescannerforemployees.databinding.FragmentSecondBinding
 | 
			
		||||
/**
 | 
			
		||||
 * A simple [Fragment] subclass as the second destination in the navigation.
 | 
			
		||||
 */
 | 
			
		||||
class SecondFragment : Fragment() {
 | 
			
		||||
class MainScreenFragment : Fragment() {
 | 
			
		||||
 | 
			
		||||
    private var _binding: FragmentSecondBinding? = null
 | 
			
		||||
 | 
			
		||||
@@ -41,4 +41,5 @@ fun main () {
 | 
			
		||||
    val p = Parser("""\<table\s*class\=\"randomBarcodes\"\s*>""", """\<\/table\>""", """[ёЁ\u0401\u0451\u0410-\u044f\d\w\s]{16,}""")
 | 
			
		||||
    p.parse(Requester("https://barcode-list.ru", "barcode/RU/Поиск.htm?barcode=4680036915828", ).request("4680036915828"))
 | 
			
		||||
//    println(Requester("https://barcode-list.ru", "barcode/RU/Поиск.htm?barcode=4680036915828", ).request("4680036915828"))
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
package org.foxarmy.barcodescannerforemployees
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.provider.BaseColumns
 | 
			
		||||
 | 
			
		||||
object ProductContract {
 | 
			
		||||
    object ProductEntry :BaseColumns {
 | 
			
		||||
        const val TABLE_NAME = "products"
 | 
			
		||||
        const val PRODUCT_NAME = "name"
 | 
			
		||||
        const val PRODUCT_NET_WEIGHT = "net_weight"
 | 
			
		||||
        const val IMAGE_FILENAME = "image_filename"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class StorageController(context: Context) {
 | 
			
		||||
    val context = context
 | 
			
		||||
 | 
			
		||||
    fun initStorage() {
 | 
			
		||||
        val productContract = ProductContract
 | 
			
		||||
        val SQL_CREATE_ENTRIES =
 | 
			
		||||
            "CREATE TABLE ${ProductContract.ProductEntry.TABLE_NAME} (" +
 | 
			
		||||
                    "${BaseColumns._ID} INTEGER PRIMARY KEY," +
 | 
			
		||||
                    "${ProductContract.ProductEntry.PRODUCT_NAME} TEXT," +
 | 
			
		||||
                    "${ProductContract.ProductEntry.PRODUCT_NET_WEIGHT} TEXT" +
 | 
			
		||||
                    "${ProductContract.ProductEntry.IMAGE_FILENAME} TEXT)"
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
package org.foxarmy.barcodescannerforemployees
 | 
			
		||||
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import androidx.fragment.app.Fragment
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A simple [Fragment] subclass.
 | 
			
		||||
 * Use the [StorageFragment.newInstance] factory method to
 | 
			
		||||
 * create an instance of this fragment.
 | 
			
		||||
 */
 | 
			
		||||
class StorageFragment : Fragment() {
 | 
			
		||||
 | 
			
		||||
    override fun onCreate(savedInstanceState: Bundle?) {
 | 
			
		||||
        super.onCreate(savedInstanceState)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onCreateView(
 | 
			
		||||
        inflater: LayoutInflater, container: ViewGroup?,
 | 
			
		||||
        savedInstanceState: Bundle?
 | 
			
		||||
    ): View? {
 | 
			
		||||
        // Inflate the layout for this fragment
 | 
			
		||||
        return inflater.inflate(R.layout.fragment_storage, container, false)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -5,29 +5,66 @@
 | 
			
		||||
        xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="match_parent"
 | 
			
		||||
        tools:context=".addProductFragment">
 | 
			
		||||
        tools:context=".AddProductFragment">
 | 
			
		||||
    <androidx.constraintlayout.widget.ConstraintLayout
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
            android:layout_width="wrap_content"
 | 
			
		||||
            android:layout_height="wrap_content"
 | 
			
		||||
            android:padding="16dp">
 | 
			
		||||
        <Button
 | 
			
		||||
                android:id="@+id/scan_button"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:layout_width="100dp"
 | 
			
		||||
                android:layout_height="50dp"
 | 
			
		||||
                android:text="@string/scan_label"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="parent"
 | 
			
		||||
                app:layout_constraintStart_toStartOf="parent"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent"/>
 | 
			
		||||
                app:layout_constraintTop_toBottomOf="@+id/editTextText"
 | 
			
		||||
                android:layout_marginTop="25dp"/>
 | 
			
		||||
        <ImageView
 | 
			
		||||
                android:src="@android:drawable/ic_menu_camera"
 | 
			
		||||
                android:layout_width="356dp"
 | 
			
		||||
                android:layout_height="303dp" android:id="@+id/imageView"
 | 
			
		||||
                android:layout_marginBottom="25dp"
 | 
			
		||||
                app:layout_constraintBottom_toTopOf="@+id/productName" app:layout_constraintStart_toStartOf="parent"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"
 | 
			
		||||
                android:layout_marginTop="15dp"/>
 | 
			
		||||
        <EditText
 | 
			
		||||
                android:layout_width="365dp"
 | 
			
		||||
                android:layout_height="42dp"
 | 
			
		||||
                android:layout_width="350dp"
 | 
			
		||||
                android:layout_height="50dp"
 | 
			
		||||
                android:inputType="text"
 | 
			
		||||
                android:text="@string/product_name_label"
 | 
			
		||||
                android:ems="10"
 | 
			
		||||
                android:id="@+id/productName"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent"
 | 
			
		||||
                android:layout_marginTop="162dp" app:layout_constraintStart_toStartOf="parent"
 | 
			
		||||
                android:layout_marginStart="11dp"/>
 | 
			
		||||
                app:layout_constraintStart_toStartOf="parent"
 | 
			
		||||
                android:layout_marginStart="8dp" android:layout_marginEnd="8dp"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="parent"
 | 
			
		||||
                app:layout_constraintBottom_toTopOf="@+id/editTextText"
 | 
			
		||||
                app:layout_constraintHorizontal_bias="0.5"
 | 
			
		||||
                android:visibility="visible" android:hint="@string/product_name_label" android:textColorHint="#737373"
 | 
			
		||||
                app:layout_constraintTop_toBottomOf="@+id/imageView"/>
 | 
			
		||||
        <EditText
 | 
			
		||||
                android:layout_width="350dp"
 | 
			
		||||
                android:layout_height="50dp"
 | 
			
		||||
                android:inputType="text"
 | 
			
		||||
                android:ems="10"
 | 
			
		||||
                android:id="@+id/editTextText"
 | 
			
		||||
                app:layout_constraintStart_toStartOf="parent"
 | 
			
		||||
                android:layout_marginStart="8dp"
 | 
			
		||||
                android:layout_marginEnd="8dp"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="parent"
 | 
			
		||||
                android:visibility="visible" android:hint="@string/netWeight" android:textColorHint="#737373"
 | 
			
		||||
                app:layout_constraintTop_toBottomOf="@+id/productName"/>
 | 
			
		||||
        <Button
 | 
			
		||||
                android:text="@string/saveButton"
 | 
			
		||||
                android:layout_width="100dp"
 | 
			
		||||
                android:layout_height="50dp" android:id="@+id/saveButton"
 | 
			
		||||
                app:layout_constraintTop_toBottomOf="@+id/editTextText"
 | 
			
		||||
                android:layout_marginTop="25dp" app:layout_constraintEnd_toEndOf="parent"/>
 | 
			
		||||
        <Button
 | 
			
		||||
                android:text="@string/takePicture"
 | 
			
		||||
                android:layout_width="100dp"
 | 
			
		||||
                android:layout_height="55dp" android:id="@+id/takePictureButton"
 | 
			
		||||
                app:layout_constraintTop_toBottomOf="@+id/editTextText"
 | 
			
		||||
                android:layout_marginTop="24dp" app:layout_constraintStart_toEndOf="@+id/scan_button"
 | 
			
		||||
                android:layout_marginStart="33dp" app:layout_constraintEnd_toStartOf="@+id/saveButton"
 | 
			
		||||
                android:layout_marginEnd="6dp" app:layout_constraintHorizontal_bias="0.0"/>
 | 
			
		||||
 | 
			
		||||
    </androidx.constraintlayout.widget.ConstraintLayout>
 | 
			
		||||
</androidx.core.widget.NestedScrollView>
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
        xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="match_parent"
 | 
			
		||||
        tools:context=".SecondFragment">
 | 
			
		||||
        tools:context=".MainScreenFragment">
 | 
			
		||||
    <androidx.constraintlayout.widget.ConstraintLayout
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								app/src/main/res/layout/fragment_storage.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								app/src/main/res/layout/fragment_storage.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
             xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
             android:layout_width="match_parent"
 | 
			
		||||
             android:layout_height="match_parent"
 | 
			
		||||
             tools:context=".StorageFragment">
 | 
			
		||||
    <androidx.constraintlayout.widget.ConstraintLayout
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="match_parent">
 | 
			
		||||
 | 
			
		||||
    </androidx.constraintlayout.widget.ConstraintLayout>
 | 
			
		||||
</FrameLayout>
 | 
			
		||||
@@ -3,26 +3,31 @@
 | 
			
		||||
            xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
			
		||||
            xmlns:tools="http://schemas.android.com/tools"
 | 
			
		||||
            android:id="@+id/nav_graph"
 | 
			
		||||
            app:startDestination="@id/FirstFragment">
 | 
			
		||||
            app:startDestination="@id/storageFragment">
 | 
			
		||||
 | 
			
		||||
    <fragment
 | 
			
		||||
            android:id="@+id/FirstFragment"
 | 
			
		||||
            android:name="org.foxarmy.barcodescannerforemployees.addProductFragment"
 | 
			
		||||
            android:id="@+id/AddProductFragment"
 | 
			
		||||
            android:name="org.foxarmy.barcodescannerforemployees.AddProductFragment"
 | 
			
		||||
            android:label="@string/first_fragment_label"
 | 
			
		||||
            tools:layout="@layout/add_product_fragment">
 | 
			
		||||
 | 
			
		||||
        <action
 | 
			
		||||
                android:id="@+id/action_FirstFragment_to_SecondFragment"
 | 
			
		||||
                app:destination="@id/SecondFragment"/>
 | 
			
		||||
                app:destination="@id/MainScreenFragment"/>
 | 
			
		||||
    </fragment>
 | 
			
		||||
    <fragment
 | 
			
		||||
            android:id="@+id/SecondFragment"
 | 
			
		||||
            android:name="org.foxarmy.barcodescannerforemployees.SecondFragment"
 | 
			
		||||
            android:id="@+id/MainScreenFragment"
 | 
			
		||||
            android:name="org.foxarmy.barcodescannerforemployees.MainScreenFragment"
 | 
			
		||||
            android:label="@string/second_fragment_label"
 | 
			
		||||
            tools:layout="@layout/fragment_second">
 | 
			
		||||
 | 
			
		||||
        <action
 | 
			
		||||
                android:id="@+id/action_SecondFragment_to_FirstFragment"
 | 
			
		||||
                app:destination="@id/FirstFragment"/>
 | 
			
		||||
                app:destination="@id/AddProductFragment"/>
 | 
			
		||||
    </fragment>
 | 
			
		||||
    <fragment android:id="@+id/storageFragment" android:name="org.foxarmy.barcodescannerforemployees.StorageFragment"
 | 
			
		||||
              android:label="fragment_storage" tools:layout="@layout/fragment_storage">
 | 
			
		||||
        <action android:id="@+id/action_storageFragment_to_AddProductFragment"
 | 
			
		||||
                app:destination="@id/AddProductFragment"/>
 | 
			
		||||
    </fragment>
 | 
			
		||||
</navigation>
 | 
			
		||||
@@ -7,4 +7,9 @@
 | 
			
		||||
    <string name="scan_label">Scan</string>
 | 
			
		||||
    <string name="previous">Previous</string>
 | 
			
		||||
    <string name="product_name_label">Product name</string>
 | 
			
		||||
    <string name="netWeight">Net weight</string>
 | 
			
		||||
    <string name="saveButton">Save</string>
 | 
			
		||||
    <string name="takePicture">Take picture</string>
 | 
			
		||||
    <!-- TODO: Remove or change this placeholder text -->
 | 
			
		||||
    <string name="hello_blank_fragment">Hello blank fragment</string>
 | 
			
		||||
</resources>
 | 
			
		||||
		Reference in New Issue
	
	Block a user