package com.zzx.factorytest.manager;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import com.zzx.factorytest.AS60xFingerprintActivity;
import com.zzx.factorytest.BluetoochTestActivity;
import com.zzx.factorytest.CameraActivity;
import com.zzx.factorytest.FMTestActivity;
import com.zzx.factorytest.GPSTestActivity;
import com.zzx.factorytest.GravityActivity;
import com.zzx.factorytest.GyroscopeActivity;
import com.zzx.factorytest.HeadPhoneActivity;
import com.zzx.factorytest.IdentityCardActivity;
import com.zzx.factorytest.KeysActivity;
import com.zzx.factorytest.LCDActivity;
import com.zzx.factorytest.LightSensorActivity;
import com.zzx.factorytest.MICPhoneTestActivity;
import com.zzx.factorytest.MagneticFieldActivity;
import com.zzx.factorytest.MultiTouchActivity;
import com.zzx.factorytest.NfcTestActivity;
import com.zzx.factorytest.PowerActivity;
import com.zzx.factorytest.R;
import com.zzx.factorytest.RegTestActivity;
import com.zzx.factorytest.SIMActivity;
import com.zzx.factorytest.SdcardActivity;
import com.zzx.factorytest.SpeakerActivity;
import com.zzx.factorytest.TpCalActivity;
import com.zzx.factorytest.VibrateTestActivity;
import com.zzx.factorytest.WifiTestActivity;
import com.zzx.factorytest._3GActivity;
import com.zzx.factorytest.bean.PlatformBean;
import com.zzx.factorytest.bean.TestItem;
import com.zzx.factorytest.help.PlatformHelp;
import java.util.ArrayList;
import java.util.List;
public class FactoryTestManager {
private Context mContext;
private SharedPreferences mSharedPreferences;
// public static final String CONFIG_FILE_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + "factory.res";// 配置文件路径
public static final String CONFIG_PRE_STRING = "zzx.factory.";// 配置文件前缀
public static final String ITEM_MAGNET = "MagneticField";// 磁场
public static final String ITEM_CAMERA = "Camera";// 摄像机
public static final String ITEM_GPS = "GPS";// gps
public static final String ITEM_HEADPHONE = "Receiver";// 声筒
public static final String ITEM_MICROPHONE = "MIC";// 话筒
public static final String ITEM_SDCARD = "SD_Card";// sdcard
public static final String ITEM_SIM = "sim";// sim
public static final String ITEM_TOUCH_SCREEN = "Touch_Screen";// touch_screen
public static final String ITEM_VIBRATE = "Shock";// 振动
public static final String ITEM_BLUETOOTH = "Bluetooth";// 蓝牙
public static final String ITEM_WIFI = "Wifi";// wifi
public static final String ITEM_RADIO = "Radio";// radio
public static final String ITEM_BUTTON = "Key_Press";// 按键
public static final String ITEM_GRAVITY = "Gravity_Induction";// 重力感应
public static final String ITEM_3G = "3G_IMEI";// 3g
public static final String ITEM_LCD = "LCD";// lcd
public static final String ITEM_POWER = "Battery";// 电压电流
public static final String ITEM_SPEAKER = "Horn";// 喇叭电流
public static final String ITEM_TPCAL = "Touch_Screen_Calibration";// tpcal
public static final String ITEM_FINGERPRINT = "Fingerprint";// 指纹识别测试
private static final String ITEM_AS60X_IDENTITYCARD = "IdentityCard";
public static final String ITEM_NFC = "NFC";// NFC测试
public static final String ITEM_LIGHT_SENSOR = "Light_Distance_Sensor";//光线感应
public static final String TIEM_GYROSCOPE_SENSOR = "Gyroscope_Sensor"; //陀螺仪
public static final String ITEM_EMMCID = "EMMC_ID";// emmcid
public static final String IMEI_serial = "IMEI_serial";
public static final String MAC = "MAC";
public static final String MODEL = "BUILD_ID";
public static int currentTestMode;
public interface TestMode {
int MODE_AUTO_TEST = 1;// 自动测试
int MODE_SINGAL_TEST = 2;// 单项测试
int MODE_RESULT_TEST = 3;// 查看测试报表
}
public static List<TestItem> testList = new ArrayList<TestItem>();
// public static HashMap<String, String> mTestResultMap = new HashMap<String, String>();
static FactoryTestManager instance;
public static FactoryTestManager getInstance(Context context) {
if (instance == null) {
instance = new FactoryTestManager(context);
}
return instance;
}
public List<TestItem> getTestList() {
return testList;
}
private FactoryTestManager(Context context) {
mContext = context;
mSharedPreferences = context.getSharedPreferences("factoryTest", Context.MODE_PRIVATE);
initTestList();
// initTestResultMap();
}
// private void initTestResultMap() {
// mTestResultMap.put(ITEM_MAGNET, "");
// mTestResultMap.put(ITEM_CAMERA, "");
// mTestResultMap.put(ITEM_GPS, "");
// mTestResultMap.put(ITEM_HEADPHONE, "");
//
// mTestResultMap.put(ITEM_MICROPHONE, "");
// mTestResultMap.put(ITEM_SDCARD, "");
// mTestResultMap.put(ITEM_SIM, "");
// mTestResultMap.put(ITEM_TOUCH_SCREEN, "");
//
// mTestResultMap.put(ITEM_VIBRATE, "");
// mTestResultMap.put(ITEM_BLUETOOTH, "");
// mTestResultMap.put(ITEM_WIFI, "");
// mTestResultMap.put(ITEM_RADIO, "");
//
// mTestResultMap.put(ITEM_BUTTON, "");
// mTestResultMap.put(ITEM_GRAVITY, "");
// mTestResultMap.put(ITEM_3G, "");
// mTestResultMap.put(ITEM_LCD, "");
//
// mTestResultMap.put(ITEM_POWER, "");
// mTestResultMap.put(ITEM_SPEAKER, "");
// mTestResultMap.put(ITEM_TPCAL, "");
// mTestResultMap.put(ITEM_FINGERPRINT, "");
//
// mTestResultMap.put(ITEM_NFC, "");
// mTestResultMap.put(ITEM_LIGHT_SENSOR, "");
// mTestResultMap.put(IMEI_serial, "");
// mTestResultMap.put(MAC, "");
// mTestResultMap.put(TIEM_GYROSCOPE_SENSOR, "");
//
// mTestResultMap.put(MODEL, "");
// mTestResultMap.put(ITEM_EMMCID, "");
//
//
// }
public TestItem getActivityTestItem(Activity activity) {
for (int i = 0; i < testList.size(); i++) {
Class cls = testList.get(i).activityCls;
if (cls == activity.getClass()) {
return testList.get(i);
}
}
return null;
}
private void initTestList() {
PlatformBean bean = PlatformHelp.getPlatform(mContext);
if (bean.MagneticField) {
TestItem magnet = new TestItem(MagneticFieldActivity.class,
R.drawable.magnet, ITEM_MAGNET, "磁场测试", true);
add2List(magnet);
}
if (bean.TouchScreen) {
TestItem gravity = new TestItem(GravityActivity.class,
R.drawable.gravity, ITEM_GRAVITY, "重力感应", true);
add2List(gravity);
}
if (bean.Battery) {
TestItem power = new TestItem(PowerActivity.class, R.drawable.power,
ITEM_POWER, "电池测试", true);
add2List(power);
}
if (bean.Sdcard) {
TestItem sdcard = new TestItem(SdcardActivity.class,
R.drawable.sd_card, ITEM_SDCARD, "SD卡检测", true);
add2List(sdcard);
}
if (bean.Sim) {
TestItem sim = new TestItem(SIMActivity.class, R.drawable.sim_card,
ITEM_SIM, "SIM卡检测", true);
add2List(sim);
}
if (bean.Bluetooth) {
TestItem bluetooth = new TestItem(BluetoochTestActivity.class,
R.drawable.bluetooth, ITEM_BLUETOOTH, "蓝牙测试", true);
add2List(bluetooth);
}
if (bean.Wifi) {
TestItem wifi = new TestItem(WifiTestActivity.class, R.drawable.wifi,
ITEM_WIFI, "wifi测试", true);
add2List(wifi);
}
if (bean.Gps) {
TestItem gps = new TestItem(GPSTestActivity.class, R.drawable.gps,
ITEM_GPS, "GPS定位", true);
add2List(gps);
}
if (bean.Imei3G) {
TestItem _3g = new TestItem(_3GActivity.class, R.drawable._3g,
ITEM_3G, "3G/IMEI", true);
add2List(_3g);
}
if (bean.Mic) {
TestItem microphone = new TestItem(MICPhoneTestActivity.class,
R.drawable.microphone, ITEM_MICROPHONE, "MIC测试", true);
add2List(microphone);
}
if (bean.Camera) {
TestItem camera = new TestItem(CameraActivity.class, R.drawable.camera,
ITEM_CAMERA, "摄像头测试", false);
add2List(camera);
}
if (bean.VoiceTube) {
TestItem headphone = new TestItem(HeadPhoneActivity.class,
R.drawable.headphone, ITEM_HEADPHONE, "听筒测试", false);
add2List(headphone);
}
if (bean.Horn) {
TestItem speaker = new TestItem(SpeakerActivity.class,
R.drawable.music, ITEM_SPEAKER, "喇叭测试", false);
add2List(speaker);
}
if (bean.TouchScreen) {
TestItem touch_screen = new TestItem(MultiTouchActivity.class,
R.drawable.touch_screen, ITEM_TOUCH_SCREEN, "触摸屏", false);
add2List(touch_screen);
}
if (bean.Shock) {
TestItem vibrate = new TestItem(VibrateTestActivity.class,
R.drawable.vibrate, ITEM_VIBRATE, "振动测试", false);
add2List(vibrate);
}
if (bean.Radio) {
TestItem radio = new TestItem(FMTestActivity.class, R.drawable.radio,
ITEM_RADIO, "收音机测试", false);
add2List(radio);
}
if (bean.KeyPress) {
TestItem keys = new TestItem(KeysActivity.class, R.drawable.button,
ITEM_BUTTON, "按键测试", false);
add2List(keys);
}
if (bean.TouchScreen) {
TestItem lcd = new TestItem(LCDActivity.class, R.drawable.rgb,
ITEM_LCD, "LCD测试", false);
add2List(lcd);
}
if (bean.LightDistanceSensor) {
TestItem ls = new TestItem(LightSensorActivity.class, R.drawable.reg,
ITEM_LIGHT_SENSOR, "光线、距离传感器测试", false);
add2List(ls);
}
if (bean.TouchScreenCalibration) {
TestItem tpcal = new TestItem(TpCalActivity.class, R.drawable.reg,
ITEM_TPCAL, "触摸屏校准", false);
tpcal.enable = false;
add2List(tpcal);
}
if (bean.GyroscopeSensor) {
TestItem ga = new TestItem(GyroscopeActivity.class, R.drawable.reg,
TIEM_GYROSCOPE_SENSOR, "陀螺仪传感器", false);
ga.enable = false;
add2List(ga);
}
if (bean.DeviceRegister) {
TestItem regtest = new TestItem(RegTestActivity.class, R.drawable.reg,
ITEM_EMMCID, "设备注册", false);
regtest.enable = false;
add2List(regtest);
}
if (bean.Fingerprint) {
TestItem fp = new TestItem(AS60xFingerprintActivity.class, R.drawable.reg,
ITEM_FINGERPRINT, "指纹识别", false);
fp.enable = false;
add2List(fp);
}
if (bean.Nfc) {
TestItem nfc = new TestItem(NfcTestActivity.class, R.drawable.reg,
ITEM_NFC, "NFC测试", false);
nfc.enable = false;
add2List(nfc);
}
if (bean.IdentityCard) {
TestItem ic = new TestItem(IdentityCardActivity.class, R.drawable.reg,
ITEM_AS60X_IDENTITYCARD, "身份证识别", false);
ic.enable = false;
add2List(ic);
}
}
private void add2List(TestItem item) {
testList.add(item);
}
public void setResult(String item, boolean result) {
Editor edit = mSharedPreferences.edit();
edit.putString(item, result ? "1" : "0");
edit.apply();
}
public void putResult(String key, String value) {
mSharedPreferences.edit().putString(key, value).apply();
}
public Boolean getResult(String item) {
String result = mSharedPreferences.getString(item, null);
if ("1".equals(result)) {
return true;
} else if ("0".equals(result)) {
return false;
}
return null;
}
public void clearTestResult() {
mSharedPreferences.edit().clear().apply();
}
public Class getNextActivityClass(Class currentCls) {
if (currentCls == null && testList.size() > 0) {
return testList.get(0).activityCls;
}
for (int i = 0; i < testList.size(); i++) {
Class cls = testList.get(i).activityCls;
if (cls == currentCls) {
if (i == testList.size() - 1) {
return null;
} else {
TestItem testItem = testList.get(i + 1);
if (testItem.isEnable()) {
return testItem.activityCls;
} else {
currentCls = testItem.activityCls;
}
}
}
}
return null;
}
}