// Path: app/src/main/java/com/me/silencedut/nbaplus/app/AppService.java
// public class AppService {
//     private static final AppService NBAPLUS_SERVICE=new AppService();
//     private static Gson sGson;
//     private static EventBus sBus ;
//     private static DBHelper sDBHelper;
//     private static NbaplusAPI sNbaplusApi;
//     private static NewsDetileAPI sNewsDetileApi;
//     private static ExecutorService sSingleThreadExecutor;
//     private Map<Integer,CompositeSubscription> mCompositeSubByTaskId;
//     private Handler mIoHandler;
// 
//     private AppService(){}
// 
//      void initService() {
//         sBus = EventBus.getDefault();
//         sGson=new Gson();
//         mCompositeSubByTaskId=new HashMap<Integer,CompositeSubscription>();
//         //sSingleThreadExecutor= Executors.newSingleThreadExecutor();
//         backGroundInit();
//     }
// 
//     private void backGroundInit() {
//         HandlerThread ioThread = new HandlerThread("IoThread");
//         ioThread.start();
//         mIoHandler= new Handler(ioThread.getLooper());
//         mIoHandler.post(new Runnable() {
//             @Override
//             public void run() {
//                 sNbaplusApi = NbaplusFactory.getNbaplusInstance();
//                 sNewsDetileApi = NbaplusFactory.getNewsDetileInstance();
//                 sDBHelper = DBHelper.getInstance(App.getContext());
//             }
//         });
// //  ThreadExecutor is not necessary currently
// 
// //        sSingleThreadExecutor.execute(new Runnable() {
// //            @Override
// //            public void run() {
// //                sNbaplus = NbaplusFactory.getNbaplus();
// //                sNewsDetileApi = NbaplusFactory.getNewsDetileInstance();
// //                sDBHelper = DBHelper.getInstance(App.getContext());
// //            }
// //        });
// 
//     }
// 
//     public void addCompositeSub(int taskId) {
//         CompositeSubscription compositeSubscription;
//         if(mCompositeSubByTaskId.get(taskId)==null) {
//             compositeSubscription = new CompositeSubscription();
//             mCompositeSubByTaskId.put(taskId, compositeSubscription);
//         }
//     }
// 
//     public void removeCompositeSub(int taskId) {
//         CompositeSubscription compositeSubscription;
//         if(mCompositeSubByTaskId!=null&& mCompositeSubByTaskId.get(taskId)!=null){
//             compositeSubscription= mCompositeSubByTaskId.get(taskId);
//             compositeSubscription.unsubscribe();
//             mCompositeSubByTaskId.remove(taskId);
//         }
//     }
// 
//     private CompositeSubscription getCompositeSubscription(int taskId) {
//         CompositeSubscription compositeSubscription ;
//         if(mCompositeSubByTaskId.get(taskId)==null) {
//             compositeSubscription = new CompositeSubscription();
//             mCompositeSubByTaskId.put(taskId, compositeSubscription);
//         }else {
//             compositeSubscription= mCompositeSubByTaskId.get(taskId);
//         }
//         return compositeSubscription;
//     }
// 
// 
//     public void initNews(int taskId,String type) {
//         getCompositeSubscription(taskId).add(RxNews.initNews(type));
//     }
// 
//     public void updateNews(int taskId,String type) {
//         getCompositeSubscription(taskId).add(RxNews.updateNews(type));
//     }
// 
//     public void loadMoreNews(int taskId,String type,String newsId) {
//         getCompositeSubscription(taskId).add(RxNews.loadMoreNews(type, newsId));
//     }
// 
//     public void getNewsDetail(int taskId,String date,String detailId) {
//         getCompositeSubscription(taskId).add(RxNews.getNewsDetail(date, detailId));
//     }
// 
//     public void initPerStat(int taskId,String  statKind) {
//         getCompositeSubscription(taskId).add(RxStats.initStat(statKind));
//     }
// 
//     public void getPerStat(int taskId,String ...statKinds) {
//         getCompositeSubscription(taskId).add(RxStats.getPerStat(statKinds));
//     }
// 
//     public void getTeamSort(int taskId) {
//         getCompositeSubscription(taskId).add(RxTeamSort.getTeams());
//     }
// 
//     public void getGames(int taskId,String date) {
//         getCompositeSubscription(taskId).add(RxGames.getTeams(date));
//     }
// 
// 
//     public static AppService getInstance() {
//         return NBAPLUS_SERVICE;
//     }
// 
//     public static EventBus getBus() {
//         return sBus;
//     }
// 
//     public static NbaplusAPI getNbaplus() {
//         return sNbaplusApi;
//     }
// 
//     public static NewsDetileAPI getNewsDetileApi() {
//         return sNewsDetileApi;
//     }
// 
//     public static DBHelper getDBHelper() {
//         return sDBHelper;
//     }
// 
//     public static Gson getGson() {
//         return sGson;
//     }
// 
//     public static ExecutorService getSingleThreadExecutor(){
//         return sSingleThreadExecutor;
//     }
// 
// }


import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.me.silencedut.nbaplus.app.AppService;
import butterknife.ButterKnife;
package com.me.silencedut.nbaplus.ui.fragment.base;




/**
 * Created by SilenceDut on 2015/11/28.
 */
public abstract class BaseFragment extends Fragment {

    private int mTaskId;
    protected View rootView;
    protected abstract void initViews() ;

    protected abstract int getContentViewId();

