// Path: app/src/main/java/com/lqr/biliblili/mvp/contract/VideoDetailContract.java
// public interface VideoDetailContract {
//     //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
//     interface View extends IView {
//         void setTvAvStr(String av);
// 
//         ImageView getIvCover();
// 
//         void initViewPager(VideoDetail videoDetail);
// 
//         void setTvVideoStartInfoStr(String tip);
// 
//         void playVideo(PlayUrl playUrl);
// 
//     }
// 
//     //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//     interface Model extends IModel {
//         Observable<Summary> getSummaryData(String aid);
// 
//         Observable<Reply> getReplyData(String aid, int pn, int ps);
// 
//         Observable<PlayUrl> getPlayurl(String aid);
//     }
// }
// 
// Path: app/src/main/java/com/lqr/biliblili/mvp/model/VideoDetailModel.java
// @ActivityScope
// public class VideoDetailModel extends BaseModel implements VideoDetailContract.Model {
//     private Gson mGson;
//     private Application mApplication;
// 
//     @Inject
//     public VideoDetailModel(IRepositoryManager repositoryManager, Gson gson, Application application) {
//         super(repositoryManager);
//         this.mGson = gson;
//         this.mApplication = application;
//     }
// 
//     @Override
//     public void onDestroy() {
//         super.onDestroy();
//         this.mGson = null;
//         this.mApplication = null;
//     }
// 
//     @Override
//     public Observable<Summary> getSummaryData(String aid) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getSummaryData(aid);
//     }
// 
//     @Override
//     public Observable<Reply> getReplyData(String oid, int pn, int ps) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getReplyData(oid, pn, ps);
//     }
// 
//     @Override
//     public Observable<PlayUrl> getPlayurl(String aid) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getPlayurl(aid);
//     }
// }


import com.jess.arms.di.scope.ActivityScope;
import dagger.Module;
import dagger.Provides;
import com.lqr.biliblili.mvp.contract.VideoDetailContract;
import com.lqr.biliblili.mvp.model.VideoDetailModel;
package com.lqr.biliblili.di.module;





@Module
public class VideoDetailModule {
    private VideoDetailContract.View view;

    /**
     * 构建VideoDetailModule时,将View的实现类传进来,这样就可以提供View的实现类给presenter
     *
     * @param view
     */
    public VideoDetailModule(VideoDetailContract.View view) {
        this.view = view;
    }

    @ActivityScope
    @Provides
    VideoDetailContract.View provideVideoDetailView() {
        return this.view;
    }

    @ActivityScope
    @Provides
// Path: app/src/main/java/com/lqr/biliblili/mvp/contract/VideoDetailContract.java
// public interface VideoDetailContract {
//     //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
//     interface View extends IView {
//         void setTvAvStr(String av);
// 
//         ImageView getIvCover();
// 
//         void initViewPager(VideoDetail videoDetail);
// 
//         void setTvVideoStartInfoStr(String tip);
// 
//         void playVideo(PlayUrl playUrl);
// 
//     }
// 
//     //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//     interface Model extends IModel {
//         Observable<Summary> getSummaryData(String aid);
// 
//         Observable<Reply> getReplyData(String aid, int pn, int ps);
// 
//         Observable<PlayUrl> getPlayurl(String aid);
//     }
// }
// 
// Path: app/src/main/java/com/lqr/biliblili/mvp/model/VideoDetailModel.java
// @ActivityScope
// public class VideoDetailModel extends BaseModel implements VideoDetailContract.Model {
//     private Gson mGson;
//     private Application mApplication;
// 
//     @Inject
//     public VideoDetailModel(IRepositoryManager repositoryManager, Gson gson, Application application) {
//         super(repositoryManager);
//         this.mGson = gson;
//         this.mApplication = application;
//     }
// 
//     @Override
//     public void onDestroy() {
//         super.onDestroy();
//         this.mGson = null;
//         this.mApplication = null;
//     }
// 
//     @Override
//     public Observable<Summary> getSummaryData(String aid) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getSummaryData(aid);
//     }
// 
//     @Override
//     public Observable<Reply> getReplyData(String oid, int pn, int ps) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getReplyData(oid, pn, ps);
//     }
// 
//     @Override
//     public Observable<PlayUrl> getPlayurl(String aid) {
//         return mRepositoryManager.obtainRetrofitService(VideoDetailService.class).getPlayurl(aid);
//     }
// }


// Path: app/src/main/java/com/lqr/biliblili/di/module/VideoDetailModule.java
import com.jess.arms.di.scope.ActivityScope;
import dagger.Module;
import dagger.Provides;
import com.lqr.biliblili.mvp.contract.VideoDetailContract;
import com.lqr.biliblili.mvp.model.VideoDetailModel;

package com.lqr.biliblili.di.module;





@Module
public class VideoDetailModule {
    private VideoDetailContract.View view;

    /**
     * 构建VideoDetailModule时,将View的实现类传进来,这样就可以提供View的实现类给presenter
     *
     * @param view
     */
    public VideoDetailModule(VideoDetailContract.View view) {
        this.view = view;
    }

    @ActivityScope
    @Provides
    VideoDetailContract.View provideVideoDetailView() {
        return this.view;
    }

    @ActivityScope
    @Provides
    VideoDetailContract.Model provideVideoDetailModel(VideoDetailModel model) {