yangchong 7 gadi atpakaļ
vecāks
revīzija
180b2a3feb
100 mainītis faili ar 2511 papildinājumiem un 225 dzēšanām
  1. 5 0
      YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/AbsVideoPlayerController.java
  2. 2 1
      YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayer.java
  3. 86 15
      YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayerController.java
  4. 24 2
      YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayerUtils.java
  5. BIN
      YCVideoPlayerLib/src/main/res/drawable-xhdpi/player_locked_btn.png
  6. BIN
      YCVideoPlayerLib/src/main/res/drawable-xhdpi/player_unlock_btn.png
  7. 16 0
      YCVideoPlayerLib/src/main/res/drawable/shape_lock_bg.xml
  8. 17 0
      YCVideoPlayerLib/src/main/res/layout/custom_video_player.xml
  9. 2 2
      YCVideoPlayerLib/src/main/res/layout/custom_video_player_bottom.xml
  10. 1 1
      YCVideoPlayerLib/src/main/res/layout/custom_video_player_error.xml
  11. 2 2
      YCVideoPlayerLib/src/main/res/layout/custom_video_player_top.xml
  12. 1 0
      YCVideoPlayerLib/src/main/res/values/colors.xml
  13. 3 3
      app/build.gradle
  14. 38 35
      app/src/main/AndroidManifest.xml
  15. 66 0
      app/src/main/java/org/yczbj/ycvideoplayer/api/http/movie/MovieApi.java
  16. 58 0
      app/src/main/java/org/yczbj/ycvideoplayer/api/http/movie/MovieModel.java
  17. 14 1
      app/src/main/java/org/yczbj/ycvideoplayer/base/BaseFragmentFactory.java
  18. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/home/view/activity/VideoPlayerMeActivity.java
  19. 3 10
      app/src/main/java/org/yczbj/ycvideoplayer/ui/home/view/fragment/HomeFragment.java
  20. 19 13
      app/src/main/java/org/yczbj/ycvideoplayer/ui/main/view/activity/MainActivity.java
  21. 29 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/contract/MovieContract.java
  22. 27 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/contract/MovieDetailContract.java
  23. 356 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/model/MovieBean.java
  24. 586 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/model/MovieDetailBean.java
  25. 66 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/presenter/MovieDetailPresenter.java
  26. 70 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/presenter/MoviePresenter.java
  27. 344 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/activity/MovieDetailActivity.java
  28. 62 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieAdapter.java
  29. 54 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieBannerAdapter.java
  30. 68 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieDetailAdapter.java
  31. 355 0
      app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/fragment/MovieFragment.java
  32. 0 14
      app/src/main/java/org/yczbj/ycvideoplayer/ui/other/HomeBean.java
  33. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/person/MeCacheActivity.java
  34. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/person/adapter/MeCacheAdapter.java
  35. 21 5
      app/src/main/java/org/yczbj/ycvideoplayer/ui/special/SpecialFragment.java
  36. 7 7
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/TestActivity.java
  37. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/model/VideoConstant.java
  38. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFirstActivity.java
  39. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFiveActivity.java
  40. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFourActivity.java
  41. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiSecondActivity.java
  42. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiSixActivity.java
  43. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiThreeActivity.java
  44. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestFirstActivity.java
  45. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/five/TestFiveActivity.java
  46. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/four/TestFourActivity.java
  47. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestFiveBean.java
  48. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFirstActivity.java
  49. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFiveActivity.java
  50. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFiveAdapter.java
  51. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFourActivity.java
  52. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFourAdapter.java
  53. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFragment.java
  54. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListSecondActivity.java
  55. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListThirdActivity.java
  56. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestSecondActivity.java
  57. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/six/TestSixActivity.java
  58. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestThreeActivity.java
  59. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFirstActivity.java
  60. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFiveActivity.java
  61. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFiveAdapter.java
  62. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFourActivity.java
  63. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFourAdapter.java
  64. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyThirdActivity.java
  65. 7 7
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/TestMyActivity.java
  66. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/base/HomeKeyWatcher.java
  67. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/model/Video.java
  68. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFirstActivity.java
  69. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFiveActivity.java
  70. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFourActivity.java
  71. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFourFragment.java
  72. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySecondActivity.java
  73. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySixActivity.java
  74. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySixFragment.java
  75. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyThirdActivity.java
  76. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/VideoAdapter.java
  77. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManager.java
  78. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerDBController.java
  79. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerDBOpenHelper.java
  80. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerModel.java
  81. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlCacheTasksManager.java
  82. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManager.java
  83. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerDBController.java
  84. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerDBOpenHelper.java
  85. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerModel.java
  86. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/model/api.java
  87. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/NotificationItem.java
  88. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLHybridTestActivity.java
  89. 4 4
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLManyTestActivity.java
  90. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLMyFileTestActivity.java
  91. 2 2
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLNotificationTestActivity.java
  92. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLSingleTestActivity.java
  93. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/GlideCropActivity.java
  94. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/adapter/DLManyAdapter.java
  95. 3 3
      app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/adapter/DlMyFileAdapter.java
  96. 0 5
      app/src/main/java/org/yczbj/ycvideoplayer/ui/video/view/activity/VideoContentActivity.java
  97. 1 1
      app/src/main/java/org/yczbj/ycvideoplayer/ui/video/view/fragment/VideoFragment.java
  98. BIN
      app/src/main/res/drawable-xhdpi/ic_category_0.png
  99. BIN
      app/src/main/res/drawable-xhdpi/ic_category_1.png
  100. BIN
      app/src/main/res/drawable-xhdpi/ic_category_2.png

+ 5 - 0
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/AbsVideoPlayerController.java

@@ -131,6 +131,11 @@ public abstract class AbsVideoPlayerController extends FrameLayout implements Vi
      */
     public abstract void setLength(long length);
 
+    /**
+     * 设置总时长
+     */
+    public abstract void setLength(String length);
+
     /**
      * 当播放器的播放状态发生变化,在此方法中国你更新不同的播放状态的UI
      *

+ 2 - 1
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayer.java

@@ -762,6 +762,7 @@ public class VideoPlayer extends FrameLayout implements InterVideoPlayer{
 
 
     /**
+     * 进入全屏模式
      * 全屏,将mContainer(内部包含mTextureView和mController)从当前容器中移除,并添加到android.R.content中.
      * 切换横屏时需要在manifest的activity标签下添加android:configChanges="orientation|keyboardHidden|screenSize"配置,
      * 以避免Activity重新走生命周期
@@ -773,7 +774,6 @@ public class VideoPlayer extends FrameLayout implements InterVideoPlayer{
         }
         // 隐藏ActionBar、状态栏,并横屏
         VideoPlayerUtils.hideActionBar(mContext);
-        //
         VideoPlayerUtils.scanForActivity(mContext).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         ViewGroup contentView = (ViewGroup) VideoPlayerUtils.scanForActivity(mContext).findViewById(android.R.id.content);
         if (mCurrentMode == MODE_TINY_WINDOW) {
@@ -791,6 +791,7 @@ public class VideoPlayer extends FrameLayout implements InterVideoPlayer{
 
 
     /**
+     * 退出全屏模式
      * 退出全屏,移除mTextureView和mController,并添加到非全屏的容器中。
      * 切换竖屏时需要在manifest的activity标签下添加android:configChanges="orientation|keyboardHidden|screenSize"配置,
      * 以避免Activity重新走生命周期.

+ 86 - 15
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayerController.java

@@ -1,22 +1,22 @@
 package org.yczbj.ycvideoplayerlib;
 
+import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.ActivityInfo;
 import android.graphics.Color;
 import android.os.BatteryManager;
 import android.os.CountDownTimer;
 import android.support.annotation.DrawableRes;
-import android.util.Log;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.widget.Button;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
 import android.widget.SeekBar;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -27,7 +27,6 @@ import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
-
 /**
  * @author yc
  * @date 2017/9/4
@@ -97,10 +96,13 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
     private TextView mTvSeeContent;
     private Button mBtnVip;
     private ImageView mIvTrySee;
-
+    private FrameLayout mFlLock;
+    private ImageView mIvLock;
 
     private boolean topBottomVisible;
-    //倒计时器
+    /**
+     * 倒计时器
+     */
     private CountDownTimer mDismissTopBottomCountDownTimer;
     private List<VideoClarity> clarities;
     private int defaultClarityIndex;
@@ -109,15 +111,29 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      * 是否已经注册了电池广播
      */
     private boolean hasRegisterBatteryReceiver;
-    //setMemberType 如果不设置该方法,那么默认视频都是可以看的
-    //试看类型
+    /**
+     * 试看类型 setMemberType 如果不设置该方法,那么默认视频都是可以看的
+     */
     private int mType;
-    //是否有观看权限
+    /**
+     * 是否有观看权限
+     */
     private boolean mIsSee = true;
-    //是否登录
+    /**
+     * 是否登录
+     */
     private boolean mIsLogin = true;
+    /**
+     * 是否看完
+     */
     private boolean mSeeEnd = true;
-    //会员权限话术内容
+    /**
+     * 是否锁屏
+     */
+    private boolean mIsLock = false;
+    /**
+     * 会员权限话术内容
+     */
     private ArrayList<String> mMemberContent;
     /**
      * 这个是time时间不操作界面,则自动隐藏顶部和底部视图布局
@@ -180,6 +196,8 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         mTvSeeContent = (TextView)findViewById(R.id.tv_see_content);
         mBtnVip = (Button)findViewById(R.id.btn_vip);
         mIvTrySee = (ImageView) findViewById(R.id.iv_try_see);
+        mFlLock = (FrameLayout) findViewById(R.id.fl_lock);
+        mIvLock = (ImageView) findViewById(R.id.iv_lock);
     }
 
 
@@ -194,6 +212,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         mShare.setOnClickListener(this);
         mBtnVip.setOnClickListener(this);
         mIvTrySee.setOnClickListener(this);
+        mFlLock.setOnClickListener(this);
         mSeek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
             @Override
             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
@@ -318,13 +337,23 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
 
     /**
      * 设置视频时长
-     * @param length            时长
+     * @param length            时长,long类型
      */
     @Override
     public void setLength(long length) {
         mLength.setText(VideoPlayerUtils.formatTime(length));
     }
 
+    /**
+     * 设置视频时长
+     * @param length            时长,String类型
+     */
+    @Override
+    public void setLength(String length) {
+        mLength.setText(length);
+    }
+
+
     /**
      * 设置播放器
      * @param VideoPlayer   播放器
@@ -362,8 +391,11 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
                     VideoClarity clarity = clarities.get(clarityIndex);
                     mClarity.setText(clarity.getGrade());
                     long currentPosition = mVideoPlayer.getCurrentPosition();
+                    //释放播放器
                     mVideoPlayer.releasePlayer();
+                    //设置视频Url,以及headers
                     mVideoPlayer.setUp(clarity.getVideoUrl(), null);
+                    //开始从此位置播放
                     mVideoPlayer.start(currentPosition);
                 }
 
@@ -475,6 +507,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         switch (playMode) {
             //普通模式
             case VideoPlayer.MODE_NORMAL:
+                mFlLock.setVisibility(View.GONE);
                 mBack.setVisibility(View.VISIBLE);
                 mFullScreen.setImageResource(R.drawable.ic_player_enlarge);
                 mFullScreen.setVisibility(View.VISIBLE);
@@ -487,6 +520,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
                 break;
             //全屏模式
             case VideoPlayer.MODE_FULL_SCREEN:
+                mFlLock.setVisibility(View.VISIBLE);
                 mBack.setVisibility(View.VISIBLE);
                 mFullScreen.setVisibility(View.GONE);
                 mFullScreen.setImageResource(R.drawable.ic_player_shrink);
@@ -498,9 +532,21 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
                     mContext.registerReceiver(mBatterReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
                     hasRegisterBatteryReceiver = true;
                 }
+                Activity activity = VideoPlayerUtils.scanForActivity(mContext);
+                //TODO 待处理问题,先隐藏
+                /*if(VideoPlayerUtils.isActivityLiving(activity)){
+                    if(mIsLock){
+                        //设置屏幕不能旋转
+                        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+                    }else {
+                        //设置自动旋转
+                        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+                    }
+                }*/
                 break;
             //小窗口模式
             case VideoPlayer.MODE_TINY_WINDOW:
+                mFlLock.setVisibility(View.GONE);
                 mBack.setVisibility(View.VISIBLE);
                 mClarity.setVisibility(View.GONE);
                 break;
@@ -565,7 +611,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
             mLength.setVisibility(View.VISIBLE);
         }
 
-        //mCenterStart.setVisibility(View.VISIBLE);
+        mFlLock.setVisibility(View.GONE);
         mImage.setVisibility(View.VISIBLE);
         mBottom.setVisibility(View.GONE);
         mFullScreen.setImageResource(R.drawable.ic_player_enlarge);
@@ -612,10 +658,14 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
                 mVideoPlayer.restart();
             }
         } else if (v == mFullScreen) {
-            //全屏模式
+            //全屏模式,重置锁屏,设置为未选中状态
             if (mVideoPlayer.isNormal() || mVideoPlayer.isTinyWindow()) {
+                mFlLock.setVisibility(VISIBLE);
+                mIsLock = false;
+                mIvLock.setImageResource(R.drawable.player_unlock_btn);
                 mVideoPlayer.enterFullScreen();
             } else if (mVideoPlayer.isFullScreen()) {
+                mFlLock.setVisibility(GONE);
                 mVideoPlayer.exitFullScreen();
             }
         } else if (v == mClarity) {
@@ -653,7 +703,10 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
                 //试看结束, 登录后即可观看全部免费课程。
                 mClickListener.onClick(ConstantKeys.Gender.MEMBER);
             }
