package cn.com.basic.face.fragment;
|
|
import android.content.Context;
|
import android.net.wifi.WifiManager;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.text.format.Formatter;
|
import android.view.SurfaceView;
|
import android.view.View;
|
import android.widget.RadioButton;
|
import android.widget.RadioGroup;
|
import android.widget.TextView;
|
|
import com.bsk.zhangbo.demoforbsk.R;
|
|
import cn.com.basic.face.base.BaseFragment;
|
|
import cn.com.basic.face.base.MainActivity;
|
import cn.com.basic.face.service.DeviceMng;
|
import cn.com.basic.face.util.RtspFaceNative;
|
|
import cn.com.basic.face.service.SurveillanceMng;
|
import cn.com.basic.face.widget.surveilance.SurveillanceBottomAttendanceListView;
|
import cn.com.basic.face.widget.surveilance.SurveillanceBottomVisitorListView;
|
|
import com.lidroid.xutils.view.annotation.ViewInject;
|
import com.lidroid.xutils.view.annotation.event.OnClick;
|
|
import java.text.SimpleDateFormat;
|
|
public class SurveillanceFragment extends BaseFragment {
|
|
@ViewInject(R.id.fragment_supervisory_bottom_left_radio_group)
|
private RadioGroup fragment_supervisory_bottom_left_radio_group;
|
@ViewInject(R.id.fragment_supervisory_bottom_visitor_radio_button)
|
private RadioButton fragment_supervisory_bottom_visitor_radio_button;
|
@ViewInject(R.id.fragment_supervisory_bottom_visitor_background)
|
private View fragment_supervisory_bottom_visitor_background;
|
@ViewInject(R.id.fragment_supervisory_bottom_attendance_background)
|
private View fragment_supervisory_bottom_attendance_background;
|
@ViewInject(R.id.fragment_supervisory_bottom_visit_list_view)
|
private SurveillanceBottomVisitorListView fragment_supervisory_bottom_visit_list_view;
|
@ViewInject(R.id.fragment_supervisory_bottom_attendance_list_view)
|
private SurveillanceBottomAttendanceListView fragment_supervisory_bottom_attendance_list_view;
|
@ViewInject(R.id.fragment_supervisory_enter_camera)
|
SurfaceView fragment_supervisory_enter_camera;
|
@ViewInject(R.id.fragment_supervisory_exit_camera)
|
SurfaceView fragment_supervisory_exit_camera;
|
@ViewInject(R.id.fragment_surveillance_enter_timer)
|
private TextView fragment_surveillance_enter_timer;
|
@ViewInject(R.id.fragment_surveillance_exit_timer)
|
private TextView fragment_surveillance_exit_timer;
|
|
static boolean useNative = false;
|
|
public static boolean isEmulator() {
|
return Build.FINGERPRINT.startsWith("generic")
|
|| Build.FINGERPRINT.startsWith("unknown")
|
|| Build.MODEL.contains("google_sdk")
|
|| Build.MODEL.contains("Emulator")
|
|| Build.MODEL.contains("Android SDK built for x86")
|
|| Build.MANUFACTURER.contains("Genymotion")
|
|| (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|
|| "google_sdk".equals(Build.PRODUCT);
|
}
|
|
static {
|
if (isEmulator()) {
|
useNative = false;
|
} else {
|
useNative = true;
|
}
|
if (useNative) {
|
System.loadLibrary("cvface_api");
|
System.loadLibrary("opencv_java3");
|
System.loadLibrary("protobuf-lite");
|
System.loadLibrary("protobuf");
|
System.loadLibrary("protoc");
|
System.loadLibrary("rtspface");
|
RtspFaceNative.init();
|
// RtspFaceNative.setLocalIP("192.168.1.10");
|
// RtspFaceNative.setLocalIP("192.168.1.106");//自己手机ip
|
// RtspFaceNative.setLocalIP("192.168.1.203");
|
// RtspFaceNative.setLocalIP("192.168.1.205");
|
WifiManager wm = (WifiManager) MainActivity.getInstance().getSystemService(Context.WIFI_SERVICE);
|
String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
|
RtspFaceNative.setLocalIP(ip);
|
}
|
}
|
|
private static SurveillanceFragment instance = new SurveillanceFragment();
|
|
public static SurveillanceFragment getInstance() {
|
return instance;
|
}
|
|
public SurveillanceBottomVisitorListView get_fragment_supervisory_bottom_visitor_list_view() {
|
return fragment_supervisory_bottom_visit_list_view;
|
}
|
|
public SurveillanceBottomAttendanceListView get_fragment_supervisory_bottom_attendance_list_view() {
|
return fragment_supervisory_bottom_attendance_list_view;
|
}
|
|
@Override
|
protected int getLayoutId() {
|
return R.layout.fragment_surveillance;
|
}
|
|
@Override
|
protected void initViews(View view, Bundle savedInstanceState) {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
if (useNative) {
|
MainActivity.getInstance().runOnUiThread(new Runnable() {
|
public void run() {
|
RtspFaceNative.setSurface(1, fragment_supervisory_enter_camera.getHolder().getSurface());
|
RtspFaceNative.setSurface(2, fragment_supervisory_exit_camera.getHolder().getSurface());
|
RtspFaceNative.createPlayer(1, DeviceMng.getInstance().getCamera1Address());
|
RtspFaceNative.createPlayer(2, DeviceMng.getInstance().getCamera2Address());
|
RtspFaceNative.setFaceCallback(1, "cn/com/basic/face/util/RtspFaceNative", "faceCallBack");
|
RtspFaceNative.setFaceCallback(2, "cn/com/basic/face/util/RtspFaceNative", "faceCallBack");
|
}
|
});
|
|
} else {
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
try {
|
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss分");
|
// while (true) {
|
// Thread.sleep(1000);
|
// MainActivity.getInstance().runOnUiThread(new Runnable() {
|
// @Override
|
// public void run() {
|
// fragment_surveillance_enter_timer.setText(sdf.format(new Date()));
|
// fragment_surveillance_exit_timer.setText(sdf.format(new Date()));
|
// }
|
// });
|
// }
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}).start();
|
reloadBottomList();
|
new SurveillanceMng.SurveillanceListThread().start();
|
}
|
|
@OnClick(R.id.fragment_supervisory_bottom_visitor_radio_button)
|
public void fragment_supervisory_bottom_visitor_radio_button_click(View view) {
|
fragment_supervisory_bottom_visitor_background.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_visit_list_view.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_attendance_background.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_attendance_list_view.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
reloadBottomList();
|
}
|
|
@OnClick(R.id.fragment_supervisory_bottom_attendance_radio_button)
|
public void fragment_supervisory_bottom_attendance_radio_button_click(View view) {
|
fragment_supervisory_bottom_visitor_background.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_visit_list_view.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_attendance_background.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
fragment_supervisory_bottom_attendance_list_view.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
reloadBottomList();
|
}
|
|
@Override
|
protected void initListeners() {
|
fragment_supervisory_bottom_left_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
// fragment_supervisory_bottom_visitor_background.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
// fragment_supervisory_bottom_visit_list_view.setVisibility(fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
// fragment_supervisory_bottom_attendance_background.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
// fragment_supervisory_bottom_attendance_list_view.setVisibility(!fragment_supervisory_bottom_visitor_radio_button.isChecked()?View.VISIBLE:View.GONE);
|
// reloadBottomList();
|
}
|
});
|
}
|
|
@Override
|
public void setMenuVisibility(boolean menuVisible) {
|
super.setMenuVisibility(menuVisible);
|
if (menuVisible && fragment_supervisory_bottom_visit_list_view != null) {
|
//reloadBottomList();
|
}
|
}
|
|
private void reloadBottomList() {
|
SurveillanceMng.getInstance().findSurveillanceBottomList(fragment_supervisory_bottom_visitor_radio_button.isChecked());
|
}
|
|
}
|