Prevent multiple registrations to eventHub on same TimelineFragment (#879)

This commit is contained in:
kyori19 2018-10-16 02:47:50 +09:00 committed by Konrad Pozniak
parent 25c3defd33
commit 1556a88d05
1 changed files with 40 additions and 36 deletions

View File

@ -119,6 +119,7 @@ public class TimelineFragment extends SFragment implements
public TimelineCases timelineCases;
@Inject
public EventHub eventHub;
private boolean eventRegistered = false;
private SwipeRefreshLayout swipeRefreshLayout;
private RecyclerView recyclerView;
@ -304,7 +305,7 @@ public class TimelineFragment extends SFragment implements
break;
}
}
if(statuses.size() == 0) {
if (statuses.size() == 0) {
nothingMessageView.setVisibility(View.VISIBLE);
}
}
@ -378,6 +379,7 @@ public class TimelineFragment extends SFragment implements
}
recyclerView.addOnScrollListener(scrollListener);
if (!eventRegistered) {
eventHub.getEvents()
.observeOn(AndroidSchedulers.mainThread())
.as(autoDisposable(from(this, Lifecycle.Event.ON_DESTROY)))
@ -413,6 +415,8 @@ public class TimelineFragment extends SFragment implements
handleStatusComposeEvent(status);
}
});
eventRegistered = true;
}
}
@Override
@ -583,7 +587,7 @@ public class TimelineFragment extends SFragment implements
"Expected StatusViewData.Concrete, got %s instead at position: %d of %d",
status == null ? "<null>" : status.getClass().getSimpleName(),
position,
statuses.size() -1
statuses.size() - 1
));
return;
}