-        } else if (v == this) {
+        } else if(v == mFlLock){
+            //点击锁屏按钮,则进入锁屏模式
+            setLock(mIsLock);
+        }else if (v == this) {
             if (mVideoPlayer.isPlaying() || mVideoPlayer.isPaused()
                     || mVideoPlayer.isBufferingPlaying() || mVideoPlayer.isBufferingPaused()) {
                 if(mTrySeeTime==0){
@@ -734,6 +787,24 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         }
     }
 
+    /**
+     * 设置锁屏模式,默认是未锁屏的
+     * 当为true时,则锁屏;否则为未锁屏
+     * @param isLock        是否锁屏
+     */
+    private void setLock(boolean isLock){
+        if(isLock){
+            mIsLock = false;
+            mIvLock.setImageResource(R.drawable.player_unlock_btn);
+        }else {
+            mIsLock = true;
+            mIvLock.setImageResource(R.drawable.player_locked_btn);
+        }
+    }
+
+    public boolean getLock(){
+        return mIsLock;
+    }
 
     /**
      * 更新播放进度

+ 24 - 2
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/VideoPlayerUtils.java

@@ -7,6 +7,7 @@ import android.content.ContextWrapper;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.view.ContextThemeWrapper;
+import android.util.Log;
 import android.util.TypedValue;
 import android.view.WindowManager;
 
@@ -25,7 +26,9 @@ public class VideoPlayerUtils {
      * @return              对象的活动对象,如果它不是活动对象,则为空。
      */
     static Activity scanForActivity(Context context) {
-        if (context == null) return null;
+        if (context == null) {
+            return null;
+        }
         if (context instanceof Activity) {
             return (Activity) context;
         } else if (context instanceof ContextWrapper) {
@@ -34,13 +37,32 @@ public class VideoPlayerUtils {
         return null;
     }
 
+    /**
+     * 判断某Activity是否挂掉
+     * @param activity      activity
+     * @return
+     */
+    public static boolean isActivityLiving(Activity activity) {
+        if (activity == null) {
+            return false;
+        }
+        if (activity.isFinishing()) {
+            return false;
+        }
+        return true;
+    }
+
+
+
     /**
      * Get AppCompatActivity from context
      * @param context           上下文
      * @return AppCompatActivity if it's not null
      */
     private static AppCompatActivity getAppCompActivity(Context context) {
-        if (context == null) return null;
+        if (context == null) {
+            return null;
+        }
         if (context instanceof AppCompatActivity) {
             return (AppCompatActivity) context;
         } else if (context instanceof ContextThemeWrapper) {

BIN
YCVideoPlayerLib/src/main/res/drawable-xhdpi/player_locked_btn.png


BIN
YCVideoPlayerLib/src/main/res/drawable-xhdpi/player_unlock_btn.png


+ 16 - 0
YCVideoPlayerLib/src/main/res/drawable/shape_lock_bg.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <solid android:color="@color/alpha_25_black" />
+    <padding
+        android:left="1px"
+        android:top="1px"
+        android:right="1px"
+        android:bottom="1px" />
+    <stroke
+        android:width="1px"
+        android:color="@android:color/transparent" />
+    <size android:width="40dp"
+        android:height="40dp" />
+</shape>

+ 17 - 0
YCVideoPlayerLib/src/main/res/layout/custom_video_player.xml

@@ -59,6 +59,23 @@
         android:layout_centerInParent="true"
         android:src="@drawable/selector_try_see"
         android:visibility="gone"/>
+    <!--锁屏布局,全屏时展示,其他隐藏-->
+    <FrameLayout
+        android:id="@+id/fl_lock"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:visibility="visible"
+        android:layout_centerVertical="true"
+        android:layout_marginStart="15dp"
+        android:background="@drawable/shape_lock_bg">
+        <ImageView
+            android:id="@+id/iv_lock"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:src="@drawable/player_unlock_btn"/>
+    </FrameLayout>
+
     <!--试看布局,非会员显示该布局-->
     <include layout="@layout/custom_video_player_try_see"/>
 

+ 2 - 2
YCVideoPlayerLib/src/main/res/layout/custom_video_player_bottom.xml

@@ -7,8 +7,8 @@
     android:layout_alignParentBottom="true"
     android:background="@drawable/player_mask_bottom"
     android:gravity="center_vertical"
-    android:paddingLeft="8dp"
-    android:paddingRight="8dp">
+    android:paddingLeft="15dp"
+    android:paddingRight="15dp">
     <ImageView
         android:id="@+id/restart_or_pause"
         android:layout_width="24dp"

+ 1 - 1
YCVideoPlayerLib/src/main/res/layout/custom_video_player_error.xml

@@ -7,7 +7,7 @@
     android:background="@android:color/black"
     android:gravity="center"
     android:orientation="vertical"
-    android:visibility="visible">
+    android:visibility="gone">
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 2 - 2
YCVideoPlayerLib/src/main/res/layout/custom_video_player_top.xml

@@ -7,8 +7,8 @@
     android:background="@drawable/player_mask_top"
     android:gravity="center_vertical"
     android:paddingTop="10dp"
-    android:paddingLeft="8dp"
-    android:paddingRight="8dp">
+    android:paddingStart="8dp"
+    android:paddingEnd="10dp">
     <ImageView
         android:id="@+id/back"
         android:layout_width="30dp"

+ 1 - 0
YCVideoPlayerLib/src/main/res/values/colors.xml

@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <color name="dialog_bg">#bc000000</color>
+    <color name="alpha_25_black">#40000000</color>
 </resources>

+ 3 - 3
app/build.gradle

@@ -85,11 +85,11 @@ dependencies {
     compile 'cn.yc:YCUtilsLib:1.5'                                  //公共类
     compile 'cn.yc:YCStateLib:1.1'                                  //状态管理
     compile 'cn.yc:YCBannerLib:1.2'                                 //轮播图
-    compile 'org.yczbj:YCRefreshViewLib:2.1'                        //RecyclerView封装
+    compile 'org.yczbj:YCRefreshViewLib:2.3'                        //RecyclerView封装
     compile 'cn.yc:YCBaseAdapterLib:1.2'                            //adapter封装
     compile 'cn.yc:YCDialogLib:3.4'                                 //弹窗
     compile 'cn.yc:YCProgressLib:1.2'                               //进度条
-    compile 'cn.yc:YCVideoPlayerLib:2.3'                            //播放器
-//    compile project(':YCVideoPlayerLib')
+//    compile 'cn.yc:YCVideoPlayerLib:2.3'                            //播放器
+    compile project(':YCVideoPlayerLib')
 
 }

+ 38 - 35
app/src/main/AndroidManifest.xml

@@ -34,105 +34,108 @@
         <activity android:name=".ui.video.view.activity.VideoContentActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
+        <activity android:name=".ui.movie.view.activity.MovieDetailActivity"
+            android:configChanges="orientation|keyboardHidden|screenSize"
+            android:screenOrientation="portrait"/>
 
 
 
         <!--下面这些均是测试视频播放器-->
-        <activity android:name=".test.test3.ui.activity.GlideCropActivity"/>
-        <activity android:name=".test.test1.TestActivity"
+        <activity android:name=".ui.test.test3.ui.activity.GlideCropActivity"/>
+        <activity android:name=".ui.test.test1.TestActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestFirstActivity"
+        <activity android:name=".ui.test.test1.view.first.TestFirstActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiFirstActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiFirstActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiSecondActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiSecondActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiThreeActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiThreeActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiFourActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiFourActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiFiveActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiFiveActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.first.TestApiSixActivity"
+        <activity android:name=".ui.test.test1.view.first.TestApiSixActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestSecondActivity"
+        <activity android:name=".ui.test.test1.view.second.TestSecondActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestListFirstActivity"
+        <activity android:name=".ui.test.test1.view.second.TestListFirstActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestListSecondActivity"
+        <activity android:name=".ui.test.test1.view.second.TestListSecondActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestListThirdActivity"
+        <activity android:name=".ui.test.test1.view.second.TestListThirdActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestListFourActivity"
+        <activity android:name=".ui.test.test1.view.second.TestListFourActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.second.TestListFiveActivity"
+        <activity android:name=".ui.test.test1.view.second.TestListFiveActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.three.TestThreeActivity"
+        <activity android:name=".ui.test.test1.view.three.TestThreeActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.three.TestTinyFirstActivity"
+        <activity android:name=".ui.test.test1.view.three.TestTinyFirstActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.three.TestTinyThirdActivity"
+        <activity android:name=".ui.test.test1.view.three.TestTinyThirdActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.three.TestTinyFourActivity"
+        <activity android:name=".ui.test.test1.view.three.TestTinyFourActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.three.TestTinyFiveActivity"
+        <activity android:name=".ui.test.test1.view.three.TestTinyFiveActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.four.TestFourActivity"
+        <activity android:name=".ui.test.test1.view.four.TestFourActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.five.TestFiveActivity"
+        <activity android:name=".ui.test.test1.view.five.TestFiveActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test1.view.six.TestSixActivity"
+        <activity android:name=".ui.test.test1.view.six.TestSixActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
 
-        <activity android:name=".test.test2.TestMyActivity"
+        <activity android:name=".ui.test.test2.TestMyActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMyFirstActivity"
+        <activity android:name=".ui.test.test2.view.TestMyFirstActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMySecondActivity"
+        <activity android:name=".ui.test.test2.view.TestMySecondActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMyThirdActivity"
+        <activity android:name=".ui.test.test2.view.TestMyThirdActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMyFourActivity"
+        <activity android:name=".ui.test.test2.view.TestMyFourActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMyFiveActivity"
+        <activity android:name=".ui.test.test2.view.TestMyFiveActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
-        <activity android:name=".test.test2.view.TestMySixActivity"
+        <activity android:name=".ui.test.test2.view.TestMySixActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:screenOrientation="portrait"/>
 
-        <activity android:name=".test.test3.ui.activity.DLSingleTestActivity"/>
-        <activity android:name=".test.test3.ui.activity.DLHybridTestActivity"/>
-        <activity android:name=".test.test3.ui.activity.DLManyTestActivity"/>
-        <activity android:name=".test.test3.ui.activity.DLMyFileTestActivity"/>
-        <activity android:name=".test.test3.ui.activity.DLNotificationTestActivity"/>
+        <activity android:name=".ui.test.test3.ui.activity.DLSingleTestActivity"/>
+        <activity android:name=".ui.test.test3.ui.activity.DLHybridTestActivity"/>
+        <activity android:name=".ui.test.test3.ui.activity.DLManyTestActivity"/>
+        <activity android:name=".ui.test.test3.ui.activity.DLMyFileTestActivity"/>
+        <activity android:name=".ui.test.test3.ui.activity.DLNotificationTestActivity"/>
 
     </application>
 

+ 66 - 0
app/src/main/java/org/yczbj/ycvideoplayer/api/http/movie/MovieApi.java

@@ -0,0 +1,66 @@
+package org.yczbj.ycvideoplayer.api.http.movie;
+
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+import org.yczbj.ycvideoplayer.ui.video.model.bean.MultiNewsArticleBean;
+import org.yczbj.ycvideoplayer.ui.video.model.bean.VideoContentBean;
+
+import io.reactivex.Observable;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+
+
+public interface MovieApi {
+
+    /**
+     * 首页
+     *
+     * @return
+     */
+    @GET("homePageApi/homePage.do")
+    Observable<MovieBean> getHomePage();
+
+    /**
+     * 影片详情
+     *
+     * @param mediaId 影片id
+     * @return
+     */
+    @GET("videoDetailApi/videoDetail.do")
+    Observable<MovieDetailBean> getVideoInfo(@Query("mediaId") String mediaId);
+
+    /**
+     * 影片分类列表
+     *
+     * @param catalogId
+     * @param pnum
+     * @return
+     */
+    @GET("columns/getVideoList.do")
+    Observable<MovieBean> getVideoList(@Query("catalogId") String catalogId,
+                                                         @Query("pnum") String pnum);
+
+    /**
+     * 影片搜索
+     *
+     * @param pnum
+     * @return
+     */
+    @GET("searchKeyWordApi/getVideoListByKeyWord.do")
+    Observable<MovieBean> getVideoListByKeyWord(@Query("keyword") String keyword,
+                                                                  @Query("pnum") String pnum);
+
+    /**
+     * 获取评论列表
+     * @param mediaId
+     * @param pnum
+     * @return
+     */
+    @GET("Commentary/getCommentList.do")
+    Observable<MovieBean> getCommentList(@Query("mediaId") String mediaId,
+                                                           @Query("pnum") String pnum);
+
+
+
+}

+ 58 - 0
app/src/main/java/org/yczbj/ycvideoplayer/api/http/movie/MovieModel.java

@@ -0,0 +1,58 @@
+package org.yczbj.ycvideoplayer.api.http.movie;
+
+
+import org.yczbj.ycvideoplayer.api.manager.RetrofitWrapper;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+import org.yczbj.ycvideoplayer.ui.video.model.bean.MultiNewsArticleBean;
+import org.yczbj.ycvideoplayer.ui.video.model.bean.VideoContentBean;
+
+import io.reactivex.Observable;
+
+
+/**
+ * Created by PC on 2017/8/21.
+ * 作者:PC
+ */
+
+public class MovieModel {
+
+    private static MovieModel model;
+    private MovieApi mApiService;
+    private static final String HOST = "http://api.svipmovie.com/front/";
+
+    private MovieModel() {
+        mApiService = RetrofitWrapper
+                .getInstance(HOST)
+                .create(MovieApi.class);
+    }
+
+    public static MovieModel getInstance(){
+        if(model == null) {
+            model = new MovieModel();
+        }
+        return model;
+    }
+
+    public Observable<MovieBean> getHomePage() {
+        return mApiService.getHomePage();
+    }
+
+    public Observable<MovieDetailBean> getVideoInfo(String mediaId) {
+        return mApiService.getVideoInfo(mediaId);
+    }
+
+    public Observable<MovieBean> getVideoList(String catalogId , String pnum) {
+        return mApiService.getVideoList(catalogId,pnum);
+    }
+
+    public Observable<MovieBean> getVideoListByKeyWord(String keyword,String pnum) {
+        return mApiService.getVideoListByKeyWord(keyword,pnum);
+    }
+
+    public Observable<MovieBean> getCommentList(String mediaId , String pnum) {
+        return mApiService.getCommentList(mediaId,pnum);
+    }
+
+
+}

+ 14 - 1
app/src/main/java/org/yczbj/ycvideoplayer/base/BaseFragmentFactory.java

@@ -1,7 +1,8 @@
 package org.yczbj.ycvideoplayer.base;
 
+import org.yczbj.ycvideoplayer.ui.movie.view.fragment.MovieFragment;
 import org.yczbj.ycvideoplayer.ui.news.NewsFragment;
-import org.yczbj.ycvideoplayer.ui.video.VideoFragment;
+import org.yczbj.ycvideoplayer.ui.video.view.fragment.VideoFragment;
 import org.yczbj.ycvideoplayer.ui.home.view.fragment.HomeFragment;
 import org.yczbj.ycvideoplayer.ui.person.MeFragment;
 import org.yczbj.ycvideoplayer.ui.special.SpecialFragment;
@@ -22,6 +23,7 @@ public class BaseFragmentFactory {
     private static BaseFragmentFactory mInstance;
     private HomeFragment mHomeFragment;
     private NewsFragment mNewsFragment;
+    private MovieFragment mMovieFragment;
     private SpecialFragment mSpecialFragment;
     private VideoFragment mVideoFragment;
     private MeFragment mMeFragment;
@@ -62,6 +64,17 @@ public class BaseFragmentFactory {
         return mNewsFragment;
     }
 
+    public MovieFragment getMovieFragment() {
+        if (mMovieFragment == null) {
+            synchronized (BaseFragmentFactory.class) {
+                if (mMovieFragment == null) {
+                    mMovieFragment = new MovieFragment();
+                }
+            }
+        }
+        return mMovieFragment;
+    }
+
 
     public SpecialFragment getSpecialFragment() {
         if (mSpecialFragment == null) {

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/ui/home/view/activity/VideoPlayerMeActivity.java

@@ -40,7 +40,7 @@ import org.yczbj.ycvideoplayer.ui.home.view.adapter.DialogListAdapter;
 import org.yczbj.ycvideoplayer.ui.home.view.adapter.NarrowImageAdapter;
 import org.yczbj.ycvideoplayer.ui.home.view.adapter.VideoPlayerMeAdapter;
 import org.yczbj.ycvideoplayer.ui.person.MeLoginActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.second.TestSecondActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.second.TestSecondActivity;
 import org.yczbj.ycvideoplayer.util.AppUtil;
 import org.yczbj.ycvideoplayerlib.ConstantKeys;
 import org.yczbj.ycvideoplayerlib.OnMemberClickListener;

+ 3 - 10
app/src/main/java/org/yczbj/ycvideoplayer/ui/home/view/fragment/HomeFragment.java

@@ -2,14 +2,9 @@ package org.yczbj.ycvideoplayer.ui.home.view.fragment;
 
 import android.content.Context;
 import android.graphics.Color;
-import android.os.Bundle;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 
@@ -27,22 +22,20 @@ import org.yczbj.ycvideoplayer.api.constant.Constant;
 import org.yczbj.ycvideoplayer.base.BaseConfig;
 import org.yczbj.ycvideoplayer.base.BaseDelegateAdapter;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseFragment;
-import org.yczbj.ycvideoplayer.test.test1.TestActivity;
-import org.yczbj.ycvideoplayer.test.test2.TestMyActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.GlideCropActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.TestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.TestMyActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.GlideCropActivity;
 import org.yczbj.ycvideoplayer.ui.home.view.activity.VideoPlayerJzActivity;
 import org.yczbj.ycvideoplayer.ui.home.view.activity.VideoPlayerMeActivity;
 import org.yczbj.ycvideoplayer.ui.home.view.adapter.BannerPagerAdapter;
 import org.yczbj.ycvideoplayer.ui.main.view.activity.MainActivity;
 import org.yczbj.ycvideoplayer.util.LogUtils;
-import org.yczbj.ycvideoplayer.util.animation.AnimationsUtils;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
 import butterknife.Bind;
-import butterknife.ButterKnife;
 
 
 /**

+ 19 - 13
app/src/main/java/org/yczbj/ycvideoplayer/ui/main/view/activity/MainActivity.java

@@ -21,13 +21,13 @@ import org.yczbj.ycvideoplayer.base.AppManager;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.base.BaseFragmentFactory;
 import org.yczbj.ycvideoplayer.download.TasksManager;
+import org.yczbj.ycvideoplayer.ui.movie.view.fragment.MovieFragment;
 import org.yczbj.ycvideoplayer.ui.news.NewsFragment;
-import org.yczbj.ycvideoplayer.ui.video.VideoFragment;
+import org.yczbj.ycvideoplayer.ui.video.view.fragment.VideoFragment;
 import org.yczbj.ycvideoplayer.ui.home.view.fragment.HomeFragment;
 import org.yczbj.ycvideoplayer.ui.main.contract.MainContract;
 import org.yczbj.ycvideoplayer.ui.main.presenter.MainPresenter;
 import org.yczbj.ycvideoplayer.ui.person.MeFragment;
-import org.yczbj.ycvideoplayer.ui.special.SpecialFragment;
 
 import java.util.ArrayList;
 
@@ -53,7 +53,7 @@ public class MainActivity extends BaseActivity implements MainContract.View {
     private static final String POSITION = "position";
     private static final String SELECT_ITEM = "selectItem";
     private static final int FRAGMENT_HOME = 0;
-    private static final int FRAGMENT_SPECIAL = 1;
+    private static final int FRAGMENT_MOVIE = 1;
     private static final int FRAGMENT_VIDEO = 2;
     private static final int FRAGMENT_ME = 3;
     private static final int FRAGMENT_NEWS = 4;
@@ -64,11 +64,12 @@ public class MainActivity extends BaseActivity implements MainContract.View {
     private long firstClickTime = 0;
     private Bundle savedInstanceState;
     private HomeFragment homeFragment;
-    private SpecialFragment specialFragment;
     private VideoFragment videoFragment;
+    private MovieFragment mMovieFragment;
     private MeFragment meFragment;
     private NewsFragment newsFragment;
 
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -140,9 +141,11 @@ public class MainActivity extends BaseActivity implements MainContract.View {
                         break;
                     case 1:
                         showFragment(FRAGMENT_NEWS);
+                        doubleClick(FRAGMENT_NEWS);
                         break;
                     case 2:
-                        showFragment(FRAGMENT_SPECIAL);
+                        showFragment(FRAGMENT_MOVIE);
+                        doubleClick(FRAGMENT_MOVIE);
                         break;
                     case 3:
                         showFragment(FRAGMENT_VIDEO);
@@ -169,7 +172,7 @@ public class MainActivity extends BaseActivity implements MainContract.View {
         if(savedInstanceState!=null){
             homeFragment = BaseFragmentFactory.getInstance().getHomeFragment();
             newsFragment = BaseFragmentFactory.getInstance().getNewsFragment();
-            specialFragment = BaseFragmentFactory.getInstance().getSpecialFragment();
+            mMovieFragment = BaseFragmentFactory.getInstance().getMovieFragment();
             videoFragment = BaseFragmentFactory.getInstance().getVideoFragment();
             meFragment = BaseFragmentFactory.getInstance().getMeFragment();
             int index = savedInstanceState.getInt(POSITION);
@@ -198,12 +201,12 @@ public class MainActivity extends BaseActivity implements MainContract.View {
                     ft.show(homeFragment);
                 }
                 break;
-            case FRAGMENT_SPECIAL:
-                if (specialFragment == null) {
-                    specialFragment = BaseFragmentFactory.getInstance().getSpecialFragment();
-                    ft.add(R.id.fl_main, specialFragment, SpecialFragment.class.getName());
+            case FRAGMENT_MOVIE:
+                if (mMovieFragment == null) {
+                    mMovieFragment = BaseFragmentFactory.getInstance().getMovieFragment();
+                    ft.add(R.id.fl_main, mMovieFragment, MovieFragment.class.getName());
                 } else {
-                    ft.show(specialFragment);
+                    ft.show(mMovieFragment);
                 }
                 break;
             case FRAGMENT_VIDEO:
@@ -245,8 +248,8 @@ public class MainActivity extends BaseActivity implements MainContract.View {
         if (newsFragment != null) {
             setHide(ft,newsFragment);
         }
-        if (specialFragment != null) {
-            setHide(ft,specialFragment);
+        if (mMovieFragment != null) {
+            setHide(ft,mMovieFragment);
         }
         if (videoFragment != null) {
             setHide(ft,videoFragment);
@@ -272,6 +275,9 @@ public class MainActivity extends BaseActivity implements MainContract.View {
                     break;
                 case FRAGMENT_VIDEO:
                     videoFragment.onDoubleClick();
+                    break;
+                case FRAGMENT_MOVIE:
+
                     break;
                 default:
                     break;

+ 29 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/contract/MovieContract.java

@@ -0,0 +1,29 @@
+package org.yczbj.ycvideoplayer.ui.movie.contract;
+
+
+import org.yczbj.ycvideoplayer.base.mvp1.BasePresenter;
+import org.yczbj.ycvideoplayer.base.mvp1.BaseView;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.special.model.SpecialBean;
+
+import java.util.List;
+
+/**
+ * Description:
+ * Update:2018/1/2
+ * CreatedTime:2017/12/29
+ * Author:yc
+ */
+
+public interface MovieContract {
+
+    interface View extends BaseView {
+        void setAdapterData(MovieBean movieBean);
+    }
+
+    interface Presenter extends BasePresenter {
+        void getData();
+    }
+
+
+}

+ 27 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/contract/MovieDetailContract.java

@@ -0,0 +1,27 @@
+package org.yczbj.ycvideoplayer.ui.movie.contract;
+
+
+import org.yczbj.ycvideoplayer.base.mvp1.BasePresenter;
+import org.yczbj.ycvideoplayer.base.mvp1.BaseView;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+
+/**
+ * Description:
+ * Update:2018/1/2
+ * CreatedTime:2017/12/29
+ * Author:yc
+ */
+
+public interface MovieDetailContract {
+
+    interface View extends BaseView {
+        void setAdapterData(MovieDetailBean movieDetailBean);
+    }
+
+    interface Presenter extends BasePresenter {
+        void getData(String dataId);
+    }
+
+
+}

+ 356 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/model/MovieBean.java

@@ -0,0 +1,356 @@
+package org.yczbj.ycvideoplayer.ui.movie.model;
+
+import java.util.List;
+
+/**
+ * Created by yc on 2018/3/1.
+ */
+
+public class MovieBean {
+
+    private String msg;
+    private RetBean ret;
+    private String code;
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public RetBean getRet() {
+        return ret;
+    }
+
+    public void setRet(RetBean ret) {
+        this.ret = ret;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public static class RetBean {
+        private List<HotSearchListBean> hotSearchList;
+        private List<ListBean> list;
+
+        public List<HotSearchListBean> getHotSearchList() {
+            return hotSearchList;
+        }
+
+        public void setHotSearchList(List<HotSearchListBean> hotSearchList) {
+            this.hotSearchList = hotSearchList;
+        }
+
+        public List<ListBean> getList() {
+            return list;
+        }
+
+        public void setList(List<ListBean> list) {
+            this.list = list;
+        }
+
+        public static class HotSearchListBean {
+            /**
+             * refCounter : 1
+             * cnname : xingjichuanyue
+             * siteId : 1
+             * simplename : xjcy
+             * id : ff8080815a5f91db015a68a763b750d5
+             * tagName : 星际穿越
+             * createdtime : 2017-02-23 09:48:04
+             * enname :
+             */
+
+            private int refCounter;
+            private String cnname;
+            private String siteId;
+            private String simplename;
+            private String id;
+            private String tagName;
+            private String createdtime;
+            private String enname;
+
+            public int getRefCounter() {
+                return refCounter;
+            }
+
+            public void setRefCounter(int refCounter) {
+                this.refCounter = refCounter;
+            }
+
+            public String getCnname() {
+                return cnname;
+            }
+
+            public void setCnname(String cnname) {
+                this.cnname = cnname;
+            }
+
+            public String getSiteId() {
+                return siteId;
+            }
+
+            public void setSiteId(String siteId) {
+                this.siteId = siteId;
+            }
+
+            public String getSimplename() {
+                return simplename;
+            }
+
+            public void setSimplename(String simplename) {
+                this.simplename = simplename;
+            }
+
+            public String getId() {
+                return id;
+            }
+
+            public void setId(String id) {
+                this.id = id;
+            }
+
+            public String getTagName() {
+                return tagName;
+            }
+
+            public void setTagName(String tagName) {
+                this.tagName = tagName;
+            }
+
+            public String getCreatedtime() {
+                return createdtime;
+            }
+
+            public void setCreatedtime(String createdtime) {
+                this.createdtime = createdtime;
+            }
+
+            public String getEnname() {
+                return enname;
+            }
+
+            public void setEnname(String enname) {
+                this.enname = enname;
+            }
+        }
+
+        public static class ListBean {
+
+            private String showStyle;
+            private String loadType;
+            private String changeOpenFlag;
+            private int line;
+            private String showType;
+            private String moreURL;
+            private String title;
+            private String bigPicShowFlag;
+            private List<ChildListBean> childList;
+
+            public String getShowStyle() {
+                return showStyle;
+            }
+
+            public void setShowStyle(String showStyle) {
+                this.showStyle = showStyle;
+            }
+
+            public String getLoadType() {
+                return loadType;
+            }
+
+            public void setLoadType(String loadType) {
+                this.loadType = loadType;
+            }
+
+            public String getChangeOpenFlag() {
+                return changeOpenFlag;
+            }
+
+            public void setChangeOpenFlag(String changeOpenFlag) {
+                this.changeOpenFlag = changeOpenFlag;
+            }
+
+            public int getLine() {
+                return line;
+            }
+
+            public void setLine(int line) {
+                this.line = line;
+            }
+
+            public String getShowType() {
+                return showType;
+            }
+
+            public void setShowType(String showType) {
+                this.showType = showType;
+            }
+
+            public String getMoreURL() {
+                return moreURL;
+            }
+
+            public void setMoreURL(String moreURL) {
+                this.moreURL = moreURL;
+            }
+
+            public String getTitle() {
+                return title;
+            }
+
+            public void setTitle(String title) {
+                this.title = title;
+            }
+
+            public String getBigPicShowFlag() {
+                return bigPicShowFlag;
+            }
+
+            public void setBigPicShowFlag(String bigPicShowFlag) {
+                this.bigPicShowFlag = bigPicShowFlag;
+            }
+
+            public List<ChildListBean> getChildList() {
+                return childList;
+            }
+
+            public void setChildList(List<ChildListBean> childList) {
+                this.childList = childList;
+            }
+
+            public static class ChildListBean {
+                /**
+                 * airTime : 2012
+                 * duration : 02:03:46
+                 * loadType : video
+                 * score : 0
+                 * angleIcon : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2017/05/09/1494296614609066838.png
+                 * dataId : e4871e503816456eb5ae84758d70d0dd
+                 * description : 21世纪末,人类的科技水平已高度发达,克隆人技术和宇宙航行早已实现,不再是梦想。与此同时,许多科学家仍孜孜不倦追索着人类起源的秘密与真相。通过对许多古老文明的考察与对比,科学家伊丽莎白·肖和查理·赫洛维发现,人类可能是来自一个遥远星系的外星人创造的。在Weyland公司资助下,他们乘坐维克丝所掌管的宇宙飞船普罗米修斯号前往那颗未知的星球。
+                 * loadURL : http://api.svipmovie.com/front/videoDetailApi/videoDetail.do?mediaId=e4871e503816456eb5ae84758d70d0dd
+                 * shareURL : http://m.svipmovie.com/#/moviedetails/e4871e503816456eb5ae84758d70d0dd
+                 * pic : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2017/06/06/1496743562076010888.jpg
+                 * title : 恐怖异形起源之谜
+                 * roomId :
+                 */
+
+                private int airTime;
+                private String duration;
+                private String loadType;
+                private int score;
+                private String angleIcon;
+                private String dataId;
+                private String description;
+                private String loadURL;
+                private String shareURL;
+                private String pic;
+                private String title;
+                private String roomId;
+
+                public int getAirTime() {
+                    return airTime;
+                }
+
+                public void setAirTime(int airTime) {
+                    this.airTime = airTime;
+                }
+
+                public String getDuration() {
+                    return duration;
+                }
+
+                public void setDuration(String duration) {
+                    this.duration = duration;
+                }
+
+                public String getLoadType() {
+                    return loadType;
+                }
+
+                public void setLoadType(String loadType) {
+                    this.loadType = loadType;
+                }
+
+                public int getScore() {
+                    return score;
+                }
+
+                public void setScore(int score) {
+                    this.score = score;
+                }
+
+                public String getAngleIcon() {
+                    return angleIcon;
+                }
+
+                public void setAngleIcon(String angleIcon) {
+                    this.angleIcon = angleIcon;
+                }
+
+                public String getDataId() {
+                    return dataId;
+                }
+
+                public void setDataId(String dataId) {
+                    this.dataId = dataId;
+                }
+
+                public String getDescription() {
+                    return description;
+                }
+
+                public void setDescription(String description) {
+                    this.description = description;
+                }
+
+                public String getLoadURL() {
+                    return loadURL;
+                }
+
+                public void setLoadURL(String loadURL) {
+                    this.loadURL = loadURL;
+                }
+
+                public String getShareURL() {
+                    return shareURL;
+                }
+
+                public void setShareURL(String shareURL) {
+                    this.shareURL = shareURL;
+                }
+
+                public String getPic() {
+                    return pic;
+                }
+
+                public void setPic(String pic) {
+                    this.pic = pic;
+                }
+
+                public String getTitle() {
+                    return title;
+                }
+
+                public void setTitle(String title) {
+                    this.title = title;
+                }
+
+                public String getRoomId() {
+                    return roomId;
+                }
+
+                public void setRoomId(String roomId) {
+                    this.roomId = roomId;
+                }
+            }
+        }
+    }
+}

+ 586 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/model/MovieDetailBean.java

@@ -0,0 +1,586 @@
+package org.yczbj.ycvideoplayer.ui.movie.model;
+
+import java.util.List;
+
+/**
+ * Created by yc on 2018/3/2.
+ */
+
+public class MovieDetailBean {
+
+
+    /**
+     * msg : 成功
+     * ret
+     * code : 200
+     */
+
+    private String msg;
+    private RetBean ret;
+    private String code;
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public RetBean getRet() {
+        return ret;
+    }
+
+    public void setRet(RetBean ret) {
+        this.ret = ret;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public static class RetBean {
+        /**
+         * couponNum : 0
+         * HDURL : http://movie.vods1.cnlive.com/3/vod/2017/0606/3_e4871e503816456eb5ae84758d70d0dd/ff8080815bf6b453015c7c7e5452120b_1500.m3u8
+         * downloadURL :
+         * description : 21世纪末,人类的科技水平已高度发达,克隆人技术和宇宙航行早已实现,不再是梦想。与此同时,许多科学家仍孜孜不倦追索着人类起源的秘密与真相。通过对许多古老文明的考察与对比,科学家伊丽莎白·肖和查理·赫洛维发现,人类可能是来自一个遥远星系的外星人创造的。在Weyland公司资助下,他们乘坐维克丝所掌管的宇宙飞船普罗米修斯号前往那颗未知的星球。
+         * pic : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2018/02/16/1518786460711038815.jpg
+         * title : 普罗米修斯
+         * kuaiKan : false
+         * smoothURL : http://movie.vods1.cnlive.com/3/vod/2017/0606/3_e4871e503816456eb5ae84758d70d0dd/ff8080815bf6b453015c7c7e5452120b_400.m3u8
+         * duration : 02:03:46
+         * score : 0
+         * ticketContent : {"score":"0分","name":"三块广告牌","poster_url":"https://msdbpic-cos.wepiao.com/msdb/movie/p/img_cover/small/c61cf6e3e7abaa381638d0aa552ad4686703.jpg","id":"238404","version":"2D","url":"http://m.wepiao.com/movies/238404"}
+         * airTime : 2012
+         * fastDataId :
+         * ultraClearURL : http://movie.vods1.cnlive.com/3/vod/2017/0606/3_e4871e503816456eb5ae84758d70d0dd/ff8080815bf6b453015c7c7e5452120b_1500.m3u8
+         * director : 雷德利·斯科特
+         * videoType : 冒险,科幻,惊悚
+         * htmlURL : http://m.svipmovie.com/#/moviedetails/e4871e503816456eb5ae84758d70d0dd
+         * list
+         * SDURL : http://movie.vods1.cnlive.com/3/vod/2017/0606/3_e4871e503816456eb5ae84758d70d0dd/ff8080815bf6b453015c7c7e5452120b_800.m3u8
+         * actors : 劳米·拉佩斯 / 迈克尔·法斯宾德 / 查理兹·塞隆 / 伊德里斯·艾尔巴 / 盖·皮尔斯
+         * canWatchFlag : false
+         * adv : {"imgURL":"http://phonemovie.ks3-cn-beijing.ksyun.com/image/2018/03/02/1519955693461058585.jpg","dataId":"ff80808161d4dd470161e46be6496eaf","htmlURL":"http://www.iqiyi.com/v_19rrfg41d0.html","shareURL":"","title":"白夜侠"}
+         * collectionFalg : false
+         * lastPlayTime : 4
+         * region : 欧美
+         * vipFlag : false
+         */
+
+        private int couponNum;
+        private String HDURL;
+        private String downloadURL;
+        private String description;
+        private String pic;
+        private String title;
+        private String kuaiKan;
+        private String smoothURL;
+        private String duration;
+        private int score;
+        private TicketContentBean ticketContent;
+        private int airTime;
+        private String fastDataId;
+        private String ultraClearURL;
+        private String director;
+        private String videoType;
+        private String htmlURL;
+        private String SDURL;
+        private String actors;
+        private String canWatchFlag;
+        private AdvBean adv;
+        private String collectionFalg;
+        private String lastPlayTime;
+        private String region;
+        private String vipFlag;
+        private List<ListBean> list;
+
+        public int getCouponNum() {
+            return couponNum;
+        }
+
+        public void setCouponNum(int couponNum) {
+            this.couponNum = couponNum;
+        }
+
+        public String getHDURL() {
+            return HDURL;
+        }
+
+        public void setHDURL(String HDURL) {
+            this.HDURL = HDURL;
+        }
+
+        public String getDownloadURL() {
+            return downloadURL;
+        }
+
+        public void setDownloadURL(String downloadURL) {
+            this.downloadURL = downloadURL;
+        }
+
+        public String getDescription() {
+            return description;
+        }
+
+        public void setDescription(String description) {
+            this.description = description;
+        }
+
+        public String getPic() {
+            return pic;
+        }
+
+        public void setPic(String pic) {
+            this.pic = pic;
+        }
+
+        public String getTitle() {
+            return title;
+        }
+
+        public void setTitle(String title) {
+            this.title = title;
+        }
+
+        public String getKuaiKan() {
+            return kuaiKan;
+        }
+
+        public void setKuaiKan(String kuaiKan) {
+            this.kuaiKan = kuaiKan;
+        }
+
+        public String getSmoothURL() {
+            return smoothURL;
+        }
+
+        public void setSmoothURL(String smoothURL) {
+            this.smoothURL = smoothURL;
+        }
+
+        public String getDuration() {
+            return duration;
+        }
+
+        public void setDuration(String duration) {
+            this.duration = duration;
+        }
+
+        public int getScore() {
+            return score;
+        }
+
+        public void setScore(int score) {
+            this.score = score;
+        }
+
+        public TicketContentBean getTicketContent() {
+            return ticketContent;
+        }
+
+        public void setTicketContent(TicketContentBean ticketContent) {
+            this.ticketContent = ticketContent;
+        }
+
+        public int getAirTime() {
+            return airTime;
+        }
+
+        public void setAirTime(int airTime) {
+            this.airTime = airTime;
+        }
+
+        public String getFastDataId() {
+            return fastDataId;
+        }
+
+        public void setFastDataId(String fastDataId) {
+            this.fastDataId = fastDataId;
+        }
+
+        public String getUltraClearURL() {
+            return ultraClearURL;
+        }
+
+        public void setUltraClearURL(String ultraClearURL) {
+            this.ultraClearURL = ultraClearURL;
+        }
+
+        public String getDirector() {
+            return director;
+        }
+
+        public void setDirector(String director) {
+            this.director = director;
+        }
+
+        public String getVideoType() {
+            return videoType;
+        }
+
+        public void setVideoType(String videoType) {
+            this.videoType = videoType;
+        }
+
+        public String getHtmlURL() {
+            return htmlURL;
+        }
+
+        public void setHtmlURL(String htmlURL) {
+            this.htmlURL = htmlURL;
+        }
+
+        public String getSDURL() {
+            return SDURL;
+        }
+
+        public void setSDURL(String SDURL) {
+            this.SDURL = SDURL;
+        }
+
+        public String getActors() {
+            return actors;
+        }
+
+        public void setActors(String actors) {
+            this.actors = actors;
+        }
+
+        public String getCanWatchFlag() {
+            return canWatchFlag;
+        }
+
+        public void setCanWatchFlag(String canWatchFlag) {
+            this.canWatchFlag = canWatchFlag;
+        }
+
+        public AdvBean getAdv() {
+            return adv;
+        }
+
+        public void setAdv(AdvBean adv) {
+            this.adv = adv;
+        }
+
+        public String getCollectionFalg() {
+            return collectionFalg;
+        }
+
+        public void setCollectionFalg(String collectionFalg) {
+            this.collectionFalg = collectionFalg;
+        }
+
+        public String getLastPlayTime() {
+            return lastPlayTime;
+        }
+
+        public void setLastPlayTime(String lastPlayTime) {
+            this.lastPlayTime = lastPlayTime;
+        }
+
+        public String getRegion() {
+            return region;
+        }
+
+        public void setRegion(String region) {
+            this.region = region;
+        }
+
+        public String getVipFlag() {
+            return vipFlag;
+        }
+
+        public void setVipFlag(String vipFlag) {
+            this.vipFlag = vipFlag;
+        }
+
+        public List<ListBean> getList() {
+            return list;
+        }
+
+        public void setList(List<ListBean> list) {
+            this.list = list;
+        }
+
+        public static class TicketContentBean {
+            /**
+             * score : 0分
+             * name : 三块广告牌
+             * poster_url : https://msdbpic-cos.wepiao.com/msdb/movie/p/img_cover/small/c61cf6e3e7abaa381638d0aa552ad4686703.jpg
+             * id : 238404
+             * version : 2D
+             * url : http://m.wepiao.com/movies/238404
+             */
+
+            private String score;
+            private String name;
+            private String poster_url;
+            private String id;
+            private String version;
+            private String url;
+
+            public String getScore() {
+                return score;
+            }
+
+            public void setScore(String score) {
+                this.score = score;
+            }
+
+            public String getName() {
+                return name;
+            }
+
+            public void setName(String name) {
+                this.name = name;
+            }
+
+            public String getPoster_url() {
+                return poster_url;
+            }
+
+            public void setPoster_url(String poster_url) {
+                this.poster_url = poster_url;
+            }
+
+            public String getId() {
+                return id;
+            }
+
+            public void setId(String id) {
+                this.id = id;
+            }
+
+            public String getVersion() {
+                return version;
+            }
+
+            public void setVersion(String version) {
+                this.version = version;
+            }
+
+            public String getUrl() {
+                return url;
+            }
+
+            public void setUrl(String url) {
+                this.url = url;
+            }
+        }
+
+        public static class AdvBean {
+            /**
+             * imgURL : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2018/03/02/1519955693461058585.jpg
+             * dataId : ff80808161d4dd470161e46be6496eaf
+             * htmlURL : http://www.iqiyi.com/v_19rrfg41d0.html
+             * shareURL :
+             * title : 白夜侠
+             */
+
+            private String imgURL;
+            private String dataId;
+            private String htmlURL;
+            private String shareURL;
+            private String title;
+
+            public String getImgURL() {
+                return imgURL;
+            }
+
+            public void setImgURL(String imgURL) {
+                this.imgURL = imgURL;
+            }
+
+            public String getDataId() {
+                return dataId;
+            }
+
+            public void setDataId(String dataId) {
+                this.dataId = dataId;
+            }
+
+            public String getHtmlURL() {
+                return htmlURL;
+            }
+
+            public void setHtmlURL(String htmlURL) {
+                this.htmlURL = htmlURL;
+            }
+
+            public String getShareURL() {
+                return shareURL;
+            }
+
+            public void setShareURL(String shareURL) {
+                this.shareURL = shareURL;
+            }
+
+            public String getTitle() {
+                return title;
+            }
+
+            public void setTitle(String title) {
+                this.title = title;
+            }
+        }
+
+        public static class ListBean {
+            /**
+             * showType : vertical
+             * childList
+             * title : 猜你喜欢
+             */
+
+            private String showType;
+            private String title;
+            private List<ChildListBean> childList;
+
+            public String getShowType() {
+                return showType;
+            }
+
+            public void setShowType(String showType) {
+                this.showType = showType;
+            }
+
+            public String getTitle() {
+                return title;
+            }
+
+            public void setTitle(String title) {
+                this.title = title;
+            }
+
+            public List<ChildListBean> getChildList() {
+                return childList;
+            }
+
+            public void setChildList(List<ChildListBean> childList) {
+                this.childList = childList;
+            }
+
+            public static class ChildListBean {
+                /**
+                 * airTime : 2015
+                 * duration : 01:52:15
+                 * loadtype : video
+                 * score : 0
+                 * angleIcon : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2017/05/09/1494296614609066838.png
+                 * dataId : d459e58100af4e5aa6d6d09070442878
+                 * description : 未来世界,水资源短缺引发了连绵的战争。人们相互厮杀,争夺有限的资源,地球变成了血腥十足的杀戮死战场。面容恐怖的不死乔在戈壁山谷建立了难以撼动的强大武装王国,他手下的战郎驾驶装备尖端武器的战车四下抢掠,杀伐无度,甚至将自己的孩子打造成战争机器。在最近一次行动中,不死乔的得力战将弗瑞奥萨(查理兹·塞隆 Charlize Theron 饰)带着生育者们叛逃,这令不死乔恼羞成怒,发誓要追回生育者。经历了激烈的追逐战和摧毁力极强的沙尘暴,弗瑞奥萨和作为血主的麦克斯(汤姆·哈迪 Tom Hardy 饰)被迫上路,而身后不仅有不死乔的追兵,还有汽油镇、子弹农场的重兵追逐。
+                   末世战争,全面爆发……
+                 * loadURL : http://api.svipmovie.com/front/videoDetailApi/videoDetail.do?mediaId=d459e58100af4e5aa6d6d09070442878
+                 * shareURL : http://h5.svipmovie.com/bqdy/d459e58100af4e5aa6d6d09070442878.shtml?fromTo=shoujimovie
+                 * pic : http://phonemovie.ks3-cn-beijing.ksyun.com/image/2017/06/30/1498819818604078748.jpg
+                 * title : 疯狂的麦克斯4
+                 */
+
+                private int airTime;
+                private String duration;
+                private String loadtype;
+                private int score;
+                private String angleIcon;
+                private String dataId;
+                private String description;
+                private String loadURL;
+                private String shareURL;
+                private String pic;
+                private String title;
+
+                public int getAirTime() {
+                    return airTime;
+                }
+
+                public void setAirTime(int airTime) {
+                    this.airTime = airTime;
+                }
+
+                public String getDuration() {
+                    return duration;
+                }
+
+                public void setDuration(String duration) {
+                    this.duration = duration;
+                }
+
+                public String getLoadtype() {
+                    return loadtype;
+                }
+
+                public void setLoadtype(String loadtype) {
+                    this.loadtype = loadtype;
+                }
+
+                public int getScore() {
+                    return score;
+                }
+
+                public void setScore(int score) {
+                    this.score = score;
+                }
+
+                public String getAngleIcon() {
+                    return angleIcon;
+                }
+
+                public void setAngleIcon(String angleIcon) {
+                    this.angleIcon = angleIcon;
+                }
+
+                public String getDataId() {
+                    return dataId;
+                }
+
+                public void setDataId(String dataId) {
+                    this.dataId = dataId;
+                }
+
+                public String getDescription() {
+                    return description;
+                }
+
+                public void setDescription(String description) {
+                    this.description = description;
+                }
+
+                public String getLoadURL() {
+                    return loadURL;
+                }
+
+                public void setLoadURL(String loadURL) {
+                    this.loadURL = loadURL;
+                }
+
+                public String getShareURL() {
+                    return shareURL;
+                }
+
+                public void setShareURL(String shareURL) {
+                    this.shareURL = shareURL;
+                }
+
+                public String getPic() {
+                    return pic;
+                }
+
+                public void setPic(String pic) {
+                    this.pic = pic;
+                }
+
+                public String getTitle() {
+                    return title;
+                }
+
+                public void setTitle(String title) {
+                    this.title = title;
+                }
+            }
+        }
+    }
+}

+ 66 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/presenter/MovieDetailPresenter.java

@@ -0,0 +1,66 @@
+package org.yczbj.ycvideoplayer.ui.movie.presenter;
+
+import android.app.Activity;
+
+import org.yczbj.ycvideoplayer.api.http.movie.MovieModel;
+import org.yczbj.ycvideoplayer.ui.movie.contract.MovieContract;
+import org.yczbj.ycvideoplayer.ui.movie.contract.MovieDetailContract;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Consumer;
+import io.reactivex.schedulers.Schedulers;
+
+
+/**
+ * Description:
+ * Update:2018/1/2
+ * CreatedTime:2017/12/29
+ * Author:yc
+ */
+
+public class MovieDetailPresenter implements MovieDetailContract.Presenter {
+
+    private MovieDetailContract.View mView;
+    private CompositeDisposable mSubscriptions;
+    private Activity activity;
+
+    public MovieDetailPresenter(MovieDetailContract.View androidView) {
+        this.mView = androidView;
+        mSubscriptions = new CompositeDisposable();
+    }
+
+    @Override
+    public void subscribe() {
+
+    }
+
+
+    @Override
+    public void unSubscribe() {
+        mSubscriptions.clear();
+        if(activity!=null){
+            activity = null;
+        }
+    }
+
+    @Override
+    public void getData(String dataId) {
+        MovieModel model = MovieModel.getInstance();
+        Disposable subscribe = model.getVideoInfo(dataId)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Consumer<MovieDetailBean>() {
+                    @Override
+                    public void accept(MovieDetailBean movieDetailBean) throws Exception {
+                        if(movieDetailBean!=null){
+                            mView.setAdapterData(movieDetailBean);
+                        }
+                    }
+                });
+        mSubscriptions.add(subscribe);
+    }
+}

+ 70 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/presenter/MoviePresenter.java

@@ -0,0 +1,70 @@
+package org.yczbj.ycvideoplayer.ui.movie.presenter;
+
+import android.app.Activity;
+import android.text.TextUtils;
+
+import org.reactivestreams.Subscription;
+import org.yczbj.ycvideoplayer.api.http.movie.MovieModel;
+import org.yczbj.ycvideoplayer.ui.movie.contract.MovieContract;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Consumer;
+import io.reactivex.schedulers.Schedulers;
+
+
+/**
+ * Description:
+ * Update:2018/1/2
+ * CreatedTime:2017/12/29
+ * Author:yc
+ */
+
+public class MoviePresenter implements MovieContract.Presenter {
+
+    private MovieContract.View mView;
+    private CompositeDisposable mSubscriptions;
+    private Activity activity;
+
+    public MoviePresenter(MovieContract.View androidView) {
+        this.mView = androidView;
+        mSubscriptions = new CompositeDisposable();
+    }
+
+    @Override
+    public void subscribe() {
+
+    }
+
+
+    @Override
+    public void unSubscribe() {
+        mSubscriptions.clear();
+        if(activity!=null){
+            activity = null;
+        }
+    }
+
+    @Override
+    public void getData() {
+        MovieModel model = MovieModel.getInstance();
+        Disposable subscribe = model.getHomePage()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Consumer<MovieBean>() {
+                    @Override
+                    public void accept(MovieBean movieBean) throws Exception {
+                        if(movieBean!=null && movieBean.getRet()!=null){
+                            mView.setAdapterData(movieBean);
+                        }
+                    }
+                });
+        mSubscriptions.add(subscribe);
+    }
+
+
+
+}

+ 344 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/activity/MovieDetailActivity.java

@@ -0,0 +1,344 @@
+package org.yczbj.ycvideoplayer.ui.movie.view.activity;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.blankj.utilcode.util.SizeUtils;
+import com.pedaily.yc.ycdialoglib.toast.ToastUtil;
+
+import org.yczbj.ycrefreshviewlib.YCRefreshView;
+import org.yczbj.ycrefreshviewlib.adapter.RecyclerArrayAdapter;
+import org.yczbj.ycrefreshviewlib.item.RecycleViewItemLine;
+import org.yczbj.ycrefreshviewlib.item.SpaceViewItemLine;
+import org.yczbj.ycvideoplayer.R;
+import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
+import org.yczbj.ycvideoplayer.ui.home.model.VideoPlayerFavorite;
+import org.yczbj.ycvideoplayer.ui.home.view.activity.VideoPlayerMeActivity;
+import org.yczbj.ycvideoplayer.ui.home.view.adapter.NarrowImageAdapter;
+import org.yczbj.ycvideoplayer.ui.movie.contract.MovieDetailContract;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+import org.yczbj.ycvideoplayer.ui.movie.presenter.MovieDetailPresenter;
+import org.yczbj.ycvideoplayer.ui.movie.view.adapter.MovieDetailAdapter;
+import org.yczbj.ycvideoplayer.util.ImageUtil;
+import org.yczbj.ycvideoplayerlib.OnVideoBackListener;
+import org.yczbj.ycvideoplayerlib.VideoPlayer;
+import org.yczbj.ycvideoplayerlib.VideoPlayerController;
+import org.yczbj.ycvideoplayerlib.VideoPlayerManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.Bind;
+
+/**
+ * Created by yc on 2018/3/2
+ *
+ */
+
+public class MovieDetailActivity extends BaseActivity implements MovieDetailContract.View{
+
+
+    @Bind(R.id.video_player)
+    VideoPlayer videoPlayer;
+    @Bind(R.id.recyclerView)
+    YCRefreshView recyclerView;
+    private MovieDetailAdapter adapter;
+
+    private MovieDetailContract.Presenter presenter = new MovieDetailPresenter(this);
+    private String dataId;
+    private VideoPlayerController controller;
+
+    private TextView tvPlayerCurriculum;
+    private View mContentView;
+    private TextView tvName;
+    private TextView tvType;
+    private TextView tvAuthor;
+    private TextView tvTime;
+    private TextView tvCity;
+    private ImageView ivImageAd;
+    private TextView tvTitleAd;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        presenter.subscribe();
+    }
+
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        presenter.unSubscribe();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        VideoPlayerManager.instance().releaseVideoPlayer();
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (VideoPlayerManager.instance().onBackPressed()) {
+            return;
+        }
+        super.onBackPressed();
+    }
+
+
+    @Override
+    public int getContentView() {
+        return R.layout.base_video_view;
+    }
+
+    @Override
+    public void initView() {
+        initIntentData();
+        initVideoPlayer();
+        initYCRefreshView();
+    }
+
+
+    private void initIntentData() {
+        Intent intent = getIntent();
+        dataId = intent.getStringExtra("dataId");
+    }
+
+
+    @Override
+    public void initListener() {
+        adapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(int position) {
+                if(adapter.getAllData()!=null && adapter.getAllData().size()>0){
+                    Intent intent = new Intent(MovieDetailActivity.this, MovieDetailActivity.class);
+                    intent.putExtra("dataId",adapter.getAllData().get(position).getDataId());
+                    startActivity(intent);
+                }
+            }
+        });
+    }
+
+
+    @Override
+    public void initData() {
+        recyclerView.showProgress();
+        presenter.getData(dataId);
+    }
+
+
+    private void initVideoPlayer() {
+        //设置播放类型
+        videoPlayer.setPlayerType(VideoPlayer.TYPE_IJK);
+        //网络视频地址
+        //设置视频地址和请求头部
+        //创建视频控制器
+        controller = new VideoPlayerController(this);
+        controller.setOnVideoBackListener(new OnVideoBackListener() {
+            @Override
+            public void onBackClick() {
+                onBackPressed();
+            }
+        });
+        //设置视频控制器
+        videoPlayer.setController(controller);
+        //是否从上一次的位置继续播放
+        videoPlayer.continueFromLastPosition(true);
+        //设置播放速度
+        videoPlayer.setSpeed(1.0f);
+    }
+
+
+    private void initYCRefreshView() {
+        recyclerView.setLayoutManager(new LinearLayoutManager(this));
+        final RecycleViewItemLine line = new RecycleViewItemLine(this, LinearLayout.HORIZONTAL,
+                SizeUtils.dp2px(1), Color.parseColor("#f5f5f7"));
+        recyclerView.addItemDecoration(line);
+        adapter = new MovieDetailAdapter(this);
+        recyclerView.setAdapter(adapter);
+        recyclerView.setRefreshing(false);
+        addHeader();
+    }
+
+
+    private void addHeader() {
+        if(adapter.getHeaderCount()>0){
+            adapter.removeAllHeader();
+        }
+        initVideoContentView();
+        initHorizontalView();
+        initHeaderTitle();
+    }
+
+
+    private void initVideoContentView() {
+        adapter.addHeader(new RecyclerArrayAdapter.ItemView() {
+            @Override
+            public View onCreateView(ViewGroup parent) {
+                mContentView = LayoutInflater.from(MovieDetailActivity.this).inflate
+                        (R.layout.head_video_player_content, parent, false);
+                return mContentView;
+            }
+
+            @Override
+            public void onBindView(View headerView) {
+                tvPlayerCurriculum = headerView.findViewById(R.id.tv_player_curriculum);
+                tvName = headerView.findViewById(R.id.tv_name);
+                tvType = headerView.findViewById(R.id.tv_type);
+                tvAuthor = headerView.findViewById(R.id.tv_author);
+                tvTime = headerView.findViewById(R.id.tv_time);
+                tvCity = headerView.findViewById(R.id.tv_city);
+                ivImageAd = headerView.findViewById(R.id.iv_image_ad);
+                tvTitleAd = headerView.findViewById(R.id.tv_title_ad);
+            }
+        });
+    }
+
+
+
+    private void initHorizontalView() {
+        adapter.addHeader(new RecyclerArrayAdapter.ItemView() {
+            @Override
+            public View onCreateView(ViewGroup parent) {
+                RecyclerView recyclerView = new RecyclerView(parent.getContext()){
+                    //为了不打扰横向RecyclerView的滑动操作,可以这样处理
+                    @SuppressLint("ClickableViewAccessibility")
+                    @Override
+                    public boolean onTouchEvent(MotionEvent event) {
+                        super.onTouchEvent(event);
+                        return true;
+                    }
+                };
+                RecyclerView.LayoutParams layoutParams = new RecyclerView.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+                layoutParams.setMargins(SizeUtils.dp2px(10),SizeUtils.dp2px(5),
+                        SizeUtils.dp2px(10),SizeUtils.dp2px(5));
+                recyclerView.setLayoutParams(layoutParams);
+                final NarrowImageAdapter narrowAdapter;
+                recyclerView.setAdapter(narrowAdapter = new NarrowImageAdapter(parent.getContext()));
+                recyclerView.setLayoutManager(new LinearLayoutManager(parent.getContext(), LinearLayoutManager.HORIZONTAL,false));
+                recyclerView.addItemDecoration(new SpaceViewItemLine(SizeUtils.dp2px(8)));
+
+                narrowAdapter.setMore(R.layout.view_video_more_horizontal, new RecyclerArrayAdapter.OnLoadMoreListener() {
+                    @Override
+                    public void onLoadMore() {
+                        new Handler().postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                ToastUtil.showToast(MovieDetailActivity.this,"没有更多呢!");
+                            }
+                        },1000);
+                    }
+                });
+                List<VideoPlayerFavorite> favoriteList = new ArrayList<>();
+                for(int a=0 ; a<10 ; a++){
+                    VideoPlayerFavorite videoPlayerFavorite = new VideoPlayerFavorite(
+                            "这个是猜你喜欢的标题",R.drawable.bg_small_tree_min,"");
+                    favoriteList.add(videoPlayerFavorite);
+                }
+                narrowAdapter.addAll(favoriteList);
+                return recyclerView;
+            }
+
+            @Override
+            public void onBindView(View headerView) {
+                //这里的处理别忘了
+                ((ViewGroup)headerView).requestDisallowInterceptTouchEvent(true);
+            }
+        });
+    }
+
+    private void initHeaderTitle() {
+        adapter.addHeader(new RecyclerArrayAdapter.ItemView() {
+            @Override
+            public View onCreateView(ViewGroup parent) {
+                return LayoutInflater.from(MovieDetailActivity.this).inflate
+                        (R.layout.head_video_player_title, parent, false);
+            }
+
+            @Override
+            public void onBindView(View headerView) {
+                TextView tvPlayerTitle = headerView.findViewById(R.id.tv_player_title);
+                tvPlayerTitle.setText("热门推荐");
+            }
+        });
+    }
+
+
+
+    @SuppressLint({"SimpleDateFormat", "SetTextI18n"})
+    @Override
+    public void setAdapterData(MovieDetailBean movieDetailBean) {
+        if(movieDetailBean!=null && movieDetailBean.getRet()!=null){
+            MovieDetailBean.RetBean ret = movieDetailBean.getRet();
+            String hdurl = ret.getHDURL();
+            videoPlayer.setUp(hdurl,null);
+            controller.setTitle(ret.getTitle());
+            String duration = ret.getDuration();
+            controller.setLength(duration);
+            controller.setLoadingType(2);
+
+            if(mContentView!=null){
+                tvPlayerCurriculum.setText(ret.getDescription());
+                tvName.setText("电影名称:"+ret.getTitle());
+                tvAuthor.setText("人物主演:"+ret.getActors());
+                tvType.setText("电影类型:"+ret.getVideoType());
+                tvTime.setText("放映时间:"+ret.getAirTime());
+                tvCity.setText("上映国家:"+ret.getRegion());
+
+                if(ret.getAdv()!=null){
+                    ImageUtil.loadImgByPicasso(MovieDetailActivity.this,
+                            ret.getAdv().getImgURL(),R.drawable.bg_small_autumn_tree_min,ivImageAd);
+                    tvTitleAd.setText(ret.getAdv().getTitle());
+                }else {
+                    ImageUtil.loadImgByPicasso(MovieDetailActivity.this,R.drawable.bg_small_autumn_tree_min,ivImageAd);
+                    tvTitleAd.setText("潇湘剑雨");
+                }
+            }
+
+
+            ImageUtil.loadImgByPicasso(this,ret.getPic(),controller.imageView());
+
+            List<MovieDetailBean.RetBean.ListBean.ChildListBean> mLists = new ArrayList<>();
+            List<MovieDetailBean.RetBean.ListBean> list = ret.getList();
+            if(list!=null && list.size()>0){
+                for(int a=0 ; a<list.size() ; a++){
+                    switch (list.get(a).getTitle()){
+                        case "猜你喜欢":
+                            mLists.addAll(list.get(a).getChildList());
+                            break;
+                        case "":
+                            mLists.addAll(list.get(a).getChildList());
+                            break;
+                        default:
+                            break;
+                    }
+                }
+            }
+            if(adapter==null){
+                adapter = new MovieDetailAdapter(this);
+            }else {
+                adapter.clear();
+            }
+            adapter.addAll(mLists);
+            adapter.notifyDataSetChanged();
+            recyclerView.showRecycler();
+        }
+    }
+
+
+}

+ 62 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieAdapter.java

@@ -0,0 +1,62 @@
+package org.yczbj.ycvideoplayer.ui.movie.view.adapter;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import org.yczbj.ycrefreshviewlib.adapter.RecyclerArrayAdapter;
+import org.yczbj.ycrefreshviewlib.viewHolder.BaseViewHolder;
+import org.yczbj.ycvideoplayer.R;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.util.ImageUtil;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
+
+public class MovieAdapter extends RecyclerArrayAdapter<MovieBean.RetBean.ListBean.ChildListBean> {
+
+    public MovieAdapter(Activity activity) {
+        super(activity);
+    }
+
+    @Override
+    public BaseViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) {
+        return new MovieViewHolder(parent);
+    }
+
+    public class MovieViewHolder extends BaseViewHolder<MovieBean.RetBean.ListBean.ChildListBean> {
+
+        @Bind(R.id.iv_image)
+        ImageView ivImage;
+        @Bind(R.id.tv_title)
+        TextView tvTitle;
+        @Bind(R.id.tv_time)
+        TextView tvTime;
+        @Bind(R.id.tv_duration)
+        TextView tvDuration;
+        @Bind(R.id.tv_content)
+        TextView tvContent;
+
+        MovieViewHolder(ViewGroup parent) {
+            super(parent, R.layout.item_movie_news);
+            ButterKnife.bind(this, itemView);
+        }
+
+        @SuppressLint("SetTextI18n")
+        @Override
+        public void setData(MovieBean.RetBean.ListBean.ChildListBean data) {
+            super.setData(data);
+            if (data != null) {
+                ImageUtil.loadImgByPicasso(getContext(), data.getPic(), R.drawable.image_default, ivImage);
+                tvTitle.setText(data.getTitle());
+                tvTime.setText("影片上映日期:" + data.getAirTime());
+                tvDuration.setText(data.getDuration());
+            }
+        }
+    }
+
+
+}

