package net.micode.notes.ui;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.Toast;

// SortDialogFragment.java
public class SortDialogFragment extends DialogFragment {
    private String sortField; // 排序字段
    private String sortOrder; // 排序顺序
    private OnSortListener onSortListener; // 排序监听器

    public void setSortField(String sortField) {
        this.sortField = sortField;
    }

    public void setSortOrder(String sortOrder) {
        this.sortOrder = sortOrder;
    }

    public void setOnSortListener(OnSortListener onSortListener) {
        this.onSortListener = onSortListener;
    }


    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // 创建对话框构造器
        builder.setTitle("选择排序方式"); // 设置标题
        String[] fields = {"创建时间", "修改时间", "标题", "颜色"}; // 排序字段数组

        int checkedField = 0; // 选中的排序字段索引，默认为0（创建时间）
        switch (sortField) { // 根据当前的排序字段设置索引值
            case "created_date":
                checkedField = 0;
                break;
            case "modified_date":
                checkedField = 1;
                break;
            case "snippet":
                checkedField = 2;
                break;
            case "bg_color_id":
                checkedField = 3;
                break;
        }
        builder.setSingleChoiceItems(fields, checkedField, new DialogInterface.OnClickListener() { // 设置单选项列表，以及点击事件
            @Override
            public void onClick(DialogInterface dialog, int which) {
                switch (which) { // 根据选择的索引值设置排序字段值
                    case 0:
                        sortField = "created_date";
                        break;
                    case 1:
                        sortField = "modified_date";
                        break;
                    case 2:
                        sortField = "snippet";
                        break;
                    case 3:
                        sortField = "bg_color_id";
                        break;
                }
            }
        });

        String[] orders = {"升序", "降序"}; // 排序顺序
        int checkedOrder = 0; // 选中的排序顺序索引，默认为0（升序）
        if (sortOrder.equals("DESC")) { // 根据当前的排序顺序设置索引值
            checkedOrder = 1;
        }
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { // 设置确定按钮，以及点击事件
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if (onSortListener != null) { // 如果有排序监听器，调用其onSort方法
                    onSortListener.onSort(sortField, sortOrder);
                }
            }
        });
        builder.setNegativeButton("取消", null); // 设置取消按钮，不做任何操作

        return builder.create(); // 创建并返回对话框
    }

    public interface OnSortListener { // 定义一个排序监听器接口
        void onSort(String field, String order); // 定义一个onSort方法，传入排序字段和排序顺序
    }
}
