Advertisement
dmfrey

Untitled

Nov 22nd, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.26 KB | None | 0 0
  1. package org.mythtv.android.presentation.view.fragment;
  2.  
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.os.Bundle;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.util.Log;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.Button;
  12. import android.widget.RelativeLayout;
  13.  
  14. import org.mythtv.android.R;
  15. import org.mythtv.android.presentation.internal.di.components.VideoComponent;
  16. import org.mythtv.android.presentation.internal.di.modules.VideosModule;
  17. import org.mythtv.android.presentation.model.VideoMetadataInfoModel;
  18. import org.mythtv.android.presentation.presenter.VideoMetadataInfoListPresenter;
  19. import org.mythtv.android.presentation.view.VideoMetadataInfoListView;
  20. import org.mythtv.android.presentation.view.adapter.VideoMetadataInfosAdapter;
  21. import org.mythtv.android.presentation.view.adapter.VideoMetadataInfosLayoutManager;
  22.  
  23. import java.util.ArrayList;
  24. import java.util.Collection;
  25.  
  26. import javax.inject.Inject;
  27.  
  28. import butterknife.Bind;
  29. import butterknife.ButterKnife;
  30. import butterknife.OnClick;
  31.  
  32. /**
  33.  * Created by dmfrey on 8/31/15.
  34.  */
  35. public class VideoMetadataInfoListFragment extends BaseFragment implements VideoMetadataInfoListView {
  36.  
  37.     private static final String TAG = VideoMetadataInfoListFragment.class.getSimpleName();
  38.  
  39.     private static final String ARGUMENT_KEY_CONTENT_TYPE = "org.mythtv.android.ARGUMENT_CONTENT_TYPE";
  40.  
  41.     /**
  42.      * Interface for listening videoMetadataInfo list events.
  43.      */
  44.     public interface VideoMetadataInfoListListener {
  45.  
  46.         void onVideoMetadataInfoClicked( final VideoMetadataInfoModel videoMetadataInfoModel );
  47.  
  48.     }
  49.  
  50.     private String contentType;
  51.  
  52.     @Inject
  53.     VideoMetadataInfoListPresenter videoMetadataInfoListPresenter;
  54.  
  55.     @Bind( R.id.rv_videoMetadataInfos )
  56.     RecyclerView rv_videoMetadataInfos;
  57.  
  58.     @Bind( R.id.rl_progress )
  59.     RelativeLayout rl_progress;
  60.  
  61.     @Bind( R.id.rl_retry )
  62.     RelativeLayout rl_retry;
  63.  
  64.     @Bind( R.id.bt_retry )
  65.     Button bt_retry;
  66.  
  67.     private VideoMetadataInfosAdapter videoMetadataInfosAdapter;
  68.  
  69.     private VideoMetadataInfoListListener videoMetadataInfoListListener;
  70.  
  71.     public VideoMetadataInfoListFragment() { super(); }
  72.  
  73.     public static VideoMetadataInfoListFragment newInstance( String contentType ) {
  74.  
  75.         VideoMetadataInfoListFragment videoMetadataInfoListFragment = new VideoMetadataInfoListFragment();
  76.  
  77.         Bundle args = new Bundle();
  78.         args.putString( ARGUMENT_KEY_CONTENT_TYPE, contentType );
  79.         videoMetadataInfoListFragment.setArguments( args );
  80.  
  81.         return videoMetadataInfoListFragment;
  82.     }
  83.  
  84.     @Override public void onAttach( Activity activity ) {
  85.         super.onAttach( activity );
  86.         Log.d( TAG, "onAttach : enter" );
  87.  
  88.         if( activity instanceof VideoMetadataInfoListListener ) {
  89.             this.videoMetadataInfoListListener = (VideoMetadataInfoListListener) activity;
  90.         }
  91.  
  92.         Log.d( TAG, "onAttach : exit" );
  93.     }
  94.  
  95.     @Override
  96.     public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
  97.         Log.d( TAG, "onCreateView : enter" );
  98.  
  99.         View fragmentView = inflater.inflate( R.layout.fragment_video_metadata_info_list, container, false );
  100.         ButterKnife.bind( this, fragmentView );
  101.         setupUI();
  102.  
  103.         Log.d( TAG, "onCreateView : exit" );
  104.         return fragmentView;
  105.     }
  106.  
  107.     @Override
  108.     public void onActivityCreated( Bundle savedInstanceState ) {
  109.         Log.d( TAG, "onActivityCreated : enter" );
  110.         super.onActivityCreated( savedInstanceState );
  111.  
  112.         this.initialize();
  113.         this.loadVideoMetadataInfoList();
  114.  
  115.         Log.d( TAG, "onActivityCreated : exit" );
  116.     }
  117.  
  118.     @Override
  119.     public void onResume() {
  120.         Log.d( TAG, "onResume : enter" );
  121.         super.onResume();
  122.  
  123.         this.videoMetadataInfoListPresenter.resume();
  124.  
  125.         Log.d( TAG, "onResume : exit" );
  126.     }
  127.  
  128.     @Override
  129.     public void onPause() {
  130.         Log.d( TAG, "onPause : enter" );
  131.         super.onPause();
  132.  
  133.         this.videoMetadataInfoListPresenter.pause();
  134.  
  135.         Log.d( TAG, "onPause : exit" );
  136.     }
  137.  
  138.     @Override
  139.     public void onDestroy() {
  140.         Log.d( TAG, "onDestroy : enter" );
  141.         super.onDestroy();
  142.  
  143.         this.videoMetadataInfoListPresenter.destroy();
  144.  
  145.         Log.d( TAG, "onDestroy : exit" );
  146.     }
  147.  
  148.     @Override
  149.     public void onDestroyView() {
  150.         Log.d(TAG, "onDestroyView : enter");
  151.         super.onDestroyView();
  152.  
  153.         ButterKnife.unbind( this );
  154.  
  155.         Log.d( TAG, "onDestroyView : exit" );
  156.     }
  157.  
  158.     private void initialize() {
  159.         Log.d( TAG, "initialize : enter" );
  160.  
  161.         this.getComponent( VideoComponent.class ).inject( this );
  162.         this.videoMetadataInfoListPresenter.setView( this );
  163.         this.contentType = getArguments().getString( ARGUMENT_KEY_CONTENT_TYPE );
  164.         Log.d( TAG, "initialize : contentType=" + contentType );
  165.         this.getComponent( VideoComponent.class ).plus( new VideosModule( contentType ) );
  166. //        this.videoMetadataInfoListPresenter.initialize( contentType );
  167.  
  168.         Log.d( TAG, "initialize : exit" );
  169.     }
  170.  
  171.     private void setupUI() {
  172.         Log.d( TAG, "setupUI : enter" );
  173.  
  174.         this.rv_videoMetadataInfos.setLayoutManager( new VideoMetadataInfosLayoutManager( getActivity() ) );
  175.  
  176.         this.videoMetadataInfosAdapter = new VideoMetadataInfosAdapter( getActivity(), new ArrayList<VideoMetadataInfoModel>() );
  177.         this.videoMetadataInfosAdapter.setOnItemClickListener( onItemClickListener );
  178.         this.rv_videoMetadataInfos.setAdapter( videoMetadataInfosAdapter );
  179.  
  180.         Log.d( TAG, "setupUI : exit" );
  181.     }
  182.  
  183.     @Override
  184.     public void showLoading() {
  185.         Log.d( TAG, "showLoading : enter" );
  186.  
  187.         this.rl_progress.setVisibility( View.VISIBLE );
  188.         this.getActivity().setProgressBarIndeterminateVisibility( true );
  189.  
  190.         Log.d( TAG, "showLoading : exit" );
  191.     }
  192.  
  193.     @Override
  194.     public void hideLoading() {
  195.         Log.d( TAG, "hideLoading : enter" );
  196.  
  197.         this.rl_progress.setVisibility( View.GONE );
  198.         this.getActivity().setProgressBarIndeterminateVisibility( false );
  199.  
  200.         Log.d( TAG, "hideLoading : exit" );
  201.     }
  202.  
  203.     @Override
  204.     public void showRetry() {
  205.         Log.d( TAG, "showRetry : enter" );
  206.  
  207.         this.rl_retry.setVisibility( View.VISIBLE );
  208.  
  209.         Log.d( TAG, "showRetry : exit" );
  210.     }
  211.  
  212.     @Override
  213.     public void hideRetry() {
  214.         Log.d( TAG, "hideRetry : enter" );
  215.  
  216.         this.rl_retry.setVisibility( View.GONE );
  217.  
  218.         Log.d( TAG, "hideRetry : exit" );
  219.     }
  220.  
  221.     @Override
  222.     public void renderVideoMetadataInfoList( Collection<VideoMetadataInfoModel> videoMetadataInfoModelCollection ) {
  223.         Log.d( TAG, "renderVideoMetadataInfoList : enter" );
  224.  
  225.         if( null != videoMetadataInfoModelCollection ) {
  226.             Log.d( TAG, "renderVideoMetadataInfoList : videoMetadataInfoModelCollection is not null, videoMetadataInfoModelCollection=" + videoMetadataInfoModelCollection );
  227.  
  228.             this.videoMetadataInfosAdapter.setVideoMetadataInfosCollection( videoMetadataInfoModelCollection );
  229.  
  230.         }
  231.  
  232.         Log.d( TAG, "renderVideoMetadataInfoList : exit" );
  233.     }
  234.  
  235.     @Override
  236.     public void viewVideoMetadataInfo( VideoMetadataInfoModel videoMetadataInfoModel ) {
  237.         Log.d( TAG, "viewVideoMetadataInfo : enter" );
  238.  
  239.         if( null != this.videoMetadataInfoListListener ) {
  240.  
  241.             this.videoMetadataInfoListListener.onVideoMetadataInfoClicked( videoMetadataInfoModel );
  242.  
  243.         }
  244.  
  245.         Log.d( TAG, "viewVideoMetadataInfo : exit" );
  246.     }
  247.  
  248.     @Override
  249.     public void showError( String message ) {
  250.         Log.d( TAG, "showError : enter" );
  251.  
  252.         this.showToastMessage( message );
  253.  
  254.         Log.d( TAG, "showError : exit" );
  255.     }
  256.  
  257.     @Override
  258.     public Context getContext() {
  259.         Log.d( TAG, "getContext : enter" );
  260.  
  261.         Log.d( TAG, "getContext : exit" );
  262.         return this.getActivity().getApplicationContext();
  263.     }
  264.  
  265.     /**
  266.      * Loads all videoMetadataInfos.
  267.      */
  268.     private void loadVideoMetadataInfoList() {
  269.         Log.d( TAG, "loadVideoMetadataInfoList : enter" );
  270.  
  271.         this.videoMetadataInfoListPresenter.initialize( contentType );
  272.  
  273.         Log.d( TAG, "loadVideoMetadataInfoList : exit" );
  274.     }
  275.  
  276.     @OnClick( R.id.bt_retry )
  277.     void onButtonRetryClick() {
  278.         Log.d( TAG, "onButtonRetryClick : enter" );
  279.  
  280.         VideoMetadataInfoListFragment.this.loadVideoMetadataInfoList();
  281.  
  282.         Log.d( TAG, "onButtonRetryClick : exit" );
  283.     }
  284.  
  285.     private VideoMetadataInfosAdapter.OnItemClickListener onItemClickListener = new VideoMetadataInfosAdapter.OnItemClickListener() {
  286.  
  287.                 @Override
  288.                 public void onVideoMetadataInfoItemClicked( VideoMetadataInfoModel videoMetadataInfoModel ) {
  289.  
  290.                     if( null != VideoMetadataInfoListFragment.this.videoMetadataInfoListPresenter && null != videoMetadataInfoModel ) {
  291.  
  292.                         VideoMetadataInfoListFragment.this.videoMetadataInfoListPresenter.onVideoMetadataInfoClicked(videoMetadataInfoModel);
  293.  
  294.                     }
  295.  
  296.                 }
  297.  
  298.     };
  299.  
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement