Advertisement
Guest User

Untitled

a guest
Mar 25th, 2018
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.61 KB | None | 0 0
  1. public class WebmDetailsFetcher {
  2.  
  3.     private CompositeDisposable disposable = new CompositeDisposable();
  4.     private WebmData webmData;
  5.  
  6.     public WebmDetailsFetcher(WebmData webmData) {
  7.         this.webmData = webmData;
  8.     }
  9.  
  10.     public void fetchWebmDetails() {
  11.         ApolloCall<WebmQuery.Data> webmQuery = WebmApolloClient.getWebmApolloClient()
  12.                 .query(new WebmQuery(""));
  13.         disposable.add(Rx2Apollo.from(webmQuery)
  14.         .observeOn(AndroidSchedulers.mainThread())
  15.         .subscribeOn(Schedulers.io())
  16.         .subscribeWith(new DisposableObserver<Response<WebmQuery.Data>>() {
  17.             @Override
  18.             public void onNext(Response<WebmQuery.Data> dataResponse) {
  19.                 webmData.setWebmData(dataResponse.data());
  20.             }
  21.  
  22.             @Override
  23.             public void onError(Throwable e) {}
  24.  
  25.             @Override
  26.             public void onComplete() {}
  27.         }));
  28.     }
  29. }
  30.  
  31.  
  32. public interface WebmData {
  33.  
  34.     void setWebmData(WebmQuery.Data data);
  35. }
  36.  
  37.  
  38. public class RandomFragment extends Fragment implements ToggleVotes, WebmData {
  39.     @BindView(R.id.player_view)
  40.     SimpleExoPlayerView playerView;
  41.     @BindView(R.id.txt_createdAt)
  42.     TextView createdAt;
  43.     @BindView(R.id.txt_views)
  44.     TextView views;
  45.     @BindView(R.id.button_random)
  46.     Button randomButton;
  47.     @BindView(R.id.tags_recycler_view)
  48.     RecyclerView mTagsRecycler;
  49.     @BindView(R.id.loading_bar)
  50.     ProgressBar progressBar;
  51.  
  52.     // Likes N dislikes
  53.     @BindView(R.id.like_count)
  54.     TextView tvLikeCount;
  55.     @BindView(R.id.dislike_count)
  56.     TextView tvDislikeCount;
  57.     @BindView(R.id.thumb_up_button)
  58.     ToggleButton thumbUpButton;
  59.     @BindView(R.id.thumb_down_button)
  60.     ToggleButton thumbDownButton;
  61.  
  62.     @Inject
  63.     DefaultBandwidthMeter bandwidthMeter;
  64.     @Inject
  65.     TrackSelection.Factory videoTrackSelectionFactory;
  66.     @Inject
  67.     TrackSelector trackSelector;
  68.     @Inject
  69.     SimpleExoPlayer player;
  70.     @Inject
  71.     DataSource.Factory dataSourceFactory;
  72.  
  73.     private String webmId;
  74.     private int likeCount;
  75.     private int dislikeCount;
  76.     private boolean hasLike = false;
  77.     private boolean hasDislike = false;
  78.     private ToggleVotesUtil toggleVotesUtil;
  79.     private WebmDetailsFetcher webmFetcher;
  80.  
  81.     private TagsAdapter mTagsAdapter;
  82.  
  83.     public static RandomFragment newInstance() {
  84.         return new RandomFragment();
  85.     }
  86.  
  87.     @Override
  88.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  89.         View v = inflater.inflate(R.layout.random_fragment, container, false);
  90.         ButterKnife.bind(this, v);
  91.  
  92.         LinearLayoutManager mLayoutManager = new LinearLayoutManager(
  93.                 getContext(), LinearLayoutManager.HORIZONTAL, false);
  94.  
  95.         mTagsRecycler.setLayoutManager(mLayoutManager);
  96.         toggleVotesUtil = new ToggleVotesUtil(this);
  97.         webmFetcher = new WebmDetailsFetcher(this);
  98.  
  99.         randomButton.setOnClickListener(view -> webmFetcher.fetchWebmDetails());
  100.         initPlayerComponent();
  101.         webmFetcher.fetchWebmDetails();
  102.  
  103.         return v;
  104.     }
  105.  
  106.     @Override
  107.     public void setWebmData(WebmQuery.Data data) {
  108.         final WebmQuery.GetWebm getWebm = data.getWebm();
  109.  
  110.         if (getWebm != null) {
  111.             likeCount = getWebm.likes();
  112.             dislikeCount = getWebm.dislikes();
  113.             webmId = getWebm.id();
  114.  
  115.             setWebmId(webmId);
  116.             initPlayer(getWebm.url());
  117.  
  118.             createdAt.setText(getWebm.createdAt());
  119.             views.setText(String.valueOf(getWebm.views()));
  120.             tvLikeCount.setText(String.valueOf(likeCount));
  121.             tvDislikeCount.setText(String.valueOf(dislikeCount));
  122.  
  123.             List<String> tagsList = new ArrayList<>();
  124.             for (int i = 0; i < data.getWebm().tags().size(); ++i) {
  125.                 tagsList.add(data.getWebm().tags().get(i).name());
  126.             }
  127.             mTagsAdapter = new TagsAdapter(getContext(), tagsList);
  128.             mTagsRecycler.setAdapter(mTagsAdapter);
  129.             mTagsAdapter.SetOnItemClickListener((view, position) -> {
  130.                 String tagName = mTagsAdapter.getItem(position).toLowerCase();
  131.                 FragmentTransaction ft = getFragmentManager().beginTransaction();
  132.                 Fragment fragment = WebmListFragment.newInstance("createdAt", tagName);
  133.                 ft.replace(R.id.container, fragment).commit();
  134.             });
  135.         }
  136.     }
  137.  
  138.     private void setWebmId(String webmId) {
  139.         this.webmId = webmId;
  140.     }
  141.  
  142.     private String getWebmId() {
  143.         return webmId;
  144.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement