package com.example.maposv2;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.NavController;

import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;

import com.example.maposv2.databinding.FragmentVysledekBinding;


public class FragmentVysledek extends Fragment {
    private FragmentVysledekBinding binding;

    private String[] BullyAlarm = {
            "se u tebe objevila šikana. \n V tvém případě to znamená, že určitě nejsi šikanován, a proto se ti může ulevit.\n" +
                    " Pokud však bys měl/a nějaké problémy, neváhej se obrátit na linku bezpečí.",
            "se u tebe objevila šikana.\n V tvém případě to znamená, že spíše nejsi šikanován, a proto se ti může ulevit.\n" +
                    " Pokud však bys měl/a nějaké problémy, neváhej se obrátit na linku bezpečí.",
            "se u tebe objevila šikana.\n V tvém případě to znamená, že se občas setkáváš s lehkou šikanou, a proto doporučujeme si o tom s někým popovídat doma nebo na Lince bezpečí.\n" +
                    " Pokud by se jednalo o něco opakovaného, doporučujeme to anonymně nahlásit. ",
            "se u tebe objevila šikana.\n V tvém případě to znamená, že se často setkáváš se šikanou, a proto doporučujeme si o tom s někým popovídat doma nebo na Lince bezpečí.\n" +
                     "Také doporučujeme šikanu anonymně nahlásit. ",
            "se u tebe objevila šikana.\n V tvém případě to znamená, že se velmi často setkáváš se šikanou, a proto doporučujeme si o tom s někým popovídat doma nebo na Lince bezpečí.\n" +
                    "Také doporučujeme urychleně šikanu anonymně nahlásit. ",
            "se u tebe objevila šikana.\n V tvém případě to znamená, že se téměř denně setkáváš se šikanou, a proto doporučujeme si o tom s někým popovídat doma nebo na Lince bezpečí.\n" +
                    "Také doporučujeme, pokud možno okamžitě, šikanu anonymně nahlásit.\n Pakliže ti někdo i fyzicky ubližuje a cítíš se ohrožen na životě či zdraví, tak se svým zákonným zástupcem nahlas tuto skutečnost na policii."
    };

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = FragmentVysledekBinding.inflate(inflater, container, false);

        TextView scoreText = binding.scoreTextView;
        int score = getArguments().getInt("score");
        scoreText.setText( score +" %");
        setHasOptionsMenu(true);
        TextView popis = binding.textViewPopis;
        String message = "";
        if (score >= 0 && score <= 10) {
            message = BullyAlarm[0];
        } else if (score >= 11 && score <= 25) {
            message = BullyAlarm[1];
        } else if (score >= 26 && score <= 50) {
            message = BullyAlarm[2];
        } else if (score >= 51 && score <= 75) {
            message = BullyAlarm[3];
        } else if (score >= 76 && score <= 95) {
            message = BullyAlarm[4];
        } else if (score >= 96 && score <= 100) {
            message = BullyAlarm[5];
        }
        popis.setText(message);
        binding.buttonBackToMenu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                NavHostFragment.findNavController(FragmentVysledek.this)
                        //.navigate(R.id.action_FragmentVysledek_to_FirstFragment);
                        .popBackStack(R.id.FirstFragment, false);

            }
        });


        return binding.getRoot();

    }
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // This callback will only be called when MyFragment is at least Started.
        OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
            @Override
            public void handleOnBackPressed() {
                // Handle the back button event
                NavHostFragment.findNavController(FragmentVysledek.this)
                        //.navigate(R.id.action_FragmentVysledek_to_FirstFragment);
                        .popBackStack(R.id.FirstFragment, false);
            }
        };
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

        // The callback can be enabled or disabled here or in handleOnBackPressed()
    }
    @Override
    public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {

        // hide the options menu in this fragment
        menu.findItem(R.id.action_settings).setVisible(false);

        super.onCreateOptionsMenu(menu, inflater);
    }


    @Override
    public void onPrepareOptionsMenu(@NonNull Menu menu) {
        super.onPrepareOptionsMenu(menu);
        menu.findItem(R.id.action_settings).setVisible(false);
    }
}
