Skip to content
Snippets Groups Projects
Commit db92f2da authored by Jawnnypoo's avatar Jawnnypoo
Browse files

Change over to DynamicGridLayoutManager in a few places

parent 7d60128e
No related branches found
No related tags found
No related merge requests found
Pipeline #
Loading
Loading
@@ -8,21 +8,19 @@ import android.support.annotation.NonNull;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
 
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.GroupAdapter;
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.api.GitLabFactory;
import com.commit451.gitlab.event.CloseDrawerEvent;
import com.commit451.gitlab.model.api.Group;
import com.commit451.gitlab.navigation.Navigator;
import com.commit451.gitlab.util.DynamicGridLayoutManager;
import com.commit451.gitlab.util.PaginationUtil;
import com.commit451.gitlab.viewHolder.GroupViewHolder;
import com.squareup.otto.Subscribe;
Loading
Loading
@@ -50,7 +48,7 @@ public class GroupsActivity extends BaseActivity {
@BindView(R.id.list) RecyclerView mGroupRecyclerView;
@BindView(R.id.message_text) TextView mMessageText;
GroupAdapter mGroupAdapter;
LinearLayoutManager mGroupLayoutManager;
DynamicGridLayoutManager mGroupLayoutManager;
 
private Uri mNextPageUrl;
private boolean mLoading = false;
Loading
Loading
@@ -145,7 +143,8 @@ public class GroupsActivity extends BaseActivity {
load();
}
});
mGroupLayoutManager = new GridLayoutManager(this, 2);
mGroupLayoutManager = new DynamicGridLayoutManager(this);
mGroupLayoutManager.setMinimumWidthDimension(R.dimen.user_list_image_size);
mGroupRecyclerView.setLayoutManager(mGroupLayoutManager);
mGroupAdapter = new GroupAdapter(mGroupAdapterListener);
mGroupRecyclerView.setAdapter(mGroupAdapter);
Loading
Loading
Loading
Loading
@@ -4,23 +4,22 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
 
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.GroupMembersAdapter;
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.api.GitLabFactory;
import com.commit451.gitlab.dialog.AccessDialog;
import com.commit451.gitlab.event.MemberAddedEvent;
import com.commit451.gitlab.model.api.Group;
import com.commit451.gitlab.model.api.Member;
import com.commit451.gitlab.navigation.Navigator;
import com.commit451.gitlab.util.DynamicGridLayoutManager;
import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder;
import com.squareup.otto.Subscribe;
 
Loading
Loading
@@ -151,7 +150,9 @@ public class GroupMembersFragment extends ButterKnifeFragment {
App.bus().register(mEventReceiver);
 
mGroupMembersAdapter = new GroupMembersAdapter(mListener);
mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
DynamicGridLayoutManager dynamicGridLayoutManager = new DynamicGridLayoutManager(getActivity());
dynamicGridLayoutManager.setMinimumWidthDimension(R.dimen.user_list_image_size);
mRecyclerView.setLayoutManager(dynamicGridLayoutManager);
mRecyclerView.setAdapter(mGroupMembersAdapter);
 
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
Loading
Loading
package com.commit451.gitlab.util;
import android.content.Context;
import android.support.annotation.DimenRes;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.View;
/**
* {@link GridLayoutManager} which dynamically sizes its number of columns based on
* {@link #setMinimumWidth(int)}
*/
public class DynamicGridLayoutManager extends GridLayoutManager {
private int mMinWidth = 100;
private Context mContext;
private int mNumColumns = -1;
public DynamicGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
mContext = context;
}
public DynamicGridLayoutManager(Context context) {
super(context, 2);
mContext = context;
}
public DynamicGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
super(context, spanCount, orientation, reverseLayout);
mContext = context;
}
public void setMinimumWidth(int minimumWidth) {
mMinWidth = minimumWidth;
if (getWidth() != 0) {
int columns = getWidth() / mMinWidth;
setSpanCount(Math.max(1, columns));
}
}
public void setMinimumWidthDimension(@DimenRes int dimension) {
setMinimumWidth(mContext.getResources().getDimensionPixelSize(dimension));
}
@Override
public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {
int width = View.MeasureSpec.getSize(widthSpec);
mNumColumns = Math.max(1, width / mMinWidth);
setSpanCount(mNumColumns);
super.onMeasure(recycler, state, widthSpec, heightSpec);
}
/**
* Get the number of computed columns. Useful for using with
* {@link SpanSizeLookup}
* @return the number of columns or -1 if the columns have not yet been measured.
*/
public int getNumColumns() {
return mNumColumns;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment