using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using Android.App;
using Android.Content;
using Android.Icu.Text;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
using Com.ETouchSky;
using Com.Tool;
using HDL_ON.DAL.Server;
using HDL_ON_Android.FengLinVideo.Interface;
using Java.Util;
using Org.Json;
namespace HDL_ON_Android.FengLinVideo.Form
{
public class MonitorFragment : Fragment, View.IOnClickListener, VideoState
{
private View mView;
private VideoPhone mPhone;
// 截图
private LinearLayout screenshotLayout;
private ImageView screenImage;
private TextView ScreenText;
//开锁
private LinearLayout unlockLayout;
private ImageView unlockImag;
private TextView unlockText;
// 更新线程
public static Thread thread = null;
public MonitorFragment(VideoPhone phone)
{
this.mPhone = phone;
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
mView = inflater.Inflate(Resource.Layout.fragment_monitor, container, false);
IniView();
return mView;
}
private void IniView()
{
screenshotLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_sceenshotLayout);
screenImage = (ImageView)mView.FindViewById(Resource.Id.icon_sceenshotImg);
ScreenText = (TextView)mView.FindViewById(Resource.Id.icon_sceenshotText);
unlockLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_unlockLayout);
unlockImag = (ImageView)mView.FindViewById(Resource.Id.icon_unlockImg);
unlockText = (TextView)mView.FindViewById(Resource.Id.icon_unlockText);
unlockLayout.SetOnClickListener(this);
screenshotLayout.SetOnClickListener(this);
}
///
/// 开锁
///
private void Unlock()
{
if (mPhone != null)
{
try
{
unlockImag.Selected = true;
JSONObject ht = new JSONObject();
ht.Put("command", "open");//固定参数
ht.Put("room_id", VideoActivity.Roomno);
ht.Put("devType", 7);
mPhone.SendCustomData(ht.ToString());
}
catch { }
}
}
///
/// 更新开锁按钮状态
///
private void UpdataUnlockState()
{
try
{
//开锁成功,15秒内不给再点击按钮
unlockLayout.Enabled = false;
if (thread != null)
{
try
{
thread.Interrupt();
}
catch { }
thread = null;
}
thread = new Thread(() =>
{
try
{
Thread.Sleep(15 * 1000);
Activity.RunOnUiThread(() =>
{
if (unlockLayout != null)
unlockLayout.Enabled = true;
});
}
catch { }
});
thread.Start();
}
catch { }
}
public void OnClick(View v)
{
//
if (v.Equals(unlockLayout))
{
if (mPhone != null)
Unlock();
}
else if (v.Equals(screenshotLayout))
{
//有视频过来可调用此接口进行拍照
if (mPhone != null)
{
// 内部储存/DCIM/Camera/.....jpg
screenImage.Selected = true;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
string path = ss + "/" + time + ".jpg";
mPhone.Snap(path);
//2021-09-01 增加发送广播,通知刷新图库的显示
HDLONUtils.SendBroadcastScanFile(this.Context, path);
}
}
}
///
/// 通话状态回调方法
///
///
public void OnPhoneEvent(string msg)
{
try
{
//
TextProtocol tp = new TextProtocol();
tp.Parse(msg);
string event1 = tp.GetString("event");
switch (event1)
{
case "EVT_HangUp"://挂断
Activity.Finish();
break;
case "EVT_RECV_CUSTOM_DATA":
UpdataUnlockState();
break;
case "EVT_SnapAck":
int error = tp.GetInt("error");
string filePath = tp.GetString("filePath");
if (error == 0)
{
screenImage.Selected = true;
}
else
{
screenImage.Selected = false;
}
break;
}
}
catch { }
}
public override void OnDestroy()
{
base.OnDestroy();
if (thread != null)
{
try
{
thread.Interrupt();
}
catch { }
thread = null;
}
}
}
}