+ 54 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieBannerAdapter.java

@@ -0,0 +1,54 @@
+package org.yczbj.ycvideoplayer.ui.movie.view.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import com.yc.cn.ycbannerlib.first.adapter.StaticPagerAdapter;
+
+import org.yczbj.ycvideoplayer.R;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.util.ImageUtil;
+
+import java.util.List;
+
+/**
+ * ================================================
+ * 作    者:杨充
+ * 版    本:1.0
+ * 创建日期:2016/11/12
+ * 描    述:会议轮播图适配器
+ * 修订历史:
+ * ================================================
+ */
+public class MovieBannerAdapter extends StaticPagerAdapter {
+
+    private Context ctx;
+    private List<MovieBean.RetBean.ListBean.ChildListBean> list;
+
+    public MovieBannerAdapter(Context ctx, List<MovieBean.RetBean.ListBean.ChildListBean> list) {
+        this.ctx = ctx;
+        this.list = list;
+    }
+
+    @Override
+    public View getView(ViewGroup container, final int position) {
+        ImageView imageView = new ImageView(ctx);
+        imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+        //加载图片
+        if(list!=null){
+            ImageUtil.loadImgByPicasso(ctx,list.get(position).getPic(), R.drawable.image_default,imageView);
+        }else {
+            ImageUtil.loadImgByPicasso(ctx, R.drawable.image_default,imageView);
+        }
+        return imageView;
+    }
+
+    @Override
+    public int getCount() {
+        return list==null ? 0 : list.size();
+    }
+
+}

