package com.example.doitnow;

import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class AIFragment extends Fragment {

    private EditText userInput;
    private Button sendButton;
    private LinearLayout chatContainer;
    private ScrollView scrollView;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,
                             @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_ai, container, false);

        userInput = view.findViewById(R.id.user_input);
        sendButton = view.findViewById(R.id.send_button);
        chatContainer = view.findViewById(R.id.chat_container);
        scrollView = view.findViewById(R.id.scrollView);

        sendButton.setOnClickListener(v -> {
            String inputText = userInput.getText().toString().trim();
            if (!inputText.isEmpty()) {
                addMessage(inputText, 0xFFE6D6F3,true); // 使用者
                addMessage("暫未接入 AI", 0xFFF0F0F0,false); // AI
                userInput.setText("");
                scrollToBottom();
            }
        });

        return view;
    }

    private void addMessage(String text, int backgroundColor,boolean alignRight) {
        TextView messageView = new TextView(getContext());
        messageView.setText(text);
        messageView.setTextSize(16);
        messageView.setPadding(20, 12, 20, 12);
        messageView.setBackgroundColor(backgroundColor);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
        params.setMargins(0, 8, 0, 8);
        if (alignRight){
            params.gravity= Gravity.END;
        }else{
            params.gravity=Gravity.START;
        }
        messageView.setLayoutParams(params);

        chatContainer.addView(messageView);
    }

    private void scrollToBottom() {
        scrollView.post(() -> scrollView.fullScroll(View.FOCUS_DOWN));
    }
}
