// Path: app/src/main/java/com/topnews/android/utils/IOUtils.java
// public class IOUtils {
// 	/** 关闭流 */
// 	public static boolean close(Closeable io) {
// 		if (io != null) {
// 			try {
// 				io.close();
// 			} catch (IOException e) {
// 				LogUtils.e(e);
// 			}
// 		}
// 		return true;
// 	}
// }
// 
// Path: app/src/main/java/com/topnews/android/utils/UIUtils.java
// public class UIUtils {
// 
//     /**
//      * 获取上下文对象
//      * @return
//      */
//     public static Context getContext(){
// 
//         return BaseApplication.getmContext();
//     }
// 
//     /**
//      * 获取主线程id
//      * @return
//      */
//     public static int getMainThreadId(){
//         return BaseApplication.getMainThreadId();
//     }
// 
//     /**
//      * 获取handler实例
//      * @return
//      */
//     public static Handler getHandler(){
//         return BaseApplication.getmHandler();
//     }
// 
//     /**
//      * 判断当前是否运行在主线程
//      * @return
//      */
//     public static boolean isRunOnUiThread(){
//         return getMainThreadId()==android.os.Process.myTid();
//     }
// 
//     /**
//      * 确保当前的操作运行在UI主线程
//      * @param runnable
//      */
//     public static void runOnUiThread(Runnable runnable){
//         if(isRunOnUiThread()){
//             runOnUiThread(runnable);
//         }else{
//             getHandler().post(runnable);
//         }
//     }
// 
//     /**
//      * 获取字符串数组
//      * @param id
//      * @return
//      */
//     public static String[] getStringArray(int id){
//         return getContext().getResources().getStringArray(id);
//     }
// 
//     /**
//      * dp转px
//      * @param dp
//      * @return
//      */
//     public static int dip2px(int dp){
//         int mDensity=(int) getContext().getResources().getDisplayMetrics().density;
//         return dp*mDensity;
//     }
// 
//     /**
//      * px转dp
//      * @param px
//      * @return
//      */
//     public static float px2dip(int px){
//         float mDensity=getContext().getResources().getDisplayMetrics().density;
//         return px/mDensity;
//     }
// }


import com.topnews.android.utils.IOUtils;
import com.topnews.android.utils.UIUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

        try {
            OkHttpClient client=new OkHttpClient();
            Request request=new Request.Builder().url(url).build();
            Response response=client.newCall(request).execute();

            if (response!=null){
                String mData=response.body().string();
                if (!mData.isEmpty()){
                    //写入缓存
                    setCache(index,mData);
                    return mData;
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 向本地文件缓存写入数据
     *
     * 以url为文件名，以json为文件内容，保存在本地
     */
    public void setCache(int index,String result){

        //获取系统缓存目录
// Path: app/src/main/java/com/topnews/android/utils/IOUtils.java
// public class IOUtils {
// 	/** 关闭流 */
// 	public static boolean close(Closeable io) {
// 		if (io != null) {
// 			try {
// 				io.close();
// 			} catch (IOException e) {
// 				LogUtils.e(e);
// 			}
// 		}
// 		return true;
// 	}
// }
// 
// Path: app/src/main/java/com/topnews/android/utils/UIUtils.java
// public class UIUtils {
// 
//     /**
//      * 获取上下文对象
//      * @return
//      */
//     public static Context getContext(){
// 
//         return BaseApplication.getmContext();
//     }
// 
//     /**
//      * 获取主线程id
//      * @return
//      */
//     public static int getMainThreadId(){
//         return BaseApplication.getMainThreadId();
//     }
// 
//     /**
//      * 获取handler实例
//      * @return
//      */
//     public static Handler getHandler(){
//         return BaseApplication.getmHandler();
//     }
// 
//     /**
//      * 判断当前是否运行在主线程
//      * @return
//      */
//     public static boolean isRunOnUiThread(){
//         return getMainThreadId()==android.os.Process.myTid();
//     }
// 
//     /**
//      * 确保当前的操作运行在UI主线程
//      * @param runnable
//      */
//     public static void runOnUiThread(Runnable runnable){
//         if(isRunOnUiThread()){
//             runOnUiThread(runnable);
//         }else{
//             getHandler().post(runnable);
//         }
//     }
// 
//     /**
//      * 获取字符串数组
//      * @param id
//      * @return
//      */
//     public static String[] getStringArray(int id){
//         return getContext().getResources().getStringArray(id);
//     }
// 
//     /**
//      * dp转px
//      * @param dp
//      * @return
//      */
//     public static int dip2px(int dp){
//         int mDensity=(int) getContext().getResources().getDisplayMetrics().density;
//         return dp*mDensity;
//     }
// 
//     /**
//      * px转dp
//      * @param px
//      * @return
//      */
//     public static float px2dip(int px){
//         float mDensity=getContext().getResources().getDisplayMetrics().density;
//         return px/mDensity;
//     }
// }


// Path: app/src/main/java/com/topnews/android/protocol/BaseProtocol.java
import com.topnews.android.utils.IOUtils;
import com.topnews.android.utils.UIUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


        try {
            OkHttpClient client=new OkHttpClient();
            Request request=new Request.Builder().url(url).build();
            Response response=client.newCall(request).execute();

            if (response!=null){
                String mData=response.body().string();
                if (!mData.isEmpty()){
                    //写入缓存
                    setCache(index,mData);
                    return mData;
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 向本地文件缓存写入数据
     *
     * 以url为文件名，以json为文件内容，保存在本地
     */
    public void setCache(int index,String result){

        //获取系统缓存目录
        File cacheDir=UIUtils.getContext().getCacheDir();