+ 68 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/adapter/MovieDetailAdapter.java

@@ -0,0 +1,68 @@
+package org.yczbj.ycvideoplayer.ui.movie.view.adapter;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import org.yczbj.ycrefreshviewlib.adapter.RecyclerArrayAdapter;
+import org.yczbj.ycrefreshviewlib.viewHolder.BaseViewHolder;
+import org.yczbj.ycvideoplayer.R;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieDetailBean;
+import org.yczbj.ycvideoplayer.util.ImageUtil;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
+
+public class MovieDetailAdapter extends RecyclerArrayAdapter<MovieDetailBean.RetBean.ListBean.ChildListBean> {
+
+    public MovieDetailAdapter(Activity activity) {
+        super(activity);
+    }
+
+    @Override
+    public BaseViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) {
+        return new MovieViewHolder(parent);
+    }
+
+    public class MovieViewHolder extends BaseViewHolder<MovieDetailBean.RetBean.ListBean.ChildListBean> {
+
+
+        @Bind(R.id.iv_movie_photo)
+        ImageView ivMoviePhoto;
+        @Bind(R.id.tv_movie_title)
+        TextView tvMovieTitle;
+        @Bind(R.id.tv_movie_directors)
+        TextView tvMovieDirectors;
+        @Bind(R.id.tv_movie_casts)
+        TextView tvMovieCasts;
+        @Bind(R.id.tv_movie_genres)
+        TextView tvMovieGenres;
+
+        MovieViewHolder(ViewGroup parent) {
+            super(parent, R.layout.item_movie_detail_news);
+            ButterKnife.bind(this, itemView);
+        }
+
+        @SuppressLint("SetTextI18n")
+        @Override
+        public void setData(MovieDetailBean.RetBean.ListBean.ChildListBean data) {
+            super.setData(data);
+            if (data != null) {
+                ImageUtil.loadImgByPicasso(getContext(), data.getPic(), R.drawable.image_default, ivMoviePhoto);
+                tvMovieTitle.setText(data.getTitle());
+                tvMovieDirectors.setText("潇湘剑雨");
+                tvMovieCasts.setText("时间"+data.getAirTime());
+                tvMovieGenres.setText(data.getDescription());
+            }
+        }
+
+
+    }
+
+
+}

