package com.kolobochki.memory;

import android.os.Bundle;

import androidx.activity.OnBackPressedCallback;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.os.Bundle;
import com.kolobochki.memory.R;
import com.kolobochki.memory.databinding.FragmentDashboardBinding;
import com.kolobochki.memory.databinding.FragmentInfoBinding;

public class fragment_info extends Fragment {

    private FragmentInfoBinding binding;
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    private TextView helpText;

    private String mParam1;
    private String mParam2;
    private OnBackPressedCallback backPressedCallback;
    private String previousTitle;

    public fragment_info() {
        // Required empty public constructor
    }

    public static fragment_info newInstance(String param1, String param2) {
        fragment_info fragment = new fragment_info();
        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);
        }

        if (getActivity() instanceof AppCompatActivity) {
            ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
            if (actionBar != null) {
                actionBar.setTitle("Инструкция");
            }
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        binding = com.kolobochki.memory.databinding.FragmentInfoBinding .inflate(inflater, container, false);
        View root = binding.getRoot();

        String instructions =
                "1. Найти пары:\n" +
                        "   - На экране карточки перевернуты рубашкой вверх\n" +
                        "   - Открывайте по две карточки, чтобы найти пары\n" +
                        "   - Совпавшие карточки остаются открытыми\n" +
                        "   - Цель: открыть все пары за минимальное время\n\n" +

                        "2. Саймон говорит:\n" +
                        "   - Саймон показывает последовательность цветов\n" +
                        "   - Повторите показанную последовательность\n" +
                        "   - С каждым уровнем последовательность удлиняется\n" +
                        "   - Ошибка завершает игру\n\n" +

                        "3. Числовая матрица:\n" +
                        "   - Запомните расположение чисел в матрице\n" +
                        "   - Восстановите числа после их исчезновения\n" +
                        "   - Сложность повышается с каждым уровнем\n\n" +

                        "4. Найти лишнее:\n" +
                        "   - Среди нескольких объектов найдите отличающийся\n" +
                        "   - Выберите лишний объект\n" +
                        "   - Время на ответ ограничено";

        binding.textView.setText(instructions);

        return root;
    }

    private void navigateHome() {
        NavController navController = Navigation.findNavController(requireView());
        navController.popBackStack();
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        if (backPressedCallback != null) {
            backPressedCallback.remove();
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        if (getActivity() != null && ((AppCompatActivity)getActivity()).getSupportActionBar() != null) {
            ((AppCompatActivity)getActivity()).getSupportActionBar().hide();
        }
    }

    @Override
    public void onPause() {
        super.onPause();
        if (getActivity() != null && ((AppCompatActivity)getActivity()).getSupportActionBar() != null) {
            ((AppCompatActivity)getActivity()).getSupportActionBar().show();
        }

        if (getActivity() instanceof AppCompatActivity) {
            ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
            if (actionBar != null && previousTitle != null) {
                actionBar.setTitle(previousTitle);
            }
        }
    }
}