package com.aiyou.iptv.utils;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import com.aiyou.AiYouApplication;
import com.aiyou.iptv.bean.Chanel;
import com.aiyou.utils.JsonHelper;
import com.aiyou.utils.SwitchManager;
import com.umeng.analytics.MobclickAgent;
public class IptvManager {
private static final String SPNAME = "iptv";
public static List<Chanel> mChanelList = new ArrayList<>();
private SharedPreferences mSharedPref;
private static IptvManager mInstance;
private IptvManager(Context context) {
mSharedPref = context.getSharedPreferences(SPNAME, Context.MODE_PRIVATE);
}
public static IptvManager getInstance(Context context) {
if (mInstance == null) {
synchronized (SwitchManager.class) {
if (mInstance == null) {
mInstance = new IptvManager(context);
}
}
}
return mInstance;
}
public void saveChanelFrequency(Chanel chanel) {
SharedPreferences.Editor editor = mSharedPref.edit();
editor.putLong(chanel.name, chanel.frequency);
editor.commit();
}
public long getChanelFrequency(Chanel chanel) {
return mSharedPref.getLong(chanel.name, 0);
}
public static List<Chanel> getChanelList() {
if (mChanelList == null) {
mChanelList = new ArrayList<>();
}
if (!mChanelList.isEmpty()) {
return mChanelList;
}
mChanelList.clear();
String[] str = new String[7];
for (int i = 0; i < str.length; i++) {
str[i] = MobclickAgent.getConfigParams(AiYouApplication.getInstance(), "chanel" + (i + 1));
}
String strJson = "";
for (String aStr : str) {
if (TextUtils.isEmpty(aStr)) {
return mChanelList;
}
strJson += aStr;
}
IptvManager mgr = IptvManager.getInstance(AiYouApplication.getInstance());
try {
JSONObject jsonObject = new JSONObject(strJson);
JSONArray array = JsonHelper.getJSONArray(jsonObject, "chanels");
if (null != array) {
int length = array.length();
Chanel chanel;
for (int i = 0; i < length; i++) {
chanel = new Chanel(array.opt(i).toString());
chanel.frequency = mgr.getChanelFrequency(chanel);
mChanelList.add(chanel);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return mChanelList;
}
}