package com.fastaccess.ui.widgets.recyclerview.layout_manager;
import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import com.fastaccess.helper.Logger;
/**
* Created by Kosh on 17 May 2016, 10:02 PM
*/
public class GridManager extends GridLayoutManager {
private int iconSize;
public GridManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public GridManager(Context context, int spanCount) {
super(context, spanCount);
}
public GridManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
super(context, spanCount, orientation, reverseLayout);
}
@Override public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
try {
updateCount();
super.onLayoutChildren(recycler, state);
} catch (Exception ignored) {}
}
@Override public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {
try {
super.onMeasure(recycler, state, widthSpec, heightSpec);
} catch (Exception e) {
e.printStackTrace();
}
}
private void updateCount() {
if (iconSize > 1) {
int spanCount = Math.max(1, getWidth() / iconSize);
if (spanCount < 1) {
spanCount = 1;
}
Logger.e(spanCount);
this.setSpanCount(spanCount);
}
}
public int getIconSize() {
return iconSize;
}
public void setIconSize(int iconSize) {
this.iconSize = iconSize;
updateCount();
}
}