package com.xypower.mpmaster.sms;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import com.xypower.mpmaster.MpMasterService;

/**
 * 短信发送的监听广播
 * 从Android 4.4（API 19）开始，由于安全和隐私原因，不再允许应用程序静态注册监听短信发送状态的广播。
 *
 * @author jingjing
 */
public class SmsSendReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        int resultCode = getResultCode();
        // String resultData = getResultData();
        // Bundle resultExtras = getResultExtras(true);
        if (resultCode != Activity.RESULT_OK) {
            // Log.i("SMS", Integer.toString(resultCode));
        }

        if (SimUtil.SMS_SEND_ACTION.equals(action)) {
            int restartType = intent.getIntExtra(SimUtil.SMSRESTARTTYPE, -1);
            Thread th = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                    try {
                        processSms(context, restartType);
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }
            });

            th.start();
        }
    }

    public void processSms(Context context, int restartType) {
        if (restartType == 0) {
            MpMasterService.rebootDevice();
        } else if (restartType == 1) {
            UpdateSysConfigUtil.restartApp(context);
        } else if (restartType == 2) {
            UpdateSysConfigUtil.restartMasterApp(context);
        } else if (restartType == 3) {
            UpdateSysConfigUtil.restartApp(context);
            UpdateSysConfigUtil.restartMasterApp(context);
        }

//        if (type.contains(SmsTypeEnum.REBOOT1.value())) {
//            MpMasterService.rebootDevice();
//        } else if (type.contains(SmsTypeEnum.REBOOT2.value())) {
//            MpMasterService.rebootDevice();
//        } else if (type.contains(SmsTypeEnum.RESTART_MP.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.RESTART_MPMST.value())) {
//            UpdateSysConfigUtil.restartMasterApp(context);
//        } else if (type.contains(SmsTypeEnum.RESTART_BOTH_APPS.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//            UpdateSysConfigUtil.restartMasterApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_YW_SCHEDULE.value())) {
//            UpdateSysConfigUtil.restartMasterApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_OPERATE.value())) {
//            UpdateSysConfigUtil.restartMasterApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_OPERATE_URL.value())) {
//            UpdateSysConfigUtil.restartMasterApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_CMDID.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_IP.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_OSD.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_PHOTO_SCHEDULE_LIST.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_RESOLUTION.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_HEART.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_TP.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        } else if (type.contains(SmsTypeEnum.SET_PACKAGE.value())) {
//            UpdateSysConfigUtil.restartApp(context);
//        }
    }
}