+ 355 - 0
app/src/main/java/org/yczbj/ycvideoplayer/ui/movie/view/fragment/MovieFragment.java

@@ -0,0 +1,355 @@
+package org.yczbj.ycvideoplayer.ui.movie.view.fragment;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import com.blankj.utilcode.util.NetworkUtils;
+import com.blankj.utilcode.util.SizeUtils;
+import com.pedaily.yc.ycdialoglib.toast.ToastUtil;
+import com.yc.cn.ycbannerlib.first.BannerView;
+import com.yc.cn.ycbannerlib.first.util.SizeUtil;
+
+import org.yczbj.ycrefreshviewlib.YCRefreshView;
+import org.yczbj.ycrefreshviewlib.adapter.RecyclerArrayAdapter;
+import org.yczbj.ycrefreshviewlib.item.RecycleViewItemLine;
+import org.yczbj.ycvideoplayer.R;
+import org.yczbj.ycvideoplayer.base.mvp1.BaseFragment;
+import org.yczbj.ycvideoplayer.ui.main.view.activity.MainActivity;
+import org.yczbj.ycvideoplayer.ui.movie.contract.MovieContract;
+import org.yczbj.ycvideoplayer.ui.movie.model.MovieBean;
+import org.yczbj.ycvideoplayer.ui.movie.presenter.MoviePresenter;
+import org.yczbj.ycvideoplayer.ui.movie.view.adapter.MovieAdapter;
+import org.yczbj.ycvideoplayer.ui.movie.view.adapter.MovieBannerAdapter;
+import org.yczbj.ycvideoplayer.ui.movie.view.activity.MovieDetailActivity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.Bind;
+
+/**
+ * Created by yc on 2018/3/1.
+ *
+ */
+public class MovieFragment extends BaseFragment implements MovieContract.View{
+
+    @Bind(R.id.recyclerView)
+    YCRefreshView recyclerView;
+    private MainActivity activity;
+    private MovieAdapter adapter;
+    private BannerView mBanner;
+
+    private MovieContract.Presenter presenter = new MoviePresenter(this);
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        activity = (MainActivity) context;
+    }
+
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        activity = null;
+    }
+
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if(mBanner!=null){
+            mBanner.pause();
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(mBanner!=null){
+            mBanner.resume();
+        }
+    }
+
+
+    @Override
+    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        presenter.subscribe();
+    }
+
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        presenter.unSubscribe();
+    }
+
+
+    @Override
+    public int getContentView() {
+        return R.layout.base_easy_recycle;
+    }
+
+    @Override
+    public void initView() {
+        initYCRefreshView();
+    }
+
+    @Override
+    public void initListener() {
+        adapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(int position) {
+                if(adapter.getAllData()!=null && adapter.getAllData().size()>0){
+                    Intent intent = new Intent(activity, MovieDetailActivity.class);
+                    intent.putExtra("dataId",adapter.getAllData().get(position).getDataId());
+                    startActivity(intent);
+                }
+            }
+        });
+    }
+
+
+    @Override
+    public void initData() {
+        recyclerView.setProgressView(R.layout.view_custom_loading_data);
+        recyclerView.showProgress();
+        presenter.getData();
+    }
+
+
+    private void initYCRefreshView() {
+        recyclerView.setLayoutManager(new LinearLayoutManager(activity));
+        final RecycleViewItemLine line = new RecycleViewItemLine(activity, LinearLayout.HORIZONTAL,
+                SizeUtils.dp2px(1), Color.parseColor("#f5f5f7"));
+        recyclerView.addItemDecoration(line);
+        adapter = new MovieAdapter(activity);
+        recyclerView.setAdapter(adapter);
+        addHeader();
+        recyclerView.setRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                SwipeRefreshLayout swipeToRefresh = recyclerView.getSwipeToRefresh();
+                if(swipeToRefresh.isRefreshing()){
+                    recyclerView.setRefreshing(false);
+                }
+            }
+        });
+        //加载更多
+        adapter.setMore(R.layout.view_recycle_more, new RecyclerArrayAdapter.OnMoreListener() {
+            @Override
+            public void onMoreShow() {
+                if (NetworkUtils.isConnected()) {
+
+                } else {
+                    adapter.pauseMore();
+                    ToastUtil.showToast(activity,"网络不可用");
+                }
+            }
+
+            @Override
+            public void onMoreClick() {
+
+            }
+        });
+
+        //设置没有数据
+        adapter.setNoMore(R.layout.view_recycle_no_more, new RecyclerArrayAdapter.OnNoMoreListener() {
+            @Override
+            public void onNoMoreShow() {
+                if (NetworkUtils.isConnected()) {
+                    adapter.resumeMore();
+                } else {
+                    ToastUtil.showToast(activity,"网络不可用");
+                }
+            }
+
+            @Override
+            public void onNoMoreClick() {
+                if (NetworkUtils.isConnected()) {
+                    adapter.resumeMore();
+                } else {
+                    ToastUtil.showToast(activity,"网络不可用");
+                }
+            }
+        });
+
+        //设置错误
+        adapter.setError(R.layout.view_recycle_error, new RecyclerArrayAdapter.OnErrorListener() {
+            @Override
+            public void onErrorShow() {
+                adapter.resumeMore();
+            }
+
+            @Override
+            public void onErrorClick() {
+                adapter.resumeMore();
+            }
+        });
+    }
+
+
+    /**
+     * 添加头部
+     */
+    private void addHeader() {
+        if(adapter.getHeaderCount()!=0){
+            adapter.removeAllHeader();
+        }
+        initTopHeaderView();
+        initContentView();
+    }
+
+
+    private void initTopHeaderView() {
+        adapter.addHeader(new RecyclerArrayAdapter.ItemView() {
+            @Override
+            public View onCreateView(ViewGroup parent) {
+                return LayoutInflater.from(activity).inflate(R.layout.head_video_banner, parent, false);
+            }
+
+
+            @Override
+            public void onBindView(View headerView) {
+                View.OnClickListener listener = new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        switch (v.getId()){
+                            case R.id.tv_special_first:
+
+                                break;
+                            case R.id.tv_special_second:
+
+                                break;
+                            case R.id.tv_special_third:
+
+                                break;
+                            case R.id.tv_special_four:
+
+                                break;
+                            case R.id.tv_special_five:
+
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                };
+                headerView.findViewById(R.id.tv_special_first).setOnClickListener(listener);
+                headerView.findViewById(R.id.tv_special_second).setOnClickListener(listener);
+                headerView.findViewById(R.id.tv_special_third).setOnClickListener(listener);
+                headerView.findViewById(R.id.tv_special_four).setOnClickListener(listener);
+                headerView.findViewById(R.id.tv_special_five).setOnClickListener(listener);
+
+                // 绑定数据
+                mBanner = headerView.findViewById(R.id.banner);
+                mBanner.setHintGravity(5);
+                mBanner.setAnimationDuration(1000);
+                mBanner.setPlayDelay(2000);
+                mBanner.setHintPadding(0,0, SizeUtil.dip2px(activity,10), SizeUtil.dip2px(activity,10));
+            }
+        });
+    }
+
+
+    private void initContentView() {
+        adapter.addHeader(new RecyclerArrayAdapter.ItemView() {
+            @Override
+            public View onCreateView(ViewGroup parent) {
+                return LayoutInflater.from(activity).inflate(R.layout.head_video_content, parent, false);
+            }
+
+            @Override
+            public void onBindView(View headerView) {
+
+            }
+        });
+    }
+
+
+    @Override
+    public void setAdapterData(MovieBean movieBean) {
+        final List<MovieBean.RetBean.ListBean.ChildListBean> bannerList = new ArrayList<>();
+        List<MovieBean.RetBean.ListBean.ChildListBean> movieList = new ArrayList<>();
+        List<MovieBean.RetBean.ListBean> list = movieBean.getRet().getList();
+        List<MovieBean.RetBean.HotSearchListBean> hotSearchList = movieBean.getRet().getHotSearchList();
+        for (int a=0 ; a<list.size() ; a++){
+            switch (list.get(a).getTitle()){
+                case "Banner":
+                    bannerList.addAll(list.get(a).getChildList());
+                    break;
+                case "免费推荐":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "热点资讯":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "精彩推荐":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "大咖剧场":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "电影资讯":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "大片抢先看":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "微电影":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "香港映象":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                case "好莱坞":
+                    movieList.addAll(list.get(a).getChildList());
+                    break;
+                default:
+                    break;
+            }
+        }
+        if(bannerList.size()>0){
+            if(mBanner!=null){
+                mBanner.setAdapter(new MovieBannerAdapter(activity, bannerList));
+                mBanner.setOnBannerClickListener(new BannerView.OnBannerClickListener() {
+                    @Override
+                    public void onItemClick(int position) {
+                        if(bannerList.size()>0){
+                            Intent intent = new Intent(activity, MovieDetailActivity.class);
+                            intent.putExtra("dataId",bannerList.get(position).getDataId());
+                            startActivity(intent);
+                        }
+                    }
+                });
+            }
+        }
+        if(movieList.size()>0){
+            adapter.clear();
+            adapter.addAll(movieList);
+            adapter.notifyDataSetChanged();
+            try {
+                Thread.sleep(3000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }finally {
+                recyclerView.showRecycler();
+            }
+        }else{
+            recyclerView.showEmpty();
+            recyclerView.setEmptyView(R.layout.view_custom_empty_data);
+        }
+    }
+
+
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 14
app/src/main/java/org/yczbj/ycvideoplayer/ui/other/HomeBean.java


+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/ui/person/MeCacheActivity.java

@@ -15,8 +15,8 @@ import org.yczbj.ycrefreshviewlib.swipeMenu.OnSwipeMenuListener;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.ui.person.adapter.MeCacheAdapter;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManager;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManager;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManagerModel;
 
 import java.util.ArrayList;
 import java.util.List;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/ui/person/adapter/MeCacheAdapter.java

@@ -25,8 +25,8 @@ import org.yczbj.ycrefreshviewlib.swipeMenu.OnSwipeMenuListener;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.download.TasksManager;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlCacheTasksManager;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlCacheTasksManager;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManagerModel;
 
 import java.io.File;
 import java.lang.ref.WeakReference;

+ 21 - 5
app/src/main/java/org/yczbj/ycvideoplayer/ui/special/SpecialFragment.java

@@ -37,11 +37,11 @@ import org.yczbj.ycvideoplayer.ui.special.contract.SpecialContract;
 import org.yczbj.ycvideoplayer.ui.special.model.SpecialBean;
 import org.yczbj.ycvideoplayer.ui.special.presenter.SpecialPresenter;
 import org.yczbj.ycvideoplayer.ui.special.view.SpecialAdapter;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLHybridTestActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLManyTestActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLMyFileTestActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLNotificationTestActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLSingleTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLHybridTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLManyTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLMyFileTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLNotificationTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLSingleTestActivity;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -77,6 +77,22 @@ public class SpecialFragment extends BaseFragment implements SpecialContract.Vie
         activity = null;
     }
 
