2019-06-03 23:25:05 +02:00
|
|
|
package org.mian.gitnex.adapters;
|
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
import android.annotation.SuppressLint;
|
2019-06-03 23:25:05 +02:00
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
2020-06-30 16:43:27 +02:00
|
|
|
import android.content.res.ColorStateList;
|
2019-06-03 23:25:05 +02:00
|
|
|
import android.graphics.Color;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.ImageView;
|
|
|
|
import android.widget.TextView;
|
2020-06-30 16:43:27 +02:00
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.cardview.widget.CardView;
|
|
|
|
import androidx.core.widget.ImageViewCompat;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
2020-04-01 11:44:38 +02:00
|
|
|
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
2019-06-03 23:25:05 +02:00
|
|
|
import org.mian.gitnex.R;
|
|
|
|
import org.mian.gitnex.activities.CreateLabelActivity;
|
|
|
|
import org.mian.gitnex.helpers.AlertDialogs;
|
|
|
|
import org.mian.gitnex.helpers.ColorInverter;
|
|
|
|
import org.mian.gitnex.models.Labels;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Author M M Arif
|
|
|
|
*/
|
|
|
|
|
|
|
|
public class LabelsAdapter extends RecyclerView.Adapter<LabelsAdapter.LabelsViewHolder> {
|
|
|
|
|
|
|
|
private List<Labels> labelsList;
|
|
|
|
final private Context mCtx;
|
|
|
|
private ArrayList<Integer> labelsArray = new ArrayList<>();
|
|
|
|
|
|
|
|
static class LabelsViewHolder extends RecyclerView.ViewHolder {
|
|
|
|
|
|
|
|
private TextView labelTitle;
|
|
|
|
private TextView labelId;
|
|
|
|
private TextView labelColor;
|
2020-06-30 16:43:27 +02:00
|
|
|
|
|
|
|
private CardView labelView;
|
|
|
|
private ImageView labelIcon;
|
|
|
|
private TextView labelName;
|
2019-06-03 23:25:05 +02:00
|
|
|
|
|
|
|
private LabelsViewHolder(View itemView) {
|
|
|
|
super(itemView);
|
|
|
|
|
2020-06-30 16:43:27 +02:00
|
|
|
labelView = itemView.findViewById(R.id.labelView);
|
|
|
|
labelIcon = itemView.findViewById(R.id.labelIcon);
|
|
|
|
labelName = itemView.findViewById(R.id.labelName);
|
2019-09-19 07:36:55 +02:00
|
|
|
ImageView labelsOptionsMenu = itemView.findViewById(R.id.labelsOptionsMenu);
|
2019-06-03 23:25:05 +02:00
|
|
|
labelTitle = itemView.findViewById(R.id.labelTitle);
|
|
|
|
labelId = itemView.findViewById(R.id.labelId);
|
|
|
|
labelColor = itemView.findViewById(R.id.labelColor);
|
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
labelsOptionsMenu.setOnClickListener(v -> {
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
final Context context = v.getContext();
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
@SuppressLint("InflateParams")
|
|
|
|
View view = LayoutInflater.from(context).inflate(R.layout.bottom_sheet_labels_in_list, null);
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
TextView labelMenuEdit = view.findViewById(R.id.labelMenuEdit);
|
|
|
|
TextView labelMenuDelete = view.findViewById(R.id.labelMenuDelete);
|
|
|
|
TextView bottomSheetHeader = view.findViewById(R.id.bottomSheetHeader);
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
bottomSheetHeader.setText(labelTitle.getText());
|
|
|
|
BottomSheetDialog dialog = new BottomSheetDialog(context);
|
|
|
|
dialog.setContentView(view);
|
|
|
|
dialog.show();
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
labelMenuEdit.setOnClickListener(editLabel -> {
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
Intent intent = new Intent(context, CreateLabelActivity.class);
|
|
|
|
intent.putExtra("labelId", labelId.getText());
|
|
|
|
intent.putExtra("labelTitle", labelTitle.getText());
|
|
|
|
intent.putExtra("labelColor", labelColor.getText());
|
|
|
|
intent.putExtra("labelAction", "edit");
|
|
|
|
context.startActivity(intent);
|
|
|
|
dialog.dismiss();
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
});
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
labelMenuDelete.setOnClickListener(deleteLabel -> {
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
AlertDialogs.labelDeleteDialog(context, labelTitle.getText().toString(), labelId.getText().toString(),
|
|
|
|
context.getResources().getString(R.string.labelDeleteTitle),
|
|
|
|
context.getResources().getString(R.string.labelDeleteMessage),
|
|
|
|
context.getResources().getString(R.string.labelDeletePositiveButton),
|
|
|
|
context.getResources().getString(R.string.labelDeleteNegativeButton));
|
|
|
|
dialog.dismiss();
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-04-01 11:44:38 +02:00
|
|
|
});
|
2019-06-03 23:25:05 +02:00
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public LabelsAdapter(Context mCtx, List<Labels> labelsMain) {
|
|
|
|
this.mCtx = mCtx;
|
|
|
|
this.labelsList = labelsMain;
|
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
|
|
|
public LabelsAdapter.LabelsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
2020-03-28 11:52:09 +01:00
|
|
|
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_labels, parent, false);
|
2019-06-03 23:25:05 +02:00
|
|
|
return new LabelsAdapter.LabelsViewHolder(v);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onBindViewHolder(@NonNull LabelsAdapter.LabelsViewHolder holder, int position) {
|
|
|
|
|
|
|
|
Labels currentItem = labelsList.get(position);
|
|
|
|
|
|
|
|
holder.labelTitle.setText(currentItem.getName());
|
|
|
|
holder.labelId.setText(String.valueOf(currentItem.getId()));
|
|
|
|
holder.labelColor.setText(currentItem.getColor());
|
|
|
|
|
|
|
|
String labelColor = currentItem.getColor();
|
|
|
|
String labelName = currentItem.getName();
|
2020-04-13 09:25:39 +02:00
|
|
|
|
2019-06-03 23:25:05 +02:00
|
|
|
int color = Color.parseColor("#" + labelColor);
|
2020-06-30 16:43:27 +02:00
|
|
|
int contrastColor = new ColorInverter().getContrastColor(color);
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-06-30 16:43:27 +02:00
|
|
|
ImageViewCompat.setImageTintList(holder.labelIcon, ColorStateList.valueOf(contrastColor));
|
2019-06-03 23:25:05 +02:00
|
|
|
|
2020-06-30 16:43:27 +02:00
|
|
|
holder.labelName.setTextColor(contrastColor);
|
|
|
|
holder.labelName.setText(labelName);
|
|
|
|
holder.labelView.setCardBackgroundColor(color);
|
2019-06-03 23:25:05 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getItemCount() {
|
|
|
|
return labelsList.size();
|
|
|
|
}
|
|
|
|
|
2020-06-30 16:43:27 +02:00
|
|
|
}
|