package com.fastaccess.ui.adapter.viewholder; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.CardView; import android.view.View; import android.widget.ImageView; import com.fastaccess.R; import com.fastaccess.data.dao.AppsModel; import com.fastaccess.helper.ViewHelper; import com.fastaccess.ui.widgets.FastBitmapDrawable; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import com.fastaccess.ui.widgets.recyclerview.touch.ItemTouchHelperViewHolder; import butterknife.BindColor; import butterknife.BindView; /** * Created by Kosh on 30 Aug 2016, 11:42 PM */ public class DeviceAppsViewHolder extends BaseViewHolder<AppsModel> implements ItemTouchHelperViewHolder { @BindView(R.id.appIcon) ImageView appIcon; @BindView(R.id.cardView) CardView cardView; @BindColor(R.color.light_gray) int selectedColor; @BindColor(R.color.cardview_light_background) int normalColor; private boolean selected; private boolean selectedApps; public DeviceAppsViewHolder(@NonNull View itemView, @Nullable BaseRecyclerAdapter adapter) { super(itemView, adapter); appIcon.setOnClickListener(this); appIcon.setOnLongClickListener(this); } public void bind(@NonNull AppsModel model, boolean selected, boolean selectedApps) { this.selected = selected; this.selectedApps = selectedApps; bind(model); } @Override public void bind(@NonNull AppsModel model) { FastBitmapDrawable drawable = new FastBitmapDrawable(model.getBitmap()); appIcon.setImageDrawable(drawable); appIcon.setContentDescription(model.getAppName()); drawable.setGhostModeEnabled(selected); drawable.setPressed(selected); cardView.setCardBackgroundColor(selected ? selectedColor : normalColor); if (getAdapterPosition() == 0) { if (selectedApps) { ViewHelper.showTooltip(itemView, R.string.drag_and_drop_hint); } else { ViewHelper.showTooltip(itemView, R.string.single_click_to_select_hint); } } } @Override public void onItemSelected() { cardView.setAlpha(0.5f); } @Override public void onItemClear() { cardView.setAlpha(1); } }