    protected int getTaskId (){
        return mTaskId;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTaskId=getActivity().getTaskId();
// Path: app/src/main/java/com/me/silencedut/nbaplus/app/AppService.java
// public class AppService {
//     private static final AppService NBAPLUS_SERVICE=new AppService();
//     private static Gson sGson;
//     private static EventBus sBus ;
//     private static DBHelper sDBHelper;
//     private static NbaplusAPI sNbaplusApi;
//     private static NewsDetileAPI sNewsDetileApi;
//     private static ExecutorService sSingleThreadExecutor;
//     private Map<Integer,CompositeSubscription> mCompositeSubByTaskId;
//     private Handler mIoHandler;
// 
//     private AppService(){}
// 
//      void initService() {
//         sBus = EventBus.getDefault();
//         sGson=new Gson();
//         mCompositeSubByTaskId=new HashMap<Integer,CompositeSubscription>();
//         //sSingleThreadExecutor= Executors.newSingleThreadExecutor();
//         backGroundInit();
//     }
// 
//     private void backGroundInit() {
//         HandlerThread ioThread = new HandlerThread("IoThread");
//         ioThread.start();
//         mIoHandler= new Handler(ioThread.getLooper());
//         mIoHandler.post(new Runnable() {
//             @Override
//             public void run() {
//                 sNbaplusApi = NbaplusFactory.getNbaplusInstance();
//                 sNewsDetileApi = NbaplusFactory.getNewsDetileInstance();
//                 sDBHelper = DBHelper.getInstance(App.getContext());
//             }
//         });
// //  ThreadExecutor is not necessary currently
// 
// //        sSingleThreadExecutor.execute(new Runnable() {
// //            @Override
// //            public void run() {
// //                sNbaplus = NbaplusFactory.getNbaplus();
// //                sNewsDetileApi = NbaplusFactory.getNewsDetileInstance();
// //                sDBHelper = DBHelper.getInstance(App.getContext());
// //            }
// //        });
// 
//     }
// 
//     public void addCompositeSub(int taskId) {
//         CompositeSubscription compositeSubscription;
//         if(mCompositeSubByTaskId.get(taskId)==null) {
//             compositeSubscription = new CompositeSubscription();
//             mCompositeSubByTaskId.put(taskId, compositeSubscription);
//         }
//     }
// 
//     public void removeCompositeSub(int taskId) {
//         CompositeSubscription compositeSubscription;
//         if(mCompositeSubByTaskId!=null&& mCompositeSubByTaskId.get(taskId)!=null){
//             compositeSubscription= mCompositeSubByTaskId.get(taskId);
//             compositeSubscription.unsubscribe();
//             mCompositeSubByTaskId.remove(taskId);
//         }
//     }
// 
//     private CompositeSubscription getCompositeSubscription(int taskId) {
//         CompositeSubscription compositeSubscription ;
//         if(mCompositeSubByTaskId.get(taskId)==null) {
//             compositeSubscription = new CompositeSubscription();
//             mCompositeSubByTaskId.put(taskId, compositeSubscription);
//         }else {
//             compositeSubscription= mCompositeSubByTaskId.get(taskId);
//         }
//         return compositeSubscription;
//     }
// 
// 
//     public void initNews(int taskId,String type) {
//         getCompositeSubscription(taskId).add(RxNews.initNews(type));
//     }
// 
//     public void updateNews(int taskId,String type) {
//         getCompositeSubscription(taskId).add(RxNews.updateNews(type));
//     }
// 
//     public void loadMoreNews(int taskId,String type,String newsId) {
//         getCompositeSubscription(taskId).add(RxNews.loadMoreNews(type, newsId));
//     }
// 
//     public void getNewsDetail(int taskId,String date,String detailId) {
//         getCompositeSubscription(taskId).add(RxNews.getNewsDetail(date, detailId));
//     }
// 
//     public void initPerStat(int taskId,String  statKind) {
//         getCompositeSubscription(taskId).add(RxStats.initStat(statKind));
//     }
// 
//     public void getPerStat(int taskId,String ...statKinds) {
//         getCompositeSubscription(taskId).add(RxStats.getPerStat(statKinds));
//     }
// 
//     public void getTeamSort(int taskId) {
//         getCompositeSubscription(taskId).add(RxTeamSort.getTeams());
//     }
// 
//     public void getGames(int taskId,String date) {
//         getCompositeSubscription(taskId).add(RxGames.getTeams(date));
//     }
// 
// 
//     public static AppService getInstance() {
//         return NBAPLUS_SERVICE;
//     }
// 
//     public static EventBus getBus() {
//         return sBus;
//     }
// 
//     public static NbaplusAPI getNbaplus() {
//         return sNbaplusApi;
//     }
// 
//     public static NewsDetileAPI getNewsDetileApi() {
//         return sNewsDetileApi;
//     }
// 
//     public static DBHelper getDBHelper() {
//         return sDBHelper;
//     }
// 
//     public static Gson getGson() {
//         return sGson;
//     }
// 
//     public static ExecutorService getSingleThreadExecutor(){
//         return sSingleThreadExecutor;
//     }
// 
// }


// Path: app/src/main/java/com/me/silencedut/nbaplus/ui/fragment/base/BaseFragment.java
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.me.silencedut.nbaplus.app.AppService;
import butterknife.ButterKnife;

package com.me.silencedut.nbaplus.ui.fragment.base;




/**
 * Created by SilenceDut on 2015/11/28.
 */
public abstract class BaseFragment extends Fragment {

    private int mTaskId;
    protected View rootView;
    protected abstract void initViews() ;

    protected abstract int getContentViewId();

    protected int getTaskId (){
        return mTaskId;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTaskId=getActivity().getTaskId();
        AppService.getInstance().getBus().register(this);