PlanAlarmDetailActivity.java 源代码


package activity.setting.PlanAlarm;

import activity.setting.PlanAlarm.adapter.PlanAlarmDetailAdapter;
import activity.setting.PlanVideo.adapter.PlanDetailAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewStub;
import android.view.ViewTreeObserver;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import base.HiActivity;
import bean.MyCamera;
import bean.TimeArrayBean;
import com.hichip.callback.ICameraIOSessionCallback;
import com.hichip.campro.R;
import com.hichip.content.HiChipDefines;
import com.hichip.control.HiCamera;
import com.xiaomi.mipush.sdk.Constants;
import common.HiDataValue;
import common.TitleView;
import custom.TimeDomainView;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import utils.TimeUtil;

public class PlanAlarmDetailActivity extends HiActivity implements View.OnClickListener, ICameraIOSessionCallback {
    ListView lv_period;
    private PlanAlarmDetailAdapter mAdapter;
    TimeArrayBean mBean;
    private MyCamera mMyCamera;
    TitleView mTitle;
    private HiChipDefines.HI_P2P_QUANTUM_TIME quantum_time;
    TextView tv_add_time;
    TimeDomainView view_td;
    private ArrayList<String> mAdapterData = new ArrayList<>();
    private SimpleDateFormat sdf = new SimpleDateFormat(TimeUtil.FORMAT_TIME);
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message message) {
            if (message.what == -1879048189 && message.arg2 == 0) {
                PlanAlarmDetailActivity.this.handIOCTRLSuccess(message);
            }
        }
    };

    @Override
    public void receiveSessionState(HiCamera hiCamera, int i) {
    }

    @Override
    protected int setLayoutId() {
        return R.layout.activity_plan_alarm_detail;
    }

    @Override
    protected void init(Bundle bundle) {
        getIntentData();
        initViewAndData();
        setOnListeners();
    }

    @Override
    public void onResume() {
        super.onResume();
        MyCamera myCamera = this.mMyCamera;
        if (myCamera != null) {
            myCamera.registerIOSessionListener(this);
        }
    }

    @Override
    public void onPause() {
        super.onPause();
        MyCamera myCamera = this.mMyCamera;
        if (myCamera != null) {
            myCamera.unregisterIOSessionListener(this);
        }
    }

    private void setOnListeners() {
        this.tv_add_time.setOnClickListener(this);
    }

    @Override
    public void onBackPressed() {
        Intent intent = new Intent();
        intent.putExtra("bean", this.mBean);
        setResult(-1, intent);
        finish();
    }

    private void initViewAndData() {
        String string;
        switch (this.mBean.title) {
            case 0:
                string = getString(R.string.sunday);
                break;
            case 1:
                string = getString(R.string.monday);
                break;
            case 2:
                string = getString(R.string.tuesday);
                break;
            case 3:
                string = getString(R.string.wednesday);
                break;
            case 4:
                string = getString(R.string.thursday);
                break;
            case 5:
                string = getString(R.string.friday);
                break;
            case 6:
                string = getString(R.string.saturday);
                break;
            default:
                string = " ";
                break;
        }
        this.mTitle.setTitle(string);
        this.mTitle.setButton(0);
        this.mTitle.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
            @Override
            public void OnNavigationButtonClick(int i) {
                if (i != 0) {
                    return;
                }
                Intent intent = new Intent();
                intent.putExtra("bean", PlanAlarmDetailActivity.this.mBean);
                PlanAlarmDetailActivity.this.setResult(-1, intent);
                PlanAlarmDetailActivity.this.finish();
            }
        });
        this.lv_period.addHeaderView(new ViewStub(this));
        if (this.mBean.mIsAllDay) {
            this.mBean.arrs.clear();
            this.mBean.arrs.add("00:00-23:59");
        }
        ArrayList<String> arrayList = this.mAdapterData;
        if (arrayList != null) {
            arrayList.clear();
            this.mAdapterData.addAll(this.mBean.arrs);
        }
        PlanAlarmDetailAdapter planAlarmDetailAdapter = new PlanAlarmDetailAdapter(this, this.mAdapterData);
        this.mAdapter = planAlarmDetailAdapter;
        this.lv_period.setAdapter((ListAdapter) planAlarmDetailAdapter);
        this.view_td.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                PlanAlarmDetailActivity.this.view_td.post(new Runnable() {
                    @Override
                    public void run() {
                        PlanAlarmDetailActivity.this.view_td.drawTimeDomain(PlanAlarmDetailActivity.this.mBean);
                    }
                });
            }
        });
        this.mAdapter.setOnDeleteListeners(new PlanDetailAdapter.OnDeleteListeners() {
            @Override
            public void onDelete(int i) {
                if (i <= PlanAlarmDetailActivity.this.mBean.getArrs().size()) {
                    if (PlanAlarmDetailActivity.this.mBean.getArrs().size() > 0) {
                        PlanAlarmDetailActivity.this.mBean.getArrs().remove(i);
                        PlanAlarmDetailActivity.this.mAdapterData.clear();
                        PlanAlarmDetailActivity.this.mAdapterData.addAll(PlanAlarmDetailActivity.this.mBean.getArrs());
                        PlanAlarmDetailActivity.this.mAdapter.notifyDataSetChanged();
                    }
                    if (PlanAlarmDetailActivity.this.mBean.mIsAllDay) {
                        PlanAlarmDetailActivity.this.mBean.mIsAllDay = false;
                    }
                    PlanAlarmDetailActivity.this.view_td.drawTimeDomain(PlanAlarmDetailActivity.this.mBean);
                    PlanAlarmDetailActivity planAlarmDetailActivity = PlanAlarmDetailActivity.this;
                    planAlarmDetailActivity.handApplication(planAlarmDetailActivity.mBean);
                }
            }
        });
    }

    public void handApplication(TimeArrayBean timeArrayBean) {
        if (this.quantum_time == null) {
            return;
        }
        int title = timeArrayBean.getTitle();
        for (int i = 0; i < 48; i++) {
            this.quantum_time.sDayData[title][i] = 78;
            if (timeArrayBean.mIsAllDay) {
                this.quantum_time.sDayData[title][i] = 80;
            } else if (timeArrayBean.getArrs() != null && timeArrayBean.getArrs().size() < 1 && !timeArrayBean.mIsAllDay) {
                this.quantum_time.sDayData[title][i] = 78;
            } else {
                Iterator<String> it = timeArrayBean.arrs.iterator();
                while (it.hasNext()) {
                    String[] split = it.next().split(Constants.ACCEPT_TIME_SEPARATOR_SERVER);
                    String str = split[0];
                    String str2 = split[1];
                    try {
                        int dateToMinute = dateToMinute(this.sdf.parse(str)) / 30;
                        int dateToMinute2 = (dateToMinute(this.sdf.parse(str2)) / 30) - 1;
                        if (str2.equals("23:59")) {
                            dateToMinute2 = 47;
                        }
                        if (i >= dateToMinute && i <= dateToMinute2) {
                            this.quantum_time.sDayData[title][i] = 80;
                        }
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        this.mMyCamera.sendIOCtrl(HiChipDefines.HI_P2P_SET_ALARM_SCHEDULE, this.quantum_time.parseContent());
    }

    private int dateToMinute(Date date) {
        return (date.getHours() * 60) + date.getMinutes();
    }

    private void getIntentData() {
        this.mBean = (TimeArrayBean) getIntent().getParcelableExtra("bean");
        String stringExtra = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
        if (!TextUtils.isEmpty(stringExtra)) {
            Iterator<MyCamera> it = HiDataValue.CameraList.iterator();
            while (true) {
                if (!it.hasNext()) {
                    break;
                }
                MyCamera next = it.next();
                if (stringExtra.equals(next.getUid())) {
                    this.mMyCamera = next;
                    break;
                }
            }
        }
        this.mMyCamera.sendIOCtrl(HiChipDefines.HI_P2P_GET_ALARM_SCHEDULE, new byte[0]);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() != R.id.tv_add_time) {
            return;
        }
        Intent intent = new Intent(this, (Class<?>) AddAlarmTimeDomainActivity.class);
        intent.putExtra(HiDataValue.EXTRAS_KEY_UID, this.mMyCamera.getUid());
        ArrayList<? extends Parcelable> arrayList = new ArrayList<>();
        arrayList.add(this.mBean);
        intent.putParcelableArrayListExtra("beans", arrayList);
        startActivityForResult(intent, 119, 1);
    }

    @Override
    public void onActivityResult(int i, int i2, Intent intent) {
        ArrayList parcelableArrayListExtra;
        super.onActivityResult(i, i2, intent);
        if (i2 != -1 || i != 119 || (parcelableArrayListExtra = intent.getParcelableArrayListExtra("beans")) == null || parcelableArrayListExtra.size() <= 0) {
            return;
        }
        this.mBean = (TimeArrayBean) parcelableArrayListExtra.get(0);
        this.mAdapterData.clear();
        this.mAdapterData.addAll(((TimeArrayBean) parcelableArrayListExtra.get(0)).arrs);
        this.mAdapter.notifyDataSetChanged();
    }

    @Override
    public void receiveIOCtrlData(HiCamera hiCamera, int i, byte[] bArr, int i2) {
        if (hiCamera != this.mMyCamera) {
            return;
        }
        Bundle bundle = new Bundle();
        bundle.putByteArray("data", bArr);
        Message obtain = Message.obtain();
        obtain.what = HiDataValue.HANDLE_MESSAGE_RECEIVE_IOCTRL;
        obtain.obj = hiCamera;
        obtain.arg1 = i;
        obtain.arg2 = i2;
        obtain.setData(bundle);
        this.mHandler.sendMessage(obtain);
    }

    public void handIOCTRLSuccess(Message message) {
        byte[] byteArray = message.getData().getByteArray("data");
        if (message.arg1 != 20745) {
            return;
        }
        this.quantum_time = new HiChipDefines.HI_P2P_QUANTUM_TIME(byteArray);
    }
}