Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by VeeruI764 on 11/23/2015.
- */
- public class MasonryAdapter extends RecyclerView.Adapter<MasonryAdapter.MasonryView> implements View.OnTouchListener{
- private Context context;
- private Fragment parent;
- private int TILE_MARGIN_BOTTOM=5;
- private List<DashboardTile> tileDefinitions=new ArrayList<DashboardTile>();
- public MasonryAdapter(Context context,DashboardStaggered parent) {
- this.context = context;
- this.parent = parent;
- //Create tiles
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_news,"Slide Show","9E0026",0,true,DashboardTileTypes.TILE_TYPE_SLIDESHOW)); //0
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_news,"News","A21E23",800,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //1
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_event,"Events","008EAA",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //2
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_resources,"Resources","539E3E",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //3
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_winaprize,"Win a Prize","F89B1C",400,false,DashboardTileTypes.TILE_TYPE_FULL_WIDTH_TILE)); //4
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_polling,"Polling","A8CF5A",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //5
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_webinar,"Webinar","814199",800,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //6
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_qa,"Q & A","13ADA0",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //6
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_solutions,"Solutions","00507E",400,false,DashboardTileTypes.TILE_TYPE_FULL_WIDTH_TILE)); //7
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_contact,"Contact","0093B2",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //8
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_profile,"Profile","555555",400,false,DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE)); //9
- //tileDefinitions.add(new DashboardTile(R.drawable.ic_globe_big,"Sponsor","000000",400,false,DashboardTileTypes.TILE_TYPE_SPONSOR)); //11 - removed this in xml, set view to gone!
- tileDefinitions.add(new DashboardTile(R.drawable.ic_dec_news,"Footer","53921A",0,true,DashboardTileTypes.TILE_TYPE_FOOTER)); //12
- }
- @Override
- public MasonryView onCreateViewHolder(ViewGroup parent, int viewType) {
- MasonryView masonryView=null;
- Log.d("MASONRY","onCreateViewHolder "+viewType+" rendering");
- switch (viewType){
- case DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE: { //Normal tile
- Log.d("MASONRY", "onCreateViewHolder " + viewType + " TILE_TYPE_ONE_COLUMN__TILE");
- View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.dashboard_masonry_tile, parent, false);
- masonryView = new MasonryView(layoutView, viewType);
- layoutView.setOnTouchListener(this);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_FOOTER:{ //Footer
- Log.d("MASONRY","onCreateViewHolder "+viewType+" TILE_TYPE_FOOTER");
- View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_grid_bottom_links, parent, false);
- masonryView = new MasonryView(layoutView, viewType);
- layoutView.setOnTouchListener(this);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_SLIDESHOW:{ //Slide show
- Log.d("MASONRY","onCreateViewHolder "+viewType+" TILE_TYPE_SLIDESHOW");
- View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_grid_slideshow, parent, false);
- masonryView = new MasonryView(layoutView, viewType);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_SPONSOR:{ //Sponsor
- Log.d("MASONRY","onCreateViewHolder "+viewType+" TILE_TYPE_SPONSOR");
- View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.dashboard_masonry_tile_sponsor, parent, false);
- masonryView = new MasonryView(layoutView, viewType);
- break;
- }
- }
- return masonryView;
- }
- @Override
- public void onBindViewHolder(final MasonryView holder, int position) {
- /*
- different styles for different cells - Slideshow, tiles, Footer
- */
- switch(tileDefinitions.get(position).getTileType()){
- //region slide show and footer
- case DashboardTileTypes.TILE_TYPE_SLIDESHOW:{
- //Slideshow
- StaggeredGridLayoutManager.LayoutParams layoutParams = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
- layoutParams.setFullSpan(true);
- layoutParams.setMargins(0, 0, 0, TILE_MARGIN_BOTTOM);
- holder.slideshowholder.setLayoutParams(layoutParams);
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- slideShowManager sm=new slideShowManager(holder, parent);
- }
- });
- break;
- }
- case DashboardTileTypes.TILE_TYPE_FOOTER:{
- //Footer
- Log.d("MASONRY","onBindViewHolder "+position+" LOADING FOOTER");
- Log.d("MASONRY","onBindViewHolder "+holder.layout);
- StaggeredGridLayoutManager.LayoutParams layoutParams =
- new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
- layoutParams.setFullSpan(true);
- holder.layout.setLayoutParams(layoutParams);
- setupFooterTouchListeners(holder.hdsSiteLink, holder.tvLogoutLink, holder.tvDivider);
- break;
- }
- //end region
- case DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE:{
- //Tiles - set tile behavior
- Log.d("MASONRY", "getting image for " + position + " " + tileDefinitions.get(position).getIcon());
- holder.icon.setImageResource(tileDefinitions.get(position).getIcon());
- holder.title.setText(tileDefinitions.get(position).getTitle());
- holder.title.setTypeface(FontsHelper.HvNeueBold(context));
- holder.title.bringToFront();
- //Dynamic colors for our tiles
- ViewGroup.LayoutParams params = holder.layout.getLayoutParams();
- params.height=tileDefinitions.get(position).getSize(); //setting height
- holder.layout.setLayoutParams(params);
- holder.layout.setBackgroundColor(Color.parseColor("#" + tileDefinitions.get(position).getColor())); //setting color
- holder.layout.setTag(position);
- //margins
- ViewGroup.MarginLayoutParams llparams = (ViewGroup.MarginLayoutParams) holder.layout.getLayoutParams();
- llparams.bottomMargin=5;
- break;
- }
- case DashboardTileTypes.TILE_TYPE_FULL_WIDTH_TILE:{
- //Tiles - set tile behavior
- Log.d("MASONRY", "getting image for " + position + " " + tileDefinitions.get(position).getIcon());
- StaggeredGridLayoutManager.LayoutParams layoutParams =
- new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
- layoutParams.setFullSpan(true);
- holder.layout.setLayoutParams(layoutParams);
- holder.icon.setImageResource(tileDefinitions.get(position).getIcon());
- holder.title.setText(tileDefinitions.get(position).getTitle());
- holder.title.setTypeface(FontsHelper.HvNeueBold(context));
- holder.title.bringToFront();
- //Dynamic colors for our tiles
- ViewGroup.LayoutParams params = holder.layout.getLayoutParams();
- params.height=tileDefinitions.get(position).getSize(); //setting height
- holder.layout.setLayoutParams(params);
- holder.layout.setBackgroundColor(Color.parseColor("#" + tileDefinitions.get(position).getColor())); //setting color
- holder.layout.setTag(position);
- //margins
- ViewGroup.MarginLayoutParams llparams = (ViewGroup.MarginLayoutParams) holder.layout.getLayoutParams();
- llparams.bottomMargin=5;
- break;
- }
- case DashboardTileTypes.TILE_TYPE_SPONSOR:{
- //Footer
- Log.d("MASONRY", "onBindViewHolder " + position + " LOADING SPONSOR");
- Log.d("MASONRY", "onBindViewHolder " + holder.layout);
- ViewGroup.LayoutParams params = holder.layout.getLayoutParams();
- params.height=tileDefinitions.get(position).getSize(); //setting height
- holder.layout.setLayoutParams(params);
- //margins
- ViewGroup.MarginLayoutParams llparams = (ViewGroup.MarginLayoutParams) holder.layout.getLayoutParams();
- llparams.bottomMargin=5;
- break;
- }
- }
- }
- @Override
- public int getItemCount() {return tileDefinitions.size();}
- @Override
- public int getItemViewType(int position) {
- // Return type based on position
- int returnType= DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE;
- if(position==0) returnType=DashboardTileTypes.TILE_TYPE_SLIDESHOW;
- //if(position==11) returnType=DashboardTileTypes.TILE_TYPE_SPONSOR;
- if(position==11) returnType=DashboardTileTypes.TILE_TYPE_FOOTER;
- return returnType;
- }
- /*
- Touch listener for tiles
- */
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- }
- /*
- Holder View creation
- */
- class MasonryView extends RecyclerView.ViewHolder {
- ImageView icon;
- TextView title;
- LinearLayout layout;
- //Footer stuff
- TextView hdsSiteLink, tvLogoutLink, tvDivider;
- //Slider stuff
- LinearLayout slideshowholder;
- AutoScrollViewPager mPager;
- TextView txtMessage;
- CirclePageIndicator circleIndicator;
- RelativeLayout rlProgress;
- public MasonryView(View itemView, int type) {
- super(itemView);
- switch (type){
- case DashboardTileTypes.TILE_TYPE_ONE_COLUMN__TILE:{
- //Grid
- icon = (ImageView) itemView.findViewById(R.id.imgTile);
- title = (TextView) itemView.findViewById(R.id.txtTitle);
- layout = (LinearLayout) itemView.findViewById(R.id.llView);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_FOOTER:{
- //Footer
- layout = (LinearLayout) itemView.findViewById(R.id.rlFooterHolder);
- hdsSiteLink=(TextView) itemView.findViewById(R.id.tvURL);
- tvDivider=(TextView) itemView.findViewById(R.id.tvDivider);
- tvLogoutLink=(TextView) itemView.findViewById(R.id.tvLogout);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_SLIDESHOW:{
- //Slide show stuff
- System.out.println("MASONRY"+ itemView.findViewById(R.id.pager_new));
- slideshowholder = (LinearLayout) itemView.findViewById(R.id.llHolder);
- mPager=(AutoScrollViewPager) itemView.findViewById(R.id.pager_new);
- txtMessage=(TextView) itemView.findViewById(R.id.txt_message);
- circleIndicator= (CirclePageIndicator) itemView.findViewById(R.id.circleIndicator);
- rlProgress=(RelativeLayout) itemView.findViewById(R.id.rlProgress);
- break;
- }
- case DashboardTileTypes.TILE_TYPE_SPONSOR:{
- //Sponsor
- layout = (LinearLayout) itemView.findViewById(R.id.llView);
- break;
- }
- }
- }
- }
- private void setupFooterTouchListeners(TextView website, TextView logout, TextView divider){
- //endregion
- }
- /**
- * Class to manage slide show
- */
- private class slideShowManager {
- MasonryView sv;
- Fragment parent;
- ArrayList items=new ArrayList();
- public slideShowManager(MasonryView sv, Fragment parent){
- this.sv=sv;
- this.parent=parent;
- setupSlideshow();
- }
- private void setupSlideshow(){
- parent.getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- getSlideShow();
- }
- });
- }
- private void viewPagerSliderConfig()
- {
- sv.mPager.setInterval(3000);
- sv.mPager.setAutoScrollDurationFactor(1.5f);
- sv.mPager.startAutoScroll();
- try
- {
- Field field = ViewPager.class.getDeclaredField("mScroller");
- field.setAccessible(true);
- FixedSpeedScroller fixedspeedscroller = new FixedSpeedScroller(sv.mPager.getContext(), new AccelerateInterpolator());
- fixedspeedscroller.setFixedDuration(1000);
- field.set(sv.mPager, fixedspeedscroller);
- return;
- }
- catch (Exception exception)
- {
- return;
- }
- }
- /**
- * Manage the circle page indicator
- */
- private void setCirclePageIndicator(){
- sv.circleIndicator.setViewPager(sv.mPager);
- sv.circleIndicator.setBackgroundColor(parent.getActivity().getResources().getColor(R.color.m_ripple_dark));
- final float density = parent.getResources().getDisplayMetrics().density;
- sv.circleIndicator.setRadius(4 * density);
- sv.circleIndicator.setOnPageChangeListener(new android.support.v4.view.ViewPager.OnPageChangeListener() {
- public void onPageScrollStateChanged(int i) {
- }
- public void onPageScrolled(int i, float f, int j) {
- }
- public void onPageSelected(int i) {
- //When page changes update title
- String title = ((BannerItems) items.get(i)).get_title();
- sv.txtMessage.setText(title);
- }
- });
- }
- private void getSlideShow(){
- //get from server
- }
- private void processJSON(String responseBody,BannerAdapter mAdapter){
- //process json
- }
- private void showFeedError(String message){
- //showing error
- }
- }
- public class BannerAdapter extends FragmentStatePagerAdapter {
- BannerFragment bf;
- private List adItems;
- public BannerAdapter(FragmentManager fm) {
- super(fm);
- }
- public int getCount(){
- return adItems.size();
- }
- public void updateItems(List list)
- {
- adItems = list;
- notifyDataSetChanged();
- }
- public Fragment getItem(int i){
- BannerItems bi=(BannerItems)adItems.get(i); //pass item to fragment - and load it with picasso
- BannerFragment bf=new BannerFragment();
- Bundle args=null;
- args=new Bundle();
- args.putString("URL",bi.get_bannerUrl());
- args.putString("TARGET",bi.get_target());
- args.putInt("API",bi.get_isAPI());
- args.putString("TITLE",bi.get_webViewtitle());
- bf.setArguments(args);
- return bf;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment