Browse Source

Fix item decoration add/remove logic and one null check

renovate/org.robolectric-robolectric-4.x
Ammar Githam 4 years ago
parent
commit
82e960d9fe
  1. 10
      app/src/main/java/awais/instagrabber/customviews/PostsRecyclerView.java

10
app/src/main/java/awais/instagrabber/customviews/PostsRecyclerView.java

@ -216,6 +216,7 @@ public class PostsRecyclerView extends RecyclerView {
if (progressPercent != 100) continue; if (progressPercent != 100) continue;
final String url = progress.getString(DownloadWorker.URL); final String url = progress.getString(DownloadWorker.URL);
final List<FeedModel> feedModels = feedViewModel.getList().getValue(); final List<FeedModel> feedModels = feedViewModel.getList().getValue();
if (feedModels == null) continue;
for (int i = 0; i < feedModels.size(); i++) { for (int i = 0; i < feedModels.size(); i++) {
final FeedModel feedModel = feedModels.get(i); final FeedModel feedModel = feedModels.get(i);
final List<String> displayUrls = getDisplayUrl(feedModel); final List<String> displayUrls = getDisplayUrl(feedModel);
@ -254,10 +255,15 @@ public class PostsRecyclerView extends RecyclerView {
post(() -> { post(() -> {
TransitionManager.beginDelayedTransition(this, transition); TransitionManager.beginDelayedTransition(this, transition);
feedAdapter.notifyDataSetChanged(); feedAdapter.notifyDataSetChanged();
final int itemDecorationCount = getItemDecorationCount();
if (!layoutPreferences.getHasGap()) { if (!layoutPreferences.getHasGap()) {
removeItemDecoration(gridSpacingItemDecoration);
if (itemDecorationCount == 1) {
removeItemDecoration(gridSpacingItemDecoration);
}
} else { } else {
addItemDecoration(gridSpacingItemDecoration);
if (itemDecorationCount == 0) {
addItemDecoration(gridSpacingItemDecoration);
}
} }
if (layoutPreferences.getType() == PostsLayoutPreferences.PostsLayoutType.LINEAR) { if (layoutPreferences.getType() == PostsLayoutPreferences.PostsLayoutType.LINEAR) {
if (layoutManager.getSpanCount() != 1) { if (layoutManager.getSpanCount() != 1) {

Loading…
Cancel
Save