summaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/AndroidManifest.xml3
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/MainActivity.java16
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/SharedPreferencesManager.java44
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/ui/barcode_gen/BarcodeGenFragment.java81
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/ui/qrcode_gen/QRCodeGenFragment.java98
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsFragment.java54
-rw-r--r--app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsViewModel.java7
-rw-r--r--app/src/main/res/drawable/ic_baseline_settings_24.xml5
-rw-r--r--app/src/main/res/layout/fragment_barcode_gen.xml10
-rw-r--r--app/src/main/res/layout/fragment_qrcode_gen.xml44
-rw-r--r--app/src/main/res/layout/fragment_settings.xml55
-rw-r--r--app/src/main/res/menu/activity_main_drawer.xml8
-rw-r--r--app/src/main/res/menu/main.xml10
-rw-r--r--app/src/main/res/navigation/mobile_navigation.xml6
-rw-r--r--app/src/main/res/values/strings.xml1
15 files changed, 408 insertions, 34 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 56d55cb..c652fe6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
diff --git a/app/src/main/java/com/jopek/lectordecodi/MainActivity.java b/app/src/main/java/com/jopek/lectordecodi/MainActivity.java
index 95cfb87..bb925d3 100644
--- a/app/src/main/java/com/jopek/lectordecodi/MainActivity.java
+++ b/app/src/main/java/com/jopek/lectordecodi/MainActivity.java
@@ -1,23 +1,21 @@
package com.jopek.lectordecodi;
import android.os.Bundle;
-import android.view.View;
import android.view.Menu;
-import com.google.android.material.snackbar.Snackbar;
-import com.google.android.material.navigation.NavigationView;
-
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.drawerlayout.widget.DrawerLayout;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
-import androidx.drawerlayout.widget.DrawerLayout;
-import androidx.appcompat.app.AppCompatActivity;
+import com.google.android.material.navigation.NavigationView;
import com.jopek.lectordecodi.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
+ public static String TAG = "maks";
private AppBarConfiguration mAppBarConfiguration;
private ActivityMainBinding binding;
@@ -31,10 +29,9 @@ public class MainActivity extends AppCompatActivity {
setSupportActionBar(binding.appBarMain.toolbar);
DrawerLayout drawer = binding.drawerLayout;
NavigationView navigationView = binding.navView;
- // Passing each menu ID as a set of Ids because each
- // menu should be considered as top level destinations.
+
mAppBarConfiguration = new AppBarConfiguration.Builder(
- R.id.nav_reader, R.id.nav_barcode_gen, R.id.nav_qrcode_gen)
+ R.id.nav_reader, R.id.nav_barcode_gen, R.id.nav_qrcode_gen, R.id.nav_settings)
.setOpenableLayout(drawer)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
@@ -55,4 +52,5 @@ public class MainActivity extends AppCompatActivity {
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|| super.onSupportNavigateUp();
}
+
} \ No newline at end of file
diff --git a/app/src/main/java/com/jopek/lectordecodi/SharedPreferencesManager.java b/app/src/main/java/com/jopek/lectordecodi/SharedPreferencesManager.java
new file mode 100644
index 0000000..33e51fb
--- /dev/null
+++ b/app/src/main/java/com/jopek/lectordecodi/SharedPreferencesManager.java
@@ -0,0 +1,44 @@
+package com.jopek.lectordecodi;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Environment;
+
+import java.util.Map;
+
+public class SharedPreferencesManager {
+ private static SharedPreferences getPrefs(Context context) {
+ return context.getSharedPreferences("com.jopek.lectordecodi", Context.MODE_PRIVATE);
+ }
+ public static <T> T getFromPrefs(Context context, String key, T def) {
+ SharedPreferences prefs = getPrefs(context);
+ Map map = prefs.getAll();
+ T fromPrefs = (T) map.getOrDefault(key, def);
+
+ return fromPrefs;
+ }
+ public static String getWhereSave(Context context) {
+ String def = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + "/lector-de-codi";
+ return getFromPrefs(context, "whereSave", def);
+ }
+ public static boolean setWhereSave(Context context, String whereSave) {
+ SharedPreferences prefs = getPrefs(context);
+ return prefs.edit().putString("whereSave", whereSave).commit();
+ }
+ public static int getSaveWidth(Context context) {
+ int def = 400;
+ return getFromPrefs(context, "saveWidth", def);
+ }
+ public static boolean setSaveWidth(Context context, int saveWidth) {
+ SharedPreferences prefs = getPrefs(context);
+ return prefs.edit().putInt("saveWidth", saveWidth).commit();
+ }
+ public static int getSaveHeight(Context context) {
+ int def = 400;
+ return getFromPrefs(context, "saveHeight", def);
+ }
+ public static boolean setSaveHeight(Context context, int saveHeight) {
+ SharedPreferences prefs = getPrefs(context);
+ return prefs.edit().putInt("saveHeight", saveHeight).commit();
+ }
+}
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 7ccda24..f13edee 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,6 +1,14 @@
package com.jopek.lectordecodi.ui.barcode_gen;
+import static com.jopek.lectordecodi.MainActivity.TAG;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveHeight;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveWidth;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getWhereSave;
+
+import android.Manifest;
+import android.content.pm.PackageManager;
import android.graphics.Bitmap;
+import android.media.MediaScannerConnection;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
@@ -9,9 +17,10 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
-import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
@@ -19,17 +28,20 @@ import com.google.zxing.BarcodeFormat;
import com.jopek.lectordecodi.databinding.FragmentBarcodeGenBinding;
import com.journeyapps.barcodescanner.BarcodeEncoder;
-public class BarcodeGenFragment extends Fragment {
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Random;
+public class BarcodeGenFragment extends Fragment {
private FragmentBarcodeGenBinding binding;
private EditText etInput;
private ImageView img;
private Button btnGen;
+ private Button btnSave;
+ private Bitmap code;
- public View onCreateView(@NonNull LayoutInflater inflater,
- ViewGroup container, Bundle savedInstanceState) {
- BarcodeGenViewModel barcodeGenViewModel =
- new ViewModelProvider(this).get(BarcodeGenViewModel.class);
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ BarcodeGenViewModel barcodeGenViewModel = new ViewModelProvider(this).get(BarcodeGenViewModel.class);
binding = FragmentBarcodeGenBinding.inflate(inflater, container, false);
View root = binding.getRoot();
@@ -37,21 +49,68 @@ public class BarcodeGenFragment extends Fragment {
etInput = binding.plainTextInput;
img = binding.barcodeImg;
btnGen = binding.btnGenBarcode;
+ btnSave = binding.btnSaveBarcode;
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) {
-
+ code = barcodeEncoder.encodeBitmap(String.valueOf(etInput.getText()), BarcodeFormat.CODE_128, getSaveWidth(getActivity()), getSaveHeight(getActivity()));
+ img.setImageBitmap(code);
+ } catch (Exception e) {
+ Log.d(TAG, "onCreateView: ", e);
+ }
+ });
+ btnSave.setOnClickListener(v -> {
+ if (getActivity().checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
+ } else {
+ saveBitmap();
}
});
return root;
}
+ private void saveBitmap() {
+ //MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), code, "UwU" , "OwO");
+ File myDir = new File(getWhereSave(getActivity()));
+ Log.d(TAG, "onCreateView: " + myDir.getAbsolutePath());
+ myDir.mkdir();
+ Random generator = new Random();
+
+ int n = 10000;
+ n = generator.nextInt(n);
+ String fname = "image-" + n + ".jpg";
+ File file = new File(myDir, fname);
+ try {
+ Log.d(TAG, file.getAbsolutePath());
+ Log.d(TAG, String.valueOf(file.createNewFile()));
+ FileOutputStream out = new FileOutputStream(file);
+ code.compress(Bitmap.CompressFormat.JPEG, 90, out);
+ // sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
+ // Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
+ out.flush();
+ out.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return;
+ }
+ MediaScannerConnection.scanFile(getActivity(), new String[]{file.toString()}, null, (path, uri) -> {
+ Log.i("ExternalStorage", "Scanned " + path + ":");
+ Log.i("ExternalStorage", "-> uri=" + uri);
+ });
+ Toast.makeText(getActivity(), "Barcode saved", Toast.LENGTH_LONG).show();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ Log.v(TAG, "Permission: " + permissions[0] + "was " + grantResults[0]);
+ saveBitmap();
+ }
+ }
+
@Override
public void onDestroyView() {
super.onDestroyView();
diff --git a/app/src/main/java/com/jopek/lectordecodi/ui/qrcode_gen/QRCodeGenFragment.java b/app/src/main/java/com/jopek/lectordecodi/ui/qrcode_gen/QRCodeGenFragment.java
index c3ec155..b2d7e6c 100644
--- a/app/src/main/java/com/jopek/lectordecodi/ui/qrcode_gen/QRCodeGenFragment.java
+++ b/app/src/main/java/com/jopek/lectordecodi/ui/qrcode_gen/QRCodeGenFragment.java
@@ -1,34 +1,118 @@
package com.jopek.lectordecodi.ui.qrcode_gen;
+import static com.jopek.lectordecodi.MainActivity.TAG;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveHeight;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveWidth;
+import static com.jopek.lectordecodi.SharedPreferencesManager.getWhereSave;
+
+import android.Manifest;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.media.MediaScannerConnection;
import android.os.Bundle;
+import android.os.Environment;
+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 android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import com.google.zxing.BarcodeFormat;
import com.jopek.lectordecodi.databinding.FragmentQrcodeGenBinding;
+import com.journeyapps.barcodescanner.BarcodeEncoder;
-public class QRCodeGenFragment extends Fragment {
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Random;
+public class QRCodeGenFragment extends Fragment {
private FragmentQrcodeGenBinding binding;
+ private EditText etInput;
+ private ImageView img;
+ private Button btnGen;
+ private Button btnSave;
+ private Bitmap code;
- public View onCreateView(@NonNull LayoutInflater inflater,
- ViewGroup container, Bundle savedInstanceState) {
- QRCodeGenViewModel QRCodeGenViewModel =
- new ViewModelProvider(this).get(QRCodeGenViewModel.class);
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ QRCodeGenViewModel qrCodeGenViewModel = new ViewModelProvider(this).get(QRCodeGenViewModel.class);
binding = FragmentQrcodeGenBinding.inflate(inflater, container, false);
View root = binding.getRoot();
- final TextView textView = binding.textSlideshow;
- QRCodeGenViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
+ etInput = binding.plainTextInputt;
+ img = binding.barcodeImg;
+ btnGen = binding.btnGenBarcode;
+ btnSave = binding.btnSaveBarcode;
+
+ btnGen.setOnClickListener(v -> {
+ try {
+ BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
+ code = barcodeEncoder.encodeBitmap(String.valueOf(etInput.getText()), BarcodeFormat.QR_CODE, getSaveWidth(getActivity()), getSaveHeight(getActivity()));
+ img.setImageBitmap(code);
+ } catch (Exception e) {
+ Log.d(TAG, "onCreateView: ", e);
+ }
+ });
+ btnSave.setOnClickListener(v -> {
+ if (getActivity().checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
+ } else {
+ saveBitmap();
+ }
+ });
+
return root;
}
+ private void saveBitmap() {
+ //MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), code, "UwU" , "OwO");
+ File myDir = new File(getWhereSave(getActivity()));
+ Log.d(TAG, "onCreateView: " + myDir.getAbsolutePath());
+ myDir.mkdir();
+ Random generator = new Random();
+
+ int n = 10000;
+ n = generator.nextInt(n);
+ String fname = "image-" + n + ".jpg";
+ File file = new File(myDir, fname);
+ try {
+ Log.d(TAG, file.getAbsolutePath());
+ Log.d(TAG, String.valueOf(file.createNewFile()));
+ FileOutputStream out = new FileOutputStream(file);
+ code.compress(Bitmap.CompressFormat.JPEG, 90, out);
+ // sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
+ // Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
+ out.flush();
+ out.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return;
+ }
+ MediaScannerConnection.scanFile(getActivity(), new String[]{file.toString()}, null, (path, uri) -> {
+ Log.i("ExternalStorage", "Scanned " + path + ":");
+ Log.i("ExternalStorage", "-> uri=" + uri);
+ });
+ Toast.makeText(getActivity(), "QRCode saved", Toast.LENGTH_LONG).show();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ Log.v(TAG, "Permission: " + permissions[0] + "was " + grantResults[0]);
+ saveBitmap();
+ }
+ }
+
@Override
public void onDestroyView() {
super.onDestroyView();
diff --git a/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsFragment.java b/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsFragment.java
new file mode 100644
index 0000000..0f68cf5
--- /dev/null
+++ b/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsFragment.java
@@ -0,0 +1,54 @@
+package com.jopek.lectordecodi.ui.settings;
+
+import static com.jopek.lectordecodi.SharedPreferencesManager.getWhereSave;
+
+import androidx.lifecycle.ViewModelProvider;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.os.Environment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jopek.lectordecodi.R;
+import com.jopek.lectordecodi.databinding.FragmentReaderBinding;
+import com.jopek.lectordecodi.databinding.FragmentSettingsBinding;
+
+import java.io.File;
+
+public class SettingsFragment extends Fragment {
+
+ private SettingsViewModel mViewModel;
+ private FragmentSettingsBinding binding;
+
+ public static SettingsFragment newInstance() {
+ return new SettingsFragment();
+ }
+
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+
+ binding = FragmentSettingsBinding.inflate(inflater, container, false);
+ View root = binding.getRoot();
+
+ binding.etWhereSave.setText(getWhereSave(getActivity()));
+
+ return root;
+ }
+
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ mViewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
+ // TODO: Use the ViewModel
+ }
+
+} \ No newline at end of file
diff --git a/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsViewModel.java b/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsViewModel.java
new file mode 100644
index 0000000..1347766
--- /dev/null
+++ b/app/src/main/java/com/jopek/lectordecodi/ui/settings/SettingsViewModel.java
@@ -0,0 +1,7 @@
+package com.jopek.lectordecodi.ui.settings;
+
+import androidx.lifecycle.ViewModel;
+
+public class SettingsViewModel extends ViewModel {
+ // TODO: Implement the ViewModel
+} \ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_baseline_settings_24.xml b/app/src/main/res/drawable/ic_baseline_settings_24.xml
new file mode 100644
index 0000000..298a5a1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_settings_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#000000"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
+</vector>
diff --git a/app/src/main/res/layout/fragment_barcode_gen.xml b/app/src/main/res/layout/fragment_barcode_gen.xml
index caec265..c90f4a7 100644
--- a/app/src/main/res/layout/fragment_barcode_gen.xml
+++ b/app/src/main/res/layout/fragment_barcode_gen.xml
@@ -39,7 +39,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
-
<ImageView
android:id="@+id/barcode_img"
android:layout_width="wrap_content"
@@ -53,4 +52,13 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+ <Button
+ android:id="@+id/btn_save_barcode"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Save Barcode"
+ android:layout_marginBottom="80dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_qrcode_gen.xml b/app/src/main/res/layout/fragment_qrcode_gen.xml
index c35eb6c..ebe8c00 100644
--- a/app/src/main/res/layout/fragment_qrcode_gen.xml
+++ b/app/src/main/res/layout/fragment_qrcode_gen.xml
@@ -7,9 +7,42 @@
tools:context=".ui.qrcode_gen.QRCodeGenFragment">
<TextView
- android:id="@+id/text_slideshow"
+ android:id="@id/edit_text_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:text="Gimme text to encode in qrcode"
+ android:textAlignment="center"
+ android:layout_marginTop="40dp"
+ android:textSize="20sp"
+ app:layout_constraintStart_toEndOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ <EditText
+ android:labelFor="@+id/edit_text_label"
+ android:id="@+id/plain_text_inputt"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="text"
+ android:layout_marginTop="80dp"
+ app:layout_constraintStart_toEndOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ <Button
+ android:id="@+id/btn_gen_barcode"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Generate QRcode"
+ android:layout_marginTop="160dp"
+ app:layout_constraintStart_toEndOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ <ImageView
+ android:id="@+id/barcode_img"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
@@ -19,4 +52,13 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+ <Button
+ android:id="@+id/btn_save_barcode"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Save QRCode"
+ android:layout_marginBottom="80dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 0000000..ac387fb
--- /dev/null
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,55 @@
+<?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=".ui.settings.SettingsFragment">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Where to save pictures?"
+ android:textAlignment="center"
+ android:layout_marginTop="40dp"
+ android:gravity="center"
+ android:textSize="20sp" />
+ <EditText
+ android:id="@+id/et_where_save"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="text"
+ android:layout_marginTop="10dp" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Width of saved image"
+ android:textAlignment="center"
+ android:layout_marginTop="40dp"
+ android:gravity="center"
+ android:textSize="20sp" />
+ <EditText
+ android:id="@+id/et_save_width"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="numberDecimal"
+ android:layout_marginTop="10dp" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Height of saved image"
+ android:textAlignment="center"
+ android:layout_marginTop="40dp"
+ android:gravity="center"
+ android:textSize="20sp" />
+ <EditText
+ android:id="@+id/et_save_height"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="numberDecimal"
+ android:layout_marginTop="10dp" />
+ </LinearLayout>
+</FrameLayout> \ No newline at end of file
diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml
index b8ed546..6d45cac 100644
--- a/app/src/main/res/menu/activity_main_drawer.xml
+++ b/app/src/main/res/menu/activity_main_drawer.xml
@@ -24,5 +24,13 @@
android:title="@string/menu_qrcode_gen" />
</menu>
</item>
+ <item android:title="SETTINGS">
+ <menu>
+ <item
+ android:id="@+id/nav_settings"
+ android:icon="@drawable/ic_baseline_settings_24"
+ android:title="Settings" />
+ </menu>
+ </item>
</group>
</menu> \ No newline at end of file
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
index 412d5f8..28b13c5 100644
--- a/app/src/main/res/menu/main.xml
+++ b/app/src/main/res/menu/main.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
- <item
- android:id="@+id/action_settings"
- android:orderInCategory="100"
- android:title="@string/action_settings"
- app:showAsAction="never" />
+<!-- <item-->
+<!-- android:id="@+id/action_settings"-->
+<!-- android:orderInCategory="100"-->
+<!-- android:title="@string/action_settings"-->
+<!-- app:showAsAction="never" />-->
</menu> \ No newline at end of file
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 23328c9..86c8cd6 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -22,4 +22,10 @@
android:name="com.jopek.lectordecodi.ui.qrcode_gen.QRCodeGenFragment"
android:label="@string/menu_qrcode_gen"
tools:layout="@layout/fragment_qrcode_gen" />
+
+ <fragment
+ android:id="@+id/nav_settings"
+ android:name="com.jopek.lectordecodi.ui.settings.SettingsFragment"
+ android:label="@string/menu_settings"
+ tools:layout="@layout/fragment_qrcode_gen" />
</navigation> \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1a3ac07..7c65a0c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,4 +13,5 @@
<string name="menu_reader">QbarRCode Reader</string>
<string name="menu_barcode_gen">Barcode generator</string>
<string name="menu_qrcode_gen">QR Code Generator</string>
+ <string name="menu_settings">Settings</string>
</resources> \ No newline at end of file