+    @Override
+    public void onPause() {
+        super.onPause();
+        if(mBanner!=null){
+            mBanner.pause();
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(mBanner!=null){
+            mBanner.resume();
+        }
+    }
+
     @Override
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);

+ 7 - 7
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/TestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/TestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1;
+package org.yczbj.ycvideoplayer.ui.test.test1;
 
 import android.util.Log;
 import android.view.View;
@@ -8,12 +8,12 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.first.TestFirstActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.five.TestFiveActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.four.TestFourActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.second.TestSecondActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.six.TestSixActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.three.TestThreeActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.first.TestFirstActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.five.TestFiveActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.four.TestFourActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.second.TestSecondActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.six.TestSixActivity;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.three.TestThreeActivity;
 
 import butterknife.Bind;
 import cn.jzvd.CustomView.MyJZVideoPlayerStandard;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/model/VideoConstant.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/model/VideoConstant.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.model;
+package org.yczbj.ycvideoplayer.ui.test.test1.model;
 
 /**
  * Created by shengjun on 16/9/10.

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiFirstActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFirstActivity.java

@@ -1,10 +1,10 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.CustomView.JZVideoPlayerStandardAutoCompleteAfterFullscreen;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiFiveActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFiveActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import android.view.View;
 import android.widget.Button;
@@ -7,7 +7,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiFourActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiFourActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import android.widget.LinearLayout;
 
@@ -6,7 +6,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiSecondActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiSecondActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiSixActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiSixActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import android.view.View;
 import android.widget.Button;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestApiThreeActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestApiThreeActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import android.content.pm.ActivityInfo;
 
@@ -6,7 +6,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/first/TestFirstActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/first/TestFirstActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.first;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.first;
 
 import android.view.View;
 import android.widget.Button;
@@ -7,7 +7,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/five/TestFiveActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/five/TestFiveActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.five;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.five;
 
 import android.annotation.SuppressLint;
 import android.view.ViewGroup;
@@ -11,7 +11,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZUtils;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/four/TestFourActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/four/TestFourActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.four;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.four;
 
 import android.view.View;
 import android.widget.Button;
@@ -7,7 +7,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestFiveBean.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestFiveBean.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 /**
  * Description:

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFirstActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFirstActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.content.Context;
 import android.hardware.Sensor;
@@ -14,7 +14,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFiveActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFiveActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFiveAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFiveAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
@@ -11,7 +11,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import java.util.List;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFourActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFourActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFourAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFourAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.annotation.SuppressLint;
 import android.content.Context;
@@ -11,7 +11,7 @@ import android.view.ViewGroup;
 import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import cn.jzvd.JZVideoPlayer;
 import cn.jzvd.JZVideoPlayerStandard;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListFragment.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListFragment.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 
 import android.os.Bundle;
@@ -11,7 +11,7 @@ import android.widget.AbsListView;
 import android.widget.ListView;
 
 import org.yczbj.ycvideoplayer.R;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import butterknife.ButterKnife;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListSecondActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListSecondActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.support.v4.view.ViewPager;
 

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestListThirdActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestListThirdActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.content.Context;
 import android.view.LayoutInflater;
@@ -13,7 +13,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/second/TestSecondActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/second/TestSecondActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.second;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.second;
 
 import android.view.View;
 import android.widget.Button;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/six/TestSixActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/six/TestSixActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.six;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.six;
 
 import com.squareup.picasso.Picasso;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestThreeActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestThreeActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.view.View;
 import android.widget.Button;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyFirstActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFirstActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.content.Context;
 import android.view.LayoutInflater;
@@ -12,7 +12,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyFiveActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFiveActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -9,7 +9,7 @@ import com.pedaily.yc.ycdialoglib.toast.ToastUtil;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test1.view.second.TestFiveBean;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.second.TestFiveBean;
 
 import java.util.ArrayList;
 import java.util.List;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyFiveAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFiveAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
@@ -11,8 +11,8 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
-import org.yczbj.ycvideoplayer.test.test1.view.second.TestFiveBean;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.view.second.TestFiveBean;
 
 import java.util.List;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyFourActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFourActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyFourAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyFourAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.annotation.SuppressLint;
 import android.content.Context;
@@ -11,7 +11,7 @@ import android.view.ViewGroup;
 import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import cn.jzvd.JZVideoPlayer;
 import cn.jzvd.JZVideoPlayerStandard;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test1/view/three/TestTinyThirdActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test1/view/three/TestTinyThirdActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test1.view.three;
+package org.yczbj.ycvideoplayer.ui.test.test1.view.three;
 
 import android.content.Context;
 import android.view.LayoutInflater;
@@ -13,7 +13,7 @@ import com.squareup.picasso.Picasso;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test1.model.VideoConstant;
+import org.yczbj.ycvideoplayer.ui.test.test1.model.VideoConstant;
 
 import butterknife.Bind;
 import cn.jzvd.JZVideoPlayer;

+ 7 - 7
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/TestMyActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/TestMyActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2;
+package org.yczbj.ycvideoplayer.ui.test.test2;
 
 import android.view.View;
 import android.widget.Button;
@@ -8,12 +8,12 @@ import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.ui.person.MeLoginActivity;
 import org.yczbj.ycvideoplayer.ui.person.MeMemberActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMyFirstActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMyFiveActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMyFourActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMySecondActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMySixActivity;
-import org.yczbj.ycvideoplayer.test.test2.view.TestMyThirdActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMyFirstActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMyFiveActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMyFourActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMySecondActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMySixActivity;
+import org.yczbj.ycvideoplayer.ui.test.test2.view.TestMyThirdActivity;
 import org.yczbj.ycvideoplayer.util.ImageUtil;
 import org.yczbj.ycvideoplayer.util.LogUtils;
 import org.yczbj.ycvideoplayerlib.ConstantKeys;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/base/HomeKeyWatcher.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/base/HomeKeyWatcher.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.base;
+package org.yczbj.ycvideoplayer.ui.test.test2.base;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/model/Video.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/model/Video.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.model;
+package org.yczbj.ycvideoplayer.ui.test.test2.model;
 
 /**
  * 视频

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMyFirstActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFirstActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.os.Environment;
 import android.view.View;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMyFiveActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFiveActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
@@ -7,8 +7,8 @@ import android.support.v7.widget.RecyclerView;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test2.base.HomeKeyWatcher;
-import org.yczbj.ycvideoplayer.test.test2.model.Video;
+import org.yczbj.ycvideoplayer.ui.test.test2.base.HomeKeyWatcher;
+import org.yczbj.ycvideoplayer.ui.test.test2.model.Video;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerManager;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMyFourActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFourActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMyFourFragment.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyFourFragment.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.os.Bundle;
 import android.support.annotation.Nullable;
@@ -11,7 +11,7 @@ import android.view.ViewGroup;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
-import org.yczbj.ycvideoplayer.test.test2.model.Video;
+import org.yczbj.ycvideoplayer.ui.test.test2.model.Video;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerManager;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMySecondActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySecondActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.view.View;
 import android.widget.Button;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMySixActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySixActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMySixFragment.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMySixFragment.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -6,7 +6,7 @@ import android.support.v7.widget.RecyclerView;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseFragment;
-import org.yczbj.ycvideoplayer.test.test2.model.Video;
+import org.yczbj.ycvideoplayer.ui.test.test2.model.Video;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerManager;
 

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/TestMyThirdActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/TestMyThirdActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -6,7 +6,7 @@ import android.support.v7.widget.RecyclerView;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test2.model.Video;
+import org.yczbj.ycvideoplayer.ui.test.test2.model.Video;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerManager;
 

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test2/view/VideoAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test2/view/VideoAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test2.view;
+package org.yczbj.ycvideoplayer.ui.test.test2.view;
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
@@ -7,7 +7,7 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import org.yczbj.ycvideoplayer.R;
-import org.yczbj.ycvideoplayer.test.test2.model.Video;
+import org.yczbj.ycvideoplayer.ui.test.test2.model.Video;
 import org.yczbj.ycvideoplayer.util.ImageUtil;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerController;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download/DLTasksManager.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManager.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download;
+package org.yczbj.ycvideoplayer.ui.test.test3.download;
 
 import android.text.TextUtils;
 import android.util.SparseArray;
@@ -11,8 +11,8 @@ import com.liulishuo.filedownloader.model.FileDownloadStatus;
 import com.liulishuo.filedownloader.util.FileDownloadUtils;
 
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLManyTestActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.adapter.DLManyAdapter;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLManyTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter.DLManyAdapter;
 
 import java.lang.ref.WeakReference;
 import java.util.List;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download/DLTasksManagerDBController.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerDBController.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download;
+package org.yczbj.ycvideoplayer.ui.test.test3.download;
 
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download/DLTasksManagerDBOpenHelper.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerDBOpenHelper.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download;
+package org.yczbj.ycvideoplayer.ui.test.test3.download;
 
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download/DLTasksManagerModel.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download/DLTasksManagerModel.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download;
+package org.yczbj.ycvideoplayer.ui.test.test3.download;
 
 import android.content.ContentValues;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download2/DlCacheTasksManager.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlCacheTasksManager.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download2;
+package org.yczbj.ycvideoplayer.ui.test.test3.download2;
 
 
 import android.text.TextUtils;

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download2/DlTasksManager.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManager.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download2;
+package org.yczbj.ycvideoplayer.ui.test.test3.download2;
 
 
 import android.text.TextUtils;
@@ -11,7 +11,7 @@ import com.liulishuo.filedownloader.FileDownloader;
 import com.liulishuo.filedownloader.model.FileDownloadStatus;
 import com.liulishuo.filedownloader.util.FileDownloadUtils;
 
-import org.yczbj.ycvideoplayer.test.test3.ui.adapter.DlMyFileAdapter;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter.DlMyFileAdapter;
 
 import java.lang.ref.WeakReference;
 import java.util.List;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download2/DlTasksManagerDBController.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerDBController.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download2;
+package org.yczbj.ycvideoplayer.ui.test.test3.download2;
 
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download2/DlTasksManagerDBOpenHelper.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerDBOpenHelper.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download2;
+package org.yczbj.ycvideoplayer.ui.test.test3.download2;
 
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/download2/DlTasksManagerModel.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/download2/DlTasksManagerModel.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.download2;
+package org.yczbj.ycvideoplayer.ui.test.test3.download2;
 
 import android.content.ContentValues;
 

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/model/api.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/model/api.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.model;
+package org.yczbj.ycvideoplayer.ui.test.test3.model;
 
 /**
  * Created by yc on 2018/1/18.

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/NotificationItem.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/NotificationItem.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui;
 
 import android.app.Notification;
 import android.app.PendingIntent;
@@ -13,7 +13,7 @@ import com.liulishuo.filedownloader.util.FileDownloadHelper;
 
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.ui.main.view.activity.MainActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.activity.DLNotificationTestActivity;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.activity.DLNotificationTestActivity;
 
 /**
  * Created by yc on 2018/1/17.

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/DLHybridTestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLHybridTestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.annotation.SuppressLint;
 import android.text.Html;

+ 4 - 4
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/DLManyTestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLManyTestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.graphics.Color;
 import android.os.Bundle;
@@ -16,9 +16,9 @@ import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.listener.OnItemLongClickListener;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test3.download.DLTasksManager;
-import org.yczbj.ycvideoplayer.test.test3.download.DLTasksManagerModel;
-import org.yczbj.ycvideoplayer.test.test3.ui.adapter.DLManyAdapter;
+import org.yczbj.ycvideoplayer.ui.test.test3.download.DLTasksManager;
+import org.yczbj.ycvideoplayer.ui.test.test3.download.DLTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter.DLManyAdapter;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/DLMyFileTestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLMyFileTestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -18,8 +18,8 @@ import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
 import org.yczbj.ycvideoplayer.ui.person.MeCacheActivity;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManagerModel;
-import org.yczbj.ycvideoplayer.test.test3.ui.adapter.DlMyFileAdapter;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter.DlMyFileAdapter;
 import org.yczbj.ycvideoplayer.util.AppUtil;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 

+ 2 - 2
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/DLNotificationTestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLNotificationTestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.app.NotificationManager;
 import android.content.Context;
@@ -18,7 +18,7 @@ import com.liulishuo.filedownloader.util.FileDownloadUtils;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.base.mvp1.BaseActivity;
-import org.yczbj.ycvideoplayer.test.test3.ui.NotificationItem;
+import org.yczbj.ycvideoplayer.ui.test.test3.ui.NotificationItem;
 
 import java.io.File;
 import java.lang.ref.WeakReference;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/DLSingleTestActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/DLSingleTestActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.annotation.SuppressLint;
 import android.view.View;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/activity/GlideCropActivity.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/activity/GlideCropActivity.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.activity;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.activity;
 
 import android.graphics.Bitmap;
 import android.graphics.Matrix;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/adapter/DLManyAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/adapter/DLManyAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.adapter;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter;
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
@@ -24,8 +24,8 @@ import org.yczbj.ycvideoplayer.base.BaseApplication;
 import org.yczbj.ycvideoplayer.download.TasksManager;
 import org.yczbj.ycvideoplayer.listener.OnItemLongClickListener;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test3.download.DLTasksManager;
-import org.yczbj.ycvideoplayer.test.test3.download.DLTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.download.DLTasksManager;
+import org.yczbj.ycvideoplayer.ui.test.test3.download.DLTasksManagerModel;
 
 import java.io.File;
 import java.util.List;

+ 3 - 3
app/src/main/java/org/yczbj/ycvideoplayer/test/test3/ui/adapter/DlMyFileAdapter.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/test/test3/ui/adapter/DlMyFileAdapter.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.test.test3.ui.adapter;
+package org.yczbj.ycvideoplayer.ui.test.test3.ui.adapter;
 
 import android.annotation.SuppressLint;
 import android.app.Activity;
@@ -24,8 +24,8 @@ import com.pedaily.yc.ycdialoglib.toast.ToastUtil;
 import org.yczbj.ycvideoplayer.R;
 import org.yczbj.ycvideoplayer.download.TasksManager;
 import org.yczbj.ycvideoplayer.listener.OnListItemClickListener;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManager;
-import org.yczbj.ycvideoplayer.test.test3.download2.DlTasksManagerModel;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManager;
+import org.yczbj.ycvideoplayer.ui.test.test3.download2.DlTasksManagerModel;
 
 import java.io.File;
 import java.lang.ref.WeakReference;

+ 0 - 5
app/src/main/java/org/yczbj/ycvideoplayer/ui/video/view/activity/VideoContentActivity.java

@@ -20,16 +20,11 @@ import org.yczbj.ycrefreshviewlib.YCRefreshView;
 import org.yczbj.ycrefreshviewlib.adapter.RecyclerArrayAdapter;
 import org.yczbj.ycrefreshviewlib.item.RecycleViewItemLine;
 import org.yczbj.ycvideoplayer.R;
-import org.yczbj.ycvideoplayer.api.constant.ConstantVideo;
 import org.yczbj.ycvideoplayer.api.http.video.VideoModel;
 import org.yczbj.ycvideoplayer.base.mvp2.BaseMVPActivity;
-import org.yczbj.ycvideoplayer.test.test1.view.second.TestSecondActivity;
-import org.yczbj.ycvideoplayer.ui.person.MeLoginActivity;
 import org.yczbj.ycvideoplayer.ui.video.model.bean.MultiNewsArticleDataBean;
 import org.yczbj.ycvideoplayer.ui.video.model.bean.VideoContentBean;
 import org.yczbj.ycvideoplayer.ui.video.view.adapter.VideoArticleAdapter;
-import org.yczbj.ycvideoplayerlib.ConstantKeys;
-import org.yczbj.ycvideoplayerlib.OnMemberClickListener;
 import org.yczbj.ycvideoplayerlib.OnVideoBackListener;
 import org.yczbj.ycvideoplayerlib.VideoPlayer;
 import org.yczbj.ycvideoplayerlib.VideoPlayerController;

+ 1 - 1
app/src/main/java/org/yczbj/ycvideoplayer/ui/video/VideoFragment.java → app/src/main/java/org/yczbj/ycvideoplayer/ui/video/view/fragment/VideoFragment.java

@@ -1,4 +1,4 @@
-package org.yczbj.ycvideoplayer.ui.video;
+package org.yczbj.ycvideoplayer.ui.video.view.fragment;
 
 import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;

BIN
app/src/main/res/drawable-xhdpi/ic_category_0.png


BIN
app/src/main/res/drawable-xhdpi/ic_category_1.png


BIN
app/src/main/res/drawable-xhdpi/ic_category_2.png


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels