Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WebmDetailsFetcher {
- private CompositeDisposable disposable = new CompositeDisposable();
- private WebmData webmData;
- public WebmDetailsFetcher(WebmData webmData) {
- this.webmData = webmData;
- }
- public void fetchWebmDetails() {
- ApolloCall<WebmQuery.Data> webmQuery = WebmApolloClient.getWebmApolloClient()
- .query(new WebmQuery(""));
- disposable.add(Rx2Apollo.from(webmQuery)
- .observeOn(AndroidSchedulers.mainThread())
- .subscribeOn(Schedulers.io())
- .subscribeWith(new DisposableObserver<Response<WebmQuery.Data>>() {
- @Override
- public void onNext(Response<WebmQuery.Data> dataResponse) {
- webmData.setWebmData(dataResponse.data());
- }
- @Override
- public void onError(Throwable e) {}
- @Override
- public void onComplete() {}
- }));
- }
- }
- public interface WebmData {
- void setWebmData(WebmQuery.Data data);
- }
- public class RandomFragment extends Fragment implements ToggleVotes, WebmData {
- @BindView(R.id.player_view)
- SimpleExoPlayerView playerView;
- @BindView(R.id.txt_createdAt)
- TextView createdAt;
- @BindView(R.id.txt_views)
- TextView views;
- @BindView(R.id.button_random)
- Button randomButton;
- @BindView(R.id.tags_recycler_view)
- RecyclerView mTagsRecycler;
- @BindView(R.id.loading_bar)
- ProgressBar progressBar;
- // Likes N dislikes
- @BindView(R.id.like_count)
- TextView tvLikeCount;
- @BindView(R.id.dislike_count)
- TextView tvDislikeCount;
- @BindView(R.id.thumb_up_button)
- ToggleButton thumbUpButton;
- @BindView(R.id.thumb_down_button)
- ToggleButton thumbDownButton;
- @Inject
- DefaultBandwidthMeter bandwidthMeter;
- @Inject
- TrackSelection.Factory videoTrackSelectionFactory;
- @Inject
- TrackSelector trackSelector;
- @Inject
- SimpleExoPlayer player;
- @Inject
- DataSource.Factory dataSourceFactory;
- private String webmId;
- private int likeCount;
- private int dislikeCount;
- private boolean hasLike = false;
- private boolean hasDislike = false;
- private ToggleVotesUtil toggleVotesUtil;
- private WebmDetailsFetcher webmFetcher;
- private TagsAdapter mTagsAdapter;
- public static RandomFragment newInstance() {
- return new RandomFragment();
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.random_fragment, container, false);
- ButterKnife.bind(this, v);
- LinearLayoutManager mLayoutManager = new LinearLayoutManager(
- getContext(), LinearLayoutManager.HORIZONTAL, false);
- mTagsRecycler.setLayoutManager(mLayoutManager);
- toggleVotesUtil = new ToggleVotesUtil(this);
- webmFetcher = new WebmDetailsFetcher(this);
- randomButton.setOnClickListener(view -> webmFetcher.fetchWebmDetails());
- initPlayerComponent();
- webmFetcher.fetchWebmDetails();
- return v;
- }
- @Override
- public void setWebmData(WebmQuery.Data data) {
- final WebmQuery.GetWebm getWebm = data.getWebm();
- if (getWebm != null) {
- likeCount = getWebm.likes();
- dislikeCount = getWebm.dislikes();
- webmId = getWebm.id();
- setWebmId(webmId);
- initPlayer(getWebm.url());
- createdAt.setText(getWebm.createdAt());
- views.setText(String.valueOf(getWebm.views()));
- tvLikeCount.setText(String.valueOf(likeCount));
- tvDislikeCount.setText(String.valueOf(dislikeCount));
- List<String> tagsList = new ArrayList<>();
- for (int i = 0; i < data.getWebm().tags().size(); ++i) {
- tagsList.add(data.getWebm().tags().get(i).name());
- }
- mTagsAdapter = new TagsAdapter(getContext(), tagsList);
- mTagsRecycler.setAdapter(mTagsAdapter);
- mTagsAdapter.SetOnItemClickListener((view, position) -> {
- String tagName = mTagsAdapter.getItem(position).toLowerCase();
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- Fragment fragment = WebmListFragment.newInstance("createdAt", tagName);
- ft.replace(R.id.container, fragment).commit();
- });
- }
- }
- private void setWebmId(String webmId) {
- this.webmId = webmId;
- }
- private String getWebmId() {
- return webmId;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement