package com.fastaccess.ui.adapter.viewholder; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import com.fastaccess.R; import com.fastaccess.data.dao.AppsModel; import com.fastaccess.helper.PrefConstant; import com.fastaccess.ui.widgets.FastBitmapDrawable; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import butterknife.BindView; import butterknife.OnTouch; /** * Created by Kosh on 30 Aug 2016, 11:42 PM */ public class FloatingAppsViewHolder extends BaseViewHolder<AppsModel> { @BindView(R.id.imageIcon) ImageView imageIcon; @BindView(R.id.iconHolder) RelativeLayout iconHolder; private boolean isHorizontal; @OnTouch(R.id.imageIcon) boolean onTouch(MotionEvent event) { FastBitmapDrawable drawable = (FastBitmapDrawable) imageIcon.getDrawable(); if (drawable != null) { if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { drawable.setPressed(false); } else if (event.getAction() == MotionEvent.ACTION_DOWN) { drawable.setPressed(true); } } return false; } public static FloatingAppsViewHolder newInstance(@NonNull ViewGroup parent, @NonNull BaseRecyclerAdapter adapter) { return new FloatingAppsViewHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.floating_apps_row_item, parent, false), adapter); } public FloatingAppsViewHolder(@NonNull View itemView, @Nullable BaseRecyclerAdapter adapter) { super(itemView, adapter); iconHolder.setOnClickListener(null); iconHolder.setOnLongClickListener(null); imageIcon.setOnClickListener(this); imageIcon.setOnLongClickListener(this); } public void bind(@NonNull AppsModel model, boolean isHorizontal) { this.isHorizontal = isHorizontal; bind(model); } @Override public void bind(@NonNull AppsModel model) { imageIcon.setImageDrawable(new FastBitmapDrawable(model.getBitmap())); RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) imageIcon.getLayoutParams(); int gap = PrefConstant.getGapSize(imageIcon.getResources()); if (!isHorizontal) params.setMargins(0, 0, 0, gap); else params.setMargins(0, 0, gap, 0); } }