// Path: android/JBox/app/src/main/java/com/jiguang/jbox/AppApplication.java
// public class AppApplication extends Application {
//   private static Context mContext;
// 
//   public static boolean shouldUpdateData = false;
// 
//   public static String currentDevKey = "";
//   public static String currentChannelName = "";
// 
//   @Override public void onCreate() {
//     super.onCreate();
//     mContext = getApplicationContext();
//     JPushInterface.init(this);
//     ActiveAndroid.initialize(this);
//   }
// 
//   @Override public void onTerminate() {
//     super.onTerminate();
//     ActiveAndroid.dispose();
//   }
// 
//   public static Context getAppContext() {
//     return mContext;
//   }
// 
//   public static String getAppKey() {
//     PackageManager pm = mContext.getPackageManager();
//     ApplicationInfo appInfo;
//     try {
//       appInfo = pm.getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);
//     } catch (PackageManager.NameNotFoundException e) {
//       e.printStackTrace();
//       return "";
//     }
//     return appInfo.metaData.getString("JPUSH_APPKEY");
//   }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Channel.java
// @Table(name = "Channel")
// public class Channel extends Model {
// 
//     @Column(name = "DevKey")
//     public String devKey;
// 
//     @Column(name = "Name")
//     public String name;
// 
//     @Column(name = "UnreadCount")
//     public int unreadCount; // 未读消息数。
// 
//     @Column(name = "IsSubscribe")
//     public boolean isSubscribe;    // 默认为订阅。
// 
//     public Channel() {
//         super();
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (!(obj instanceof Channel)) {
//             return false;
//         }
//         Channel objChannel = (Channel) obj;
//         return objChannel.name.equals(name) && objChannel.isSubscribe == this.isSubscribe;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Developer.java
// @Table(name = "Developer")
// public class Developer extends Model {
// 
//     @Column(name = "Key", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
//     public String key;      // 用户验证通过后生成的 dev_key，作为唯一标识。
// 
//     @Column(name = "Name")
//     public String name;     // 在第三方平台下的 username。
// 
//     @Column(name = "Platform")
//     public String platform;    // 第三方登录平台。
// 
//     @Column(name = "Desc")
//     public String desc;        // 用户描述。
// 
//     @Column(name = "AvatarUrl")   // 头像 url。
//     public String avatarUrl;
// 
//     @Column(name = "IsSelected")
//     public boolean isSelected = false;  // 是否被选中。
// 
//     @Column(name = "UnreadCount")
//     public int unreadCount = 0;     // 未读消息数
// 
//     public Developer() {
//         super();
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (!(obj instanceof Developer)) {
//             return false;
//         }
// 
//         Developer objDev = (Developer) obj;
// 
//         if (!objDev.key.equals(key)) {
//             return false;
//         } else if (!objDev.name.equals(name)) {
//             return false;
//         } else if (!objDev.platform.equals(platform)) {
//             return false;
//         } else if (!objDev.desc.equals(desc)) {
//             return false;
//         } else if (!objDev.avatarUrl.equals(avatarUrl)) {
//             return false;
//         }
// 
//         return true;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/ChannelDataSource.java
// public interface ChannelDataSource {
// 
//     interface LoadChannelsCallback {
//         void onChannelsLoaded(List<Channel> channels);
// 
//         void onDataNotAvailable();
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/DeveloperDataSource.java
// public interface DeveloperDataSource {
// 
//     interface LoadDevCallback {
//         void onDevLoaded(Developer dev);
// 
//         void onDataNotAvailable();
//     }
// }


import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.text.TextUtils;
import android.util.Log;
import com.activeandroid.query.Select;
import com.jiguang.jbox.AppApplication;
import com.jiguang.jbox.R;
import com.jiguang.jbox.data.model.Channel;
import com.jiguang.jbox.data.model.Developer;
import com.jiguang.jbox.data.source.ChannelDataSource;
import com.jiguang.jbox.data.source.DeveloperDataSource;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Singleton;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import static android.content.ContentValues.TAG;
package com.jiguang.jbox.util;








@Singleton
public class HttpUtil {

    private static HttpUtil INSTANCE;

    private OkHttpClient mHttpClient;

    public static HttpUtil getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new HttpUtil();
        }
        return INSTANCE;
    }

    private HttpUtil() {
        mHttpClient = new OkHttpClient();
    }

    // 请求开发者数据。
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/AppApplication.java
// public class AppApplication extends Application {
//   private static Context mContext;
// 
//   public static boolean shouldUpdateData = false;
// 
//   public static String currentDevKey = "";
//   public static String currentChannelName = "";
// 
//   @Override public void onCreate() {
//     super.onCreate();
//     mContext = getApplicationContext();
//     JPushInterface.init(this);
//     ActiveAndroid.initialize(this);
//   }
// 
//   @Override public void onTerminate() {
//     super.onTerminate();
//     ActiveAndroid.dispose();
//   }
// 
//   public static Context getAppContext() {
//     return mContext;
//   }
// 
//   public static String getAppKey() {
//     PackageManager pm = mContext.getPackageManager();
//     ApplicationInfo appInfo;
//     try {
//       appInfo = pm.getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);
//     } catch (PackageManager.NameNotFoundException e) {
//       e.printStackTrace();
//       return "";
//     }
//     return appInfo.metaData.getString("JPUSH_APPKEY");
//   }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Channel.java
// @Table(name = "Channel")
// public class Channel extends Model {
// 
//     @Column(name = "DevKey")
//     public String devKey;
// 
//     @Column(name = "Name")
//     public String name;
// 
//     @Column(name = "UnreadCount")
//     public int unreadCount; // 未读消息数。
// 
//     @Column(name = "IsSubscribe")
//     public boolean isSubscribe;    // 默认为订阅。
// 
//     public Channel() {
//         super();
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (!(obj instanceof Channel)) {
//             return false;
//         }
//         Channel objChannel = (Channel) obj;
//         return objChannel.name.equals(name) && objChannel.isSubscribe == this.isSubscribe;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/model/Developer.java
// @Table(name = "Developer")
// public class Developer extends Model {
// 
//     @Column(name = "Key", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
//     public String key;      // 用户验证通过后生成的 dev_key，作为唯一标识。
// 
//     @Column(name = "Name")
//     public String name;     // 在第三方平台下的 username。
// 
//     @Column(name = "Platform")
//     public String platform;    // 第三方登录平台。
// 
//     @Column(name = "Desc")
//     public String desc;        // 用户描述。
// 
//     @Column(name = "AvatarUrl")   // 头像 url。
//     public String avatarUrl;
// 
//     @Column(name = "IsSelected")
//     public boolean isSelected = false;  // 是否被选中。
// 
//     @Column(name = "UnreadCount")
//     public int unreadCount = 0;     // 未读消息数
// 
//     public Developer() {
//         super();
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (!(obj instanceof Developer)) {
//             return false;
//         }
// 
//         Developer objDev = (Developer) obj;
// 
//         if (!objDev.key.equals(key)) {
//             return false;
//         } else if (!objDev.name.equals(name)) {
//             return false;
//         } else if (!objDev.platform.equals(platform)) {
//             return false;
//         } else if (!objDev.desc.equals(desc)) {
//             return false;
//         } else if (!objDev.avatarUrl.equals(avatarUrl)) {
//             return false;
//         }
// 
//         return true;
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/ChannelDataSource.java
// public interface ChannelDataSource {
// 
//     interface LoadChannelsCallback {
//         void onChannelsLoaded(List<Channel> channels);
// 
//         void onDataNotAvailable();
//     }
// }
// 
// Path: android/JBox/app/src/main/java/com/jiguang/jbox/data/source/DeveloperDataSource.java
// public interface DeveloperDataSource {
// 
//     interface LoadDevCallback {
//         void onDevLoaded(Developer dev);
// 
//         void onDataNotAvailable();
//     }
// }


// Path: android/JBox/app/src/main/java/com/jiguang/jbox/util/HttpUtil.java
import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.text.TextUtils;
import android.util.Log;
import com.activeandroid.query.Select;
import com.jiguang.jbox.AppApplication;
import com.jiguang.jbox.R;
import com.jiguang.jbox.data.model.Channel;
import com.jiguang.jbox.data.model.Developer;
import com.jiguang.jbox.data.source.ChannelDataSource;
import com.jiguang.jbox.data.source.DeveloperDataSource;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Singleton;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import static android.content.ContentValues.TAG;

package com.jiguang.jbox.util;








@Singleton
public class HttpUtil {

    private static HttpUtil INSTANCE;

    private OkHttpClient mHttpClient;

    public static HttpUtil getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new HttpUtil();
        }
        return INSTANCE;
    }

    private HttpUtil() {
        mHttpClient = new OkHttpClient();
    }

    // 请求开发者数据。
    public void requestDeveloper(final String devKey, final DeveloperDataSource.LoadDevCallback callback) {