Java 类com.bumptech.glide.util.ViewPreloadSizeProvider 实例源码

项目:GitHub    文件:MainActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ImageView giphyLogoView = (ImageView) findViewById(R.id.giphy_logo_view);

  Glide.with(this)
      .load(R.raw.large_giphy_logo)
      .into(giphyLogoView);

  RecyclerView gifList = (RecyclerView) findViewById(R.id.gif_list);
  LinearLayoutManager layoutManager = new LinearLayoutManager(this);
  gifList.setLayoutManager(layoutManager);

  RequestBuilder<Drawable> gifItemRequest = Glide.with(this).asDrawable();

  ViewPreloadSizeProvider<Api.GifResult> preloadSizeProvider =
      new ViewPreloadSizeProvider<>();
  adapter = new GifAdapter(this, gifItemRequest, preloadSizeProvider);
  gifList.setAdapter(adapter);
  RecyclerViewPreloader<Api.GifResult> preloader =
      new RecyclerViewPreloader<>(Glide.with(this), adapter, preloadSizeProvider, 4);
  gifList.addOnScrollListener(preloader);
}
项目:AndroidBase    文件:FamiliarRecyclerView.java   
@Override
public void setAdapter(Adapter adapter) {

    if (adapter instanceof BaseQuickAdapter) {
        mReqAdapter = (BaseQuickAdapter) adapter;
        removeOnScrollListener(mOnScrollListener);
        addOnScrollListener(mOnScrollListener);
    }

    if (adapter instanceof ListPreloaderQuickAdapter) {
        ListPreloaderQuickAdapter tempAdapter = (ListPreloaderQuickAdapter)adapter;
        RecyclerViewPreloader preloader =new RecyclerViewPreloader(Glide.with(getContext()), tempAdapter, new ViewPreloadSizeProvider(), tempAdapter.getMaxPreload());
        addOnScrollListener(preloader);
    }

    super.setAdapter(adapter);

    if (needInitAddItemDescration && null != mFamiliarDefaultItemDecoration) {
        needInitAddItemDescration = false;
        super.addItemDecoration(mFamiliarDefaultItemDecoration);
    }

}
项目:GitHub    文件:MainActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ImageView giphyLogoView = (ImageView) findViewById(R.id.giphy_logo_view);

  GlideApp.with(this)
      .load(R.raw.large_giphy_logo)
      .into(giphyLogoView);

  RecyclerView gifList = (RecyclerView) findViewById(R.id.gif_list);
  LinearLayoutManager layoutManager = new LinearLayoutManager(this);
  gifList.setLayoutManager(layoutManager);

  RequestBuilder<Drawable> gifItemRequest = GlideApp.with(this)
      .asDrawable();

  ViewPreloadSizeProvider<Api.GifResult> preloadSizeProvider =
      new ViewPreloadSizeProvider<>();
  adapter = new GifAdapter(this, gifItemRequest, preloadSizeProvider);
  gifList.setAdapter(adapter);
  RecyclerViewPreloader<Api.GifResult> preloader =
      new RecyclerViewPreloader<>(GlideApp.with(this), adapter, preloadSizeProvider, 4);
  gifList.addOnScrollListener(preloader);
  gifList.setRecyclerListener(new RecyclerListener() {
    @Override
    public void onViewRecycled(ViewHolder holder) {
      // This is an optimization to reduce the memory usage of RecyclerView's recycled view pool
      // and good practice when using Glide with RecyclerView.
      GifViewHolder gifViewHolder = (GifViewHolder) holder;
      GlideApp.with(MainActivity.this).clear(gifViewHolder.gifView);
    }
  });
}
项目:plaid    文件:FeedAdapter.java   
FeedAdapter(Activity hostActivity,
            @Nullable DataLoadingSubject dataLoading,
            int columns,
            boolean pocketInstalled, ViewPreloadSizeProvider<Shot> shotPreloadSizeProvider) {
    this.host = hostActivity;
    this.dataLoading = dataLoading;
    if (dataLoading != null) {
        dataLoading.registerCallback(this);
    }
    this.columns = columns;
    this.pocketIsInstalled = pocketInstalled;
    this.shotPreloadSizeProvider = shotPreloadSizeProvider;
    layoutInflater = LayoutInflater.from(host);
    comparator = new PlaidItemSorting.PlaidItemComparator();
    items = new ArrayList<>();
    setHasStableIds(true);

    // get the dribbble shot placeholder colors & badge color from the theme
    final TypedArray a = host.obtainStyledAttributes(R.styleable.DribbbleFeed);
    final int loadingColorArrayId =
            a.getResourceId(R.styleable.DribbbleFeed_shotLoadingPlaceholderColors, 0);
    if (loadingColorArrayId != 0) {
        int[] placeholderColors = host.getResources().getIntArray(loadingColorArrayId);
        shotLoadingPlaceholders = new ColorDrawable[placeholderColors.length];
        for (int i = 0; i < placeholderColors.length; i++) {
            shotLoadingPlaceholders[i] = new ColorDrawable(placeholderColors[i]);
        }
    } else {
        shotLoadingPlaceholders = new ColorDrawable[] { new ColorDrawable(Color.DKGRAY) };
    }
    final int initialGifBadgeColorId =
            a.getResourceId(R.styleable.DribbbleFeed_initialBadgeColor, 0);
    initialGifBadgeColor = initialGifBadgeColorId != 0 ?
            ContextCompat.getColor(host, initialGifBadgeColorId) : 0x40ffffff;
    a.recycle();
}
项目:gankmaku    文件:FuliAdapter.java   
protected FuliAdapter(Response mResponse, Context context,
    ViewPreloadSizeProvider<Entry> preloadSizeProvider) {
  super(mResponse);
  mContext = context;
  mPreloadSizeProvider = preloadSizeProvider;
  mPool = Glide.get(context).getBitmapPool();
}
项目:AmazeFileManager    文件:AppsAdapter.java   
public AppsAdapter(Context context, ThemedActivity ba, UtilitiesProviderInterface utilsProvider,
                   AppsAdapterPreloadModel modelProvider, ViewPreloadSizeProvider<String> sizeProvider,
                   int resourceId, AppsListFragment app) {
    super(context, resourceId);
    themedActivity = ba;
    this.utilsProvider = utilsProvider;
    this.modelProvider = modelProvider;
    this.sizeProvider = sizeProvider;
    this.context = context;
    this.app = app;

    /*for (int i = 0; i < items.size(); i++) {
        myChecked.put(i, false);
    }*/
}
项目:GitHub    文件:MainActivity.java   
public GifAdapter(Activity activity, RequestBuilder<Drawable> requestBuilder,
    ViewPreloadSizeProvider<Api.GifResult> preloadSizeProvider) {
  this.activity = activity;
  this.requestBuilder = requestBuilder;
  this.preloadSizeProvider = preloadSizeProvider;
}
项目:GitHub    文件:FlickrPhotoList.java   
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
  final View result = inflater.inflate(R.layout.flickr_photo_list, container, false);

  list = (RecyclerView) result.findViewById(R.id.flickr_photo_list);
  layoutManager = new LinearLayoutManager(getActivity());
  list.setLayoutManager(layoutManager);
  adapter = new FlickrPhotoListAdapter();
  list.setAdapter(adapter);

  preloadSizeProvider = new ViewPreloadSizeProvider<>();
  RecyclerViewPreloader<Photo> preloader =
      new RecyclerViewPreloader<>(
          GlideApp.with(this), adapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);
  list.addOnScrollListener(preloader);
  list.setItemViewCacheSize(0);

  if (currentPhotos != null) {
    adapter.setPhotos(currentPhotos);
  }

  final GlideRequests glideRequests = GlideApp.with(this);
  fullRequest = glideRequests
      .asDrawable()
      .centerCrop()
      .placeholder(new ColorDrawable(Color.GRAY));

  thumbRequest = glideRequests
      .asDrawable()
      .diskCacheStrategy(DiskCacheStrategy.DATA)
      .override(Api.SQUARE_THUMB_SIZE)
      .transition(withCrossFade());

  list.setRecyclerListener(new RecyclerView.RecyclerListener() {
    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
      PhotoTitleViewHolder vh = (PhotoTitleViewHolder) holder;
      glideRequests.clear(vh.imageView);
    }
  });

  if (savedInstanceState != null) {
    int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
    int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
    layoutManager.scrollToPositionWithOffset(index, offset);
  }

  return result;
}
项目:GitHub    文件:MainActivity.java   
GifAdapter(Activity activity, RequestBuilder<Drawable> requestBuilder,
    ViewPreloadSizeProvider<Api.GifResult> preloadSizeProvider) {
  this.activity = activity;
  this.requestBuilder = requestBuilder;
  this.preloadSizeProvider = preloadSizeProvider;
}
项目:GitHub    文件:FlickrPhotoList.java   
@Override
public View onCreateView(
    @NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  final View result = inflater.inflate(R.layout.flickr_photo_list, container, false);

  list = (RecyclerView) result.findViewById(R.id.flickr_photo_list);
  layoutManager = new LinearLayoutManager(getActivity());
  list.setLayoutManager(layoutManager);
  adapter = new FlickrPhotoListAdapter();
  list.setAdapter(adapter);

  preloadSizeProvider = new ViewPreloadSizeProvider<>();
  RecyclerViewPreloader<Photo> preloader =
      new RecyclerViewPreloader<>(
          GlideApp.with(this), adapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);
  list.addOnScrollListener(preloader);
  list.setItemViewCacheSize(0);

  if (currentPhotos != null) {
    adapter.setPhotos(currentPhotos);
  }

  final GlideRequests glideRequests = GlideApp.with(this);
  fullRequest = glideRequests
      .asDrawable()
      .centerCrop()
      .placeholder(new ColorDrawable(Color.GRAY));

  thumbRequest = glideRequests
      .asDrawable()
      .diskCacheStrategy(DiskCacheStrategy.DATA)
      .override(Api.SQUARE_THUMB_SIZE)
      .transition(withCrossFade());

  list.setRecyclerListener(new RecyclerView.RecyclerListener() {
    @Override
    public void onViewRecycled(RecyclerView.ViewHolder holder) {
      PhotoTitleViewHolder vh = (PhotoTitleViewHolder) holder;
      glideRequests.clear(vh.imageView);
    }
  });

  if (savedInstanceState != null) {
    int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
    int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
    layoutManager.scrollToPositionWithOffset(index, offset);
  }

  return result;
}
项目:garras    文件:SearchUserFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mSwipeRefreshLayout.setRefreshing(false);

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new UserAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<User> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<User> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }

    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:garras    文件:SearchPhotoFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mSwipeRefreshLayout.setRefreshing(false);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:garras    文件:SearchCollectionFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mSwipeRefreshLayout.setRefreshing(false);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new CollectionAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Collection> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Collection> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:garras    文件:FeaturedFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    if (null == getActivity()) return;
    mLocalBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
    mRefreshBroadcastReceiver = new RefreshBroadcastReceiver();
    mLocalBroadcastManager.registerReceiver(mRefreshBroadcastReceiver, new IntentFilter("refresh"));

    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
}
项目:garras    文件:UserPhotoFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .override(320)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:garras    文件:RandomFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });
    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
}
项目:garras    文件:UserLikesFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .override(320)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }

    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:garras    文件:NewFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    if (null == getActivity()) return;
    mLocalBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
    mRefreshBroadcastReceiver = new RefreshBroadcastReceiver();
    mLocalBroadcastManager.registerReceiver(mRefreshBroadcastReceiver, new IntentFilter("refresh"));

    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new PhotoAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setItemViewCacheSize(10);
    mRecyclerView.setDrawingCacheEnabled(true);
    mRecyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Photos> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Photos> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });
    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
}
项目:garras    文件:CollectionFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    if (null == getActivity()) return;
    mLocalBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
    mRefreshBroadcastReceiver = new RefreshBroadcastReceiver();
    mLocalBroadcastManager.registerReceiver(mRefreshBroadcastReceiver, new IntentFilter("refresh"));

    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new CollectionAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Collection> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Collection> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }
}
项目:garras    文件:UserCollectionFragment.java   
@Override
public void bindEvenListener(@Nullable Bundle savedInstanceState) {
    super.bindEvenListener(savedInstanceState);
    allowSwipeBack(false);
    unbinder = ButterKnife.bind(this, viewDelegate.getRootView());
    mDataManager = new DataManager();
    mSwipeRefreshLayout.setOnRefreshListener(this);
    mDatas = new ArrayList<>();

    final GlideRequests glideRequests = GlideApp.with(PixelsApplication.getInstance());
    GlideRequest<Drawable> fullRequest = glideRequests
            .asDrawable()
            .centerCrop()
            .placeholder(new ColorDrawable(Color.GRAY));

    GlideRequest<Drawable> thumbRequest = glideRequests
            .asDrawable()
            .diskCacheStrategy(DiskCacheStrategy.DATA)
            .transition(withCrossFade());

    mAdapter = new CollectionAdapter(fullRequest, thumbRequest);
    mAdapter.setOnLoadMoreListener(this, mRecyclerView);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    ViewPreloadSizeProvider<Collection> preloadSizeProvider = new ViewPreloadSizeProvider<>();
    RecyclerViewPreloader<Collection> preloader =
            new RecyclerViewPreloader<>(
                    GlideApp.with(this), mAdapter, preloadSizeProvider, PRELOAD_AHEAD_ITEMS);

    mRecyclerView.addOnScrollListener(preloader);
    mRecyclerView.setItemViewCacheSize(0);

    mRecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
        @Override
        public void onViewRecycled(RecyclerView.ViewHolder holder) {
            BaseViewHolder holder1 = (BaseViewHolder) holder;
            AppCompatImageView imageView = holder1.getView(R.id.item_image);
            if (null != imageView) {
                glideRequests.clear(imageView);
            }
        }
    });

    if (null != savedInstanceState) {
        int index = savedInstanceState.getInt(STATE_POSITION_INDEX);
        int offset = savedInstanceState.getInt(STATE_POSITION_OFFSET);
        mLayoutManager.scrollToPositionWithOffset(index, offset);
    }

    RxView.clicks(mRetryBtn).compose(this.bindUntilEvent(FragmentEvent.DESTROY_VIEW)).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {
        @Override
        public void accept(Object o) throws Exception {
            mSwipeRefreshLayout.setVisibility(View.VISIBLE);
            mStateView.setVisibility(View.GONE);
            startRefresh();
        }
    });
}
项目:plaid    文件:SearchActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search);
    ButterKnife.bind(this);
    setupSearchView();

    dataManager = new SearchDataManager(this) {
        @Override
        public void onDataLoaded(List<? extends PlaidItem> data) {
            if (data != null && data.size() > 0) {
                if (results.getVisibility() != View.VISIBLE) {
                    TransitionManager.beginDelayedTransition(container,
                            getTransition(R.transition.search_show_results));
                    progress.setVisibility(View.GONE);
                    results.setVisibility(View.VISIBLE);
                    fab.setVisibility(View.VISIBLE);
                }
                adapter.addAndResort(data);
            } else {
                TransitionManager.beginDelayedTransition(
                        container, getTransition(R.transition.auto));
                progress.setVisibility(View.GONE);
                setNoResultsVisibility(View.VISIBLE);
            }
        }
    };
    ViewPreloadSizeProvider<Shot> shotPreloadSizeProvider = new ViewPreloadSizeProvider<>();
    adapter = new FeedAdapter(this, dataManager, columns, PocketUtils.isPocketInstalled(this),
            shotPreloadSizeProvider);
    setExitSharedElementCallback(FeedAdapter.createSharedElementReenterCallback(this));
    results.setAdapter(adapter);
    results.setItemAnimator(new SlideInItemAnimator());
    GridLayoutManager layoutManager = new GridLayoutManager(this, columns);
    layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return adapter.getItemColumnSpan(position);
        }
    });
    results.setLayoutManager(layoutManager);
    results.addOnScrollListener(new InfiniteScrollListener(layoutManager, dataManager) {
        @Override
        public void onLoadMore() {
            dataManager.loadMore();
        }
    });
    results.setHasFixedSize(true);
    RecyclerViewPreloader<Shot> shotPreloader =
            new RecyclerViewPreloader<>(this, adapter, shotPreloadSizeProvider, 4);
    results.addOnScrollListener(shotPreloader);

    setupTransitions();
    onNewIntent(getIntent());
    ShortcutHelper.reportSearchUsed(this);
}