From e9d0beaa1ebf8f1ca74e8b374203cbaa87add2e9 Mon Sep 17 00:00:00 2001 From: Petr Rudichev Date: Thu, 20 Feb 2025 16:46:20 +0300 Subject: [PATCH] feat: added --- .../work/ui/screens/QrFragment.java | 61 +++++----------- .../work/ui/screens/QrScanFragment.java | 66 ++++++++++++++++++ .../res/drawable/background_qr_fragment.png | Bin 0 -> 6261 bytes app/src/main/res/drawable/qr_code.png | Bin 0 -> 7136 bytes app/src/main/res/layout/fragment_qr.xml | 46 ++++++++++-- app/src/main/res/layout/fragment_qr_scan.xml | 22 ++++++ app/src/main/res/values/strings.xml | 3 + 7 files changed, 150 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/ru/myitschool/work/ui/screens/QrScanFragment.java create mode 100644 app/src/main/res/drawable/background_qr_fragment.png create mode 100644 app/src/main/res/drawable/qr_code.png create mode 100644 app/src/main/res/layout/fragment_qr_scan.xml diff --git a/app/src/main/java/ru/myitschool/work/ui/screens/QrFragment.java b/app/src/main/java/ru/myitschool/work/ui/screens/QrFragment.java index c3ef535..044cf68 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screens/QrFragment.java +++ b/app/src/main/java/ru/myitschool/work/ui/screens/QrFragment.java @@ -2,6 +2,8 @@ package ru.myitschool.work.ui.screens; import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; @@ -9,58 +11,31 @@ import android.view.View; import android.view.ViewGroup; import ru.myitschool.work.R; +import ru.myitschool.work.databinding.FragmentQrBinding; -/** - * A simple {@link Fragment} subclass. - * Use the {@link QrFragment#newInstance} factory method to - * create an instance of this fragment. - */ public class QrFragment extends Fragment { + private FragmentQrBinding binding; - // TODO: Rename parameter arguments, choose names that match - // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String ARG_PARAM1 = "param1"; - private static final String ARG_PARAM2 = "param2"; + public QrFragment() { super(R.layout.fragment_qr); } - // TODO: Rename and change types of parameters - private String mParam1; - private String mParam2; + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); - public QrFragment() { - // Required empty public constructor + binding = FragmentQrBinding.bind(view); + + binding.qrButton.setOnClickListener(this::qrScanListener); } - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment QrFragment. - */ - // TODO: Rename and change types and number of parameters - public static QrFragment newInstance(String param1, String param2) { - QrFragment fragment = new QrFragment(); - Bundle args = new Bundle(); - args.putString(ARG_PARAM1, param1); - args.putString(ARG_PARAM2, param2); - fragment.setArguments(args); - return fragment; + private void qrScanListener(View view) { + this.requireActivity().getSupportFragmentManager().beginTransaction() + .replace(R.id.fragment_container_view, QrScanFragment.class, null) + .addToBackStack("").commit(); } @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); - mParam2 = getArguments().getString(ARG_PARAM2); - } - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_qr, container, false); + public void onDestroyView() { + binding = null; + super.onDestroyView(); } } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screens/QrScanFragment.java b/app/src/main/java/ru/myitschool/work/ui/screens/QrScanFragment.java new file mode 100644 index 0000000..b9a7521 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/screens/QrScanFragment.java @@ -0,0 +1,66 @@ +package ru.myitschool.work.ui.screens; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import ru.myitschool.work.R; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link QrScanFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class QrScanFragment extends Fragment { + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public QrScanFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment QrScanFragment. + */ + // TODO: Rename and change types and number of parameters + public static QrScanFragment newInstance(String param1, String param2) { + QrScanFragment fragment = new QrScanFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_qr_scan, container, false); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/background_qr_fragment.png b/app/src/main/res/drawable/background_qr_fragment.png new file mode 100644 index 0000000000000000000000000000000000000000..83a7faf5666cf5cf67b55237a7afb5833fc9c489 GIT binary patch literal 6261 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 JjZM(q{{og2*|q=x literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/qr_code.png b/app/src/main/res/drawable/qr_code.png new file mode 100644 index 0000000000000000000000000000000000000000..cb755295e9d46182d780eae8cf98a0daadd95423 GIT binary patch literal 7136 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 R$OAbPHDzt3S_SLy{{a~w!JhyC literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/fragment_qr.xml b/app/src/main/res/layout/fragment_qr.xml index f2156ff..e674ef9 100644 --- a/app/src/main/res/layout/fragment_qr.xml +++ b/app/src/main/res/layout/fragment_qr.xml @@ -3,12 +3,48 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.screens.QrFragment"> + xmlns:app="http://schemas.android.com/apk/res-auto" + tools:context=".ui.screens.QrFragment" + android:background="@drawable/background_qr_fragment"> - - + android:layout_height="match_parent"> + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_qr_scan.xml b/app/src/main/res/layout/fragment_qr_scan.xml new file mode 100644 index 0000000..2987f31 --- /dev/null +++ b/app/src/main/res/layout/fragment_qr_scan.xml @@ -0,0 +1,22 @@ + + + + + + + + + + \ 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 4bb3646..ce2e6ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,4 +42,7 @@ Войти Пароль Вход + qr_code + 500 часов + Сессии за последние 30 дней: \ No newline at end of file