package me.paladin.launcher.adapter;

import android.content.Context;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.Arrays;

import me.paladin.launcher.R;

public class SortAdapter extends RecyclerView.Adapter<SortAdapter.ViewHolder> {
    private LayoutInflater inflater;
    private ArrayList<String> data;
    private TextView selected;
    private Context context;
    
    public SortAdapter(Context context) {
        inflater = LayoutInflater.from(context);
        data = new ArrayList<>();
        data.addAll(Arrays.asList(context.getResources().getStringArray(R.array.sort_array)));
        this.context = context;
    }
    
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new ViewHolder(inflater.inflate(R.layout.adapter_main_sort, parent, false));
    }
    
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        String label = getItem(position);
        holder.label.setText(label);
        if (label.equals(context.getString(R.string.array_sort_all))) {
            holder.label.setSelected(true);
            selected = holder.label;
        }
    }
    
    @Override
    public int getItemCount() {
        return data.size();
    }
    
    private String getItem(int position) {
        return data.get(position);
    }
    
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        TextView label;
        
        private ViewHolder(View itemView) {
            super(itemView);
            label = (TextView) itemView;
            itemView.setOnClickListener(this);
        }
        
        @Override
        public void onClick(View view) {
            TextView label = (TextView) view;
            if (selected != label) {
                selected.setSelected(false);
                selected = label;
                label.setSelected(true);
            }
        }
    }
}
