From 8d434f2a76348a759486cb7a95042a211bcc81db Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期日, 23 七月 2017 14:51:18 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterUploadPhotoDialog.java                |  164 +++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterSelectPhotoListView.java  |   67 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterUploadPhotoDialog.java               |  164 +++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java                      |    6 
 VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_upload_photo_select.xml                        |   77 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterUploadPhotoListView.java |   67 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/SpaceItemDecoration.java                 |   23 +
 VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_select_photo_select.xml                         |   77 +++
 VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_select_photo_select.xml                        |   77 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterUploadPhotoListView.java  |   67 +++
 VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_upload_photo_select.xml                         |   77 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterSelectPhotoListView.java |   67 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java                       |    6 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterSelectPhotoDialog.java               |  164 +++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterSelectPhotoDialog.java                |  164 +++++++
 15 files changed, 1,263 insertions(+), 4 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterSelectPhotoDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterSelectPhotoDialog.java
new file mode 100644
index 0000000..04a23ac
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterSelectPhotoDialog.java
@@ -0,0 +1,164 @@
+package cn.com.basic.face.dialog;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
+import cn.com.basic.face.dialog.wheelview.widget.WheelView;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.OkClickedListener;
+import cn.com.basic.face.util.SurveillanceQueryItemUtil;
+import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
+import cn.com.basic.face.widget.surveilance.AttenderRegisterSelectPhotoListView;
+import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView;
+
+public class AttenderRegisterSelectPhotoDialog extends PopupWindow {
+    private final View parentView;
+
+    @ViewInject(R.id.dialog_surveillance_photo_select_list_view)
+    private AttenderRegisterSelectPhotoListView dialog_surveillance_photo_select_list_view;
+
+    public static long selectedId = -1;
+
+    public AttenderRegisterSelectPhotoDialog(View parentView, int type, OkClickedListener okButtonClickedListener, long selectedId) {
+        this.parentView = parentView;
+        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_attender_register_select_photo_select,null);
+        ViewUtils.inject(this, view);
+
+        if (BaseApplication.getInstance().networkAvailable()) {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        } else {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        }
+        setTitleAndList(type);
+        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
+        style.selectedTextColor = Color.parseColor("#11c3e3");
+        style.textColor = Color.parseColor("#bcc6cf");
+        style.selectedTextSize = 22;
+        style.textSize = 16;
+        style.holoBorderColor = Color.parseColor("#11c3e3");
+
+        view.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View view, MotionEvent motionEvent) {
+                View popLayout = view.findViewById(R.id.dialog_add_linear_layout);
+                int top = popLayout.getTop();
+                int bottom = popLayout.getBottom();
+                int left = popLayout.getLeft();
+                int right = popLayout.getRight();
+                int y = (int) motionEvent.getY();
+                int x = (int) motionEvent.getX();
+                if (motionEvent.getAction() == MotionEvent.ACTION_UP){
+                    if (y<top || y> bottom){
+                        dismiss();
+                    }
+                    if (x < left || x > right){
+                        dismiss();
+                    }
+
+                }
+                return true;
+            }
+        });
+
+        setOutsideTouchable(true);
+        this.setContentView(view);
+        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setFocusable(true);
+        //this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
+        this.setAnimationStyle(R.style.PopupSlideAnimation);
+        okButtonClickedListeners.add(okButtonClickedListener);
+        this.showAtLocation(parentView, Gravity.BOTTOM,0,330);
+    }
+
+
+    @OnClick(R.id.dialog_add_ok)
+    public void dialog_add_ok_click(View view) {
+        for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) {
+            // okButtonClickedListener.onSelected(dialog_add_content.getText().toString());
+        }
+        dismiss();
+    }
+
+    @OnClick(R.id.dialog_add_cancel)
+    public void dialog_add_cancel_click(View view) {
+        dismiss();
+    }
+
+    private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>();
+
+    public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) {
+        this.okButtonClickedListeners.add(okButtonClickedListener);
+    }
+
+    private void setTitleAndList(int type) {
+        String tile = "";
+        switch (type) {
+            case Constant.DialogSelectType.VISIT_REASON_ADD:
+                tile = "娣诲姞璁块棶浜嬬敱";
+                break;
+        }
+        // dialog_add_title.setText(tile);
+    }
+
+    public static void setVisitReasonList(List visitReasonList) {
+        AddDialog.visitReasonList = visitReasonList;
+    }
+
+
+    public static class WheelAdapter extends BaseWheelAdapter<String> {
+        private Context mContext;
+
+        public WheelAdapter(Context context) {
+            mContext = context;
+        }
+
+        @Override
+        protected View bindView(int position, View convertView, ViewGroup parent) {
+            AddDialog.WheelAdapter.ViewHolder viewHolder;
+            if (convertView == null) {
+                viewHolder = new AddDialog.WheelAdapter.ViewHolder();
+                convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
+                viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
+                convertView.setTag(viewHolder);
+            } else {
+                viewHolder = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag();
+            }
+            viewHolder.textView.setText(mList.get(position)+"");
+            return convertView;
+        }
+
+        static class ViewHolder {
+            TextView textView;
+        }
+
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterUploadPhotoDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterUploadPhotoDialog.java
new file mode 100644
index 0000000..655b6a2
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/AttenderRegisterUploadPhotoDialog.java
@@ -0,0 +1,164 @@
+package cn.com.basic.face.dialog;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
+import cn.com.basic.face.dialog.wheelview.widget.WheelView;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.OkClickedListener;
+import cn.com.basic.face.util.SurveillanceQueryItemUtil;
+import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
+import cn.com.basic.face.widget.surveilance.AttenderRegisterUploadPhotoListView;
+import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView;
+
+public class AttenderRegisterUploadPhotoDialog extends PopupWindow {
+    private final View parentView;
+
+    @ViewInject(R.id.dialog_surveillance_photo_select_list_view)
+    private AttenderRegisterUploadPhotoListView dialog_surveillance_photo_select_list_view;
+
+    public static long selectedId = -1;
+
+    public AttenderRegisterUploadPhotoDialog(View parentView, int type, OkClickedListener okButtonClickedListener, long selectedId) {
+        this.parentView = parentView;
+        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_attender_register_upload_photo_select,null);
+        ViewUtils.inject(this, view);
+
+        if (BaseApplication.getInstance().networkAvailable()) {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        } else {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        }
+        setTitleAndList(type);
+        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
+        style.selectedTextColor = Color.parseColor("#11c3e3");
+        style.textColor = Color.parseColor("#bcc6cf");
+        style.selectedTextSize = 22;
+        style.textSize = 16;
+        style.holoBorderColor = Color.parseColor("#11c3e3");
+
+        view.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View view, MotionEvent motionEvent) {
+                View popLayout = view.findViewById(R.id.dialog_add_linear_layout);
+                int top = popLayout.getTop();
+                int bottom = popLayout.getBottom();
+                int left = popLayout.getLeft();
+                int right = popLayout.getRight();
+                int y = (int) motionEvent.getY();
+                int x = (int) motionEvent.getX();
+                if (motionEvent.getAction() == MotionEvent.ACTION_UP){
+                    if (y<top || y> bottom){
+                        dismiss();
+                    }
+                    if (x < left || x > right){
+                        dismiss();
+                    }
+
+                }
+                return true;
+            }
+        });
+
+        setOutsideTouchable(true);
+        this.setContentView(view);
+        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setFocusable(true);
+        //this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
+        this.setAnimationStyle(R.style.PopupSlideAnimation);
+        okButtonClickedListeners.add(okButtonClickedListener);
+        this.showAtLocation(parentView, Gravity.BOTTOM,0,330);
+    }
+
+
+    @OnClick(R.id.dialog_add_ok)
+    public void dialog_add_ok_click(View view) {
+        for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) {
+            // okButtonClickedListener.onSelected(dialog_add_content.getText().toString());
+        }
+        dismiss();
+    }
+
+    @OnClick(R.id.dialog_add_cancel)
+    public void dialog_add_cancel_click(View view) {
+        dismiss();
+    }
+
+    private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>();
+
+    public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) {
+        this.okButtonClickedListeners.add(okButtonClickedListener);
+    }
+
+    private void setTitleAndList(int type) {
+        String tile = "";
+        switch (type) {
+            case Constant.DialogSelectType.VISIT_REASON_ADD:
+                tile = "娣诲姞璁块棶浜嬬敱";
+                break;
+        }
+        // dialog_add_title.setText(tile);
+    }
+
+    public static void setVisitReasonList(List visitReasonList) {
+        AddDialog.visitReasonList = visitReasonList;
+    }
+
+
+    public static class WheelAdapter extends BaseWheelAdapter<String> {
+        private Context mContext;
+
+        public WheelAdapter(Context context) {
+            mContext = context;
+        }
+
+        @Override
+        protected View bindView(int position, View convertView, ViewGroup parent) {
+            AddDialog.WheelAdapter.ViewHolder viewHolder;
+            if (convertView == null) {
+                viewHolder = new AddDialog.WheelAdapter.ViewHolder();
+                convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
+                viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
+                convertView.setTag(viewHolder);
+            } else {
+                viewHolder = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag();
+            }
+            viewHolder.textView.setText(mList.get(position)+"");
+            return convertView;
+        }
+
+        static class ViewHolder {
+            TextView textView;
+        }
+
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterSelectPhotoDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterSelectPhotoDialog.java
new file mode 100644
index 0000000..ce6cfcc
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterSelectPhotoDialog.java
@@ -0,0 +1,164 @@
+package cn.com.basic.face.dialog;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
+import cn.com.basic.face.dialog.wheelview.widget.WheelView;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.OkClickedListener;
+import cn.com.basic.face.util.SurveillanceQueryItemUtil;
+import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
+import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView;
+import cn.com.basic.face.widget.surveilance.VisitorRegisterSelectPhotoListView;
+
+public class VisitorRegisterSelectPhotoDialog extends PopupWindow {
+    private final View parentView;
+
+    @ViewInject(R.id.dialog_surveillance_photo_select_list_view)
+    private VisitorRegisterSelectPhotoListView dialog_surveillance_photo_select_list_view;
+
+    public static long selectedId = -1;
+
+    public VisitorRegisterSelectPhotoDialog(View parentView, int type, OkClickedListener okButtonClickedListener, long selectedId) {
+        this.parentView = parentView;
+        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_visitor_register_select_photo_select,null);
+        ViewUtils.inject(this, view);
+
+        if (BaseApplication.getInstance().networkAvailable()) {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        } else {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        }
+        setTitleAndList(type);
+        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
+        style.selectedTextColor = Color.parseColor("#11c3e3");
+        style.textColor = Color.parseColor("#bcc6cf");
+        style.selectedTextSize = 22;
+        style.textSize = 16;
+        style.holoBorderColor = Color.parseColor("#11c3e3");
+
+        view.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View view, MotionEvent motionEvent) {
+                View popLayout = view.findViewById(R.id.dialog_add_linear_layout);
+                int top = popLayout.getTop();
+                int bottom = popLayout.getBottom();
+                int left = popLayout.getLeft();
+                int right = popLayout.getRight();
+                int y = (int) motionEvent.getY();
+                int x = (int) motionEvent.getX();
+                if (motionEvent.getAction() == MotionEvent.ACTION_UP){
+                    if (y<top || y> bottom){
+                        dismiss();
+                    }
+                    if (x < left || x > right){
+                        dismiss();
+                    }
+
+                }
+                return true;
+            }
+        });
+
+        setOutsideTouchable(true);
+        this.setContentView(view);
+        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setFocusable(true);
+        //this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
+        this.setAnimationStyle(R.style.PopupSlideAnimation);
+        okButtonClickedListeners.add(okButtonClickedListener);
+        this.showAtLocation(parentView, Gravity.BOTTOM,0,330);
+    }
+
+
+    @OnClick(R.id.dialog_add_ok)
+    public void dialog_add_ok_click(View view) {
+        for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) {
+            // okButtonClickedListener.onSelected(dialog_add_content.getText().toString());
+        }
+        dismiss();
+    }
+
+    @OnClick(R.id.dialog_add_cancel)
+    public void dialog_add_cancel_click(View view) {
+        dismiss();
+    }
+
+    private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>();
+
+    public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) {
+        this.okButtonClickedListeners.add(okButtonClickedListener);
+    }
+
+    private void setTitleAndList(int type) {
+        String tile = "";
+        switch (type) {
+            case Constant.DialogSelectType.VISIT_REASON_ADD:
+                tile = "娣诲姞璁块棶浜嬬敱";
+                break;
+        }
+        // dialog_add_title.setText(tile);
+    }
+
+    public static void setVisitReasonList(List visitReasonList) {
+        AddDialog.visitReasonList = visitReasonList;
+    }
+
+
+    public static class WheelAdapter extends BaseWheelAdapter<String> {
+        private Context mContext;
+
+        public WheelAdapter(Context context) {
+            mContext = context;
+        }
+
+        @Override
+        protected View bindView(int position, View convertView, ViewGroup parent) {
+            AddDialog.WheelAdapter.ViewHolder viewHolder;
+            if (convertView == null) {
+                viewHolder = new AddDialog.WheelAdapter.ViewHolder();
+                convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
+                viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
+                convertView.setTag(viewHolder);
+            } else {
+                viewHolder = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag();
+            }
+            viewHolder.textView.setText(mList.get(position)+"");
+            return convertView;
+        }
+
+        static class ViewHolder {
+            TextView textView;
+        }
+
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterUploadPhotoDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterUploadPhotoDialog.java
new file mode 100644
index 0000000..c79064f
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/VisitorRegisterUploadPhotoDialog.java
@@ -0,0 +1,164 @@
+package cn.com.basic.face.dialog;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
+import cn.com.basic.face.dialog.wheelview.widget.WheelView;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.OkClickedListener;
+import cn.com.basic.face.util.SurveillanceQueryItemUtil;
+import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
+import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView;
+import cn.com.basic.face.widget.surveilance.VisitorRegisterUploadPhotoListView;
+
+public class VisitorRegisterUploadPhotoDialog extends PopupWindow {
+    private final View parentView;
+
+    @ViewInject(R.id.dialog_surveillance_photo_select_list_view)
+    private VisitorRegisterUploadPhotoListView dialog_surveillance_photo_select_list_view;
+
+    public static long selectedId = -1;
+
+    public VisitorRegisterUploadPhotoDialog(View parentView, int type, OkClickedListener okButtonClickedListener, long selectedId) {
+        this.parentView = parentView;
+        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_visitor_register_upload_photo_select,null);
+        ViewUtils.inject(this, view);
+
+        if (BaseApplication.getInstance().networkAvailable()) {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        } else {
+            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
+            } else {
+                dialog_surveillance_photo_select_list_view.show(UnknownSurveillanceQueryItemUtil.getInstance().getAllUnregisterAttenderTwoRowsForSelect(selectedId));
+            }
+        }
+        setTitleAndList(type);
+        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
+        style.selectedTextColor = Color.parseColor("#11c3e3");
+        style.textColor = Color.parseColor("#bcc6cf");
+        style.selectedTextSize = 22;
+        style.textSize = 16;
+        style.holoBorderColor = Color.parseColor("#11c3e3");
+
+        view.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View view, MotionEvent motionEvent) {
+                View popLayout = view.findViewById(R.id.dialog_add_linear_layout);
+                int top = popLayout.getTop();
+                int bottom = popLayout.getBottom();
+                int left = popLayout.getLeft();
+                int right = popLayout.getRight();
+                int y = (int) motionEvent.getY();
+                int x = (int) motionEvent.getX();
+                if (motionEvent.getAction() == MotionEvent.ACTION_UP){
+                    if (y<top || y> bottom){
+                        dismiss();
+                    }
+                    if (x < left || x > right){
+                        dismiss();
+                    }
+
+                }
+                return true;
+            }
+        });
+
+        setOutsideTouchable(true);
+        this.setContentView(view);
+        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
+        this.setFocusable(true);
+        //this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
+        this.setAnimationStyle(R.style.PopupSlideAnimation);
+        okButtonClickedListeners.add(okButtonClickedListener);
+        this.showAtLocation(parentView, Gravity.BOTTOM,0,330);
+    }
+
+
+    @OnClick(R.id.dialog_add_ok)
+    public void dialog_add_ok_click(View view) {
+        for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) {
+            // okButtonClickedListener.onSelected(dialog_add_content.getText().toString());
+        }
+        dismiss();
+    }
+
+    @OnClick(R.id.dialog_add_cancel)
+    public void dialog_add_cancel_click(View view) {
+        dismiss();
+    }
+
+    private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>();
+
+    public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) {
+        this.okButtonClickedListeners.add(okButtonClickedListener);
+    }
+
+    private void setTitleAndList(int type) {
+        String tile = "";
+        switch (type) {
+            case Constant.DialogSelectType.VISIT_REASON_ADD:
+                tile = "娣诲姞璁块棶浜嬬敱";
+                break;
+        }
+        // dialog_add_title.setText(tile);
+    }
+
+    public static void setVisitReasonList(List visitReasonList) {
+        AddDialog.visitReasonList = visitReasonList;
+    }
+
+
+    public static class WheelAdapter extends BaseWheelAdapter<String> {
+        private Context mContext;
+
+        public WheelAdapter(Context context) {
+            mContext = context;
+        }
+
+        @Override
+        protected View bindView(int position, View convertView, ViewGroup parent) {
+            AddDialog.WheelAdapter.ViewHolder viewHolder;
+            if (convertView == null) {
+                viewHolder = new AddDialog.WheelAdapter.ViewHolder();
+                convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
+                viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
+                convertView.setTag(viewHolder);
+            } else {
+                viewHolder = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag();
+            }
+            viewHolder.textView.setText(mList.get(position)+"");
+            return convertView;
+        }
+
+        static class ViewHolder {
+            TextView textView;
+        }
+
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
index a5c3962..f219467 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
@@ -24,6 +24,8 @@
 import cn.com.basic.face.adapter.SurveillanceFragment;
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.BaseFragment;
+import cn.com.basic.face.dialog.AttenderRegisterSelectPhotoDialog;
+import cn.com.basic.face.dialog.AttenderRegisterUploadPhotoDialog;
 import cn.com.basic.face.dialog.SurveillancePhotoDialog;
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.entity.Register;
@@ -396,7 +398,7 @@
     @OnClick(R.id.fragment_attender_register_surveillance_photo)
     public void fragment_attender_register_surveillance_photo_click(View view) {
         SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
-        new SurveillancePhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+        new AttenderRegisterSelectPhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
             public void onSelected(String value) {
             }
         }, selectedSurveillancePhotoId);
@@ -405,7 +407,7 @@
     @OnClick(R.id.fragment_attender_register_upload_custom_photo)
     public void fragment_attender_register_upload_custom_photo_click(View view) {
         SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
-        new SurveillancePhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+        new AttenderRegisterUploadPhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
             public void onSelected(String value) {
             }
         }, selectedCustomPhotoId);
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
index 3c9d7cb..1c34b58 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
@@ -23,6 +23,8 @@
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.BaseFragment;
 import cn.com.basic.face.dialog.SurveillancePhotoDialog;
+import cn.com.basic.face.dialog.VisitorRegisterSelectPhotoDialog;
+import cn.com.basic.face.dialog.VisitorRegisterUploadPhotoDialog;
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.entity.Register;
 import cn.com.basic.face.discern.query.item.CheckInQueryItem;
@@ -505,7 +507,7 @@
     @OnClick(R.id.fragment_visitor_register_surveillance_photo)
     public void fragment_visitor_register_surveillance_photo_click(View view) {
         SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
-        new SurveillancePhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+        new VisitorRegisterSelectPhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
             public void onSelected(String value) {
             }
         }, selectedSurveillancePhotoId);
@@ -514,7 +516,7 @@
     @OnClick(R.id.fragment_visitor_register_upload_custom_photo)
     public void fragment_visitor_register_upload_custom_photo_click(View view) {
         SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
-        new SurveillancePhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+        new VisitorRegisterUploadPhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
             public void onSelected(String value) {
             }
         }, selectedCustomPhotoId);
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterSelectPhotoListView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterSelectPhotoListView.java
new file mode 100644
index 0000000..355d355
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterSelectPhotoListView.java
@@ -0,0 +1,67 @@
+package cn.com.basic.face.widget.surveilance;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Parcelable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.util.WindowsUtil;
+
+public class AttenderRegisterSelectPhotoListView extends EasyRecyclerView {
+
+    public static Parcelable recyclerViewState;
+    public static SurveillanceFragment.SurveillancePhotoSelectListViewAdapter mAdapter;
+    public static List list = new ArrayList();
+
+    public void initLayout() {
+        addItemDecoration(new SpaceItemDecoration());
+        GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.getInstance(), 2);
+        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        setLayoutManager(gridLayoutManager);
+    }
+
+    public void setAdapter(Context context) {
+        mAdapter = new SurveillanceFragment.SurveillancePhotoSelectListViewAdapter(context);
+        mAdapter.setList(list);
+        setAdapter(mAdapter);
+        initLayout();
+    }
+
+    public AttenderRegisterSelectPhotoListView(Context context) {
+        super(context);
+        setAdapter(context);
+    }
+
+    public AttenderRegisterSelectPhotoListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setAdapter(context);
+    }
+
+    public AttenderRegisterSelectPhotoListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setAdapter(context);
+    }
+
+    public void show(List list) {
+        recyclerViewState = this.getLayoutManager().onSaveInstanceState();
+        mAdapter.setList(list);
+        this.setAdapter(mAdapter);
+        this.getLayoutManager().onRestoreInstanceState(recyclerViewState);
+    }
+
+    public List getPrevList() {
+        return this.list;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterUploadPhotoListView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterUploadPhotoListView.java
new file mode 100644
index 0000000..6f2a9b2
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/AttenderRegisterUploadPhotoListView.java
@@ -0,0 +1,67 @@
+package cn.com.basic.face.widget.surveilance;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Parcelable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.util.WindowsUtil;
+
+public class AttenderRegisterUploadPhotoListView extends EasyRecyclerView {
+
+    public static Parcelable recyclerViewState;
+    public static SurveillanceFragment.SurveillancePhotoSelectListViewAdapter mAdapter;
+    public static List list = new ArrayList();
+
+    public void initLayout() {
+        addItemDecoration(new SpaceItemDecoration());
+        GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.getInstance(), 2);
+        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        setLayoutManager(gridLayoutManager);
+    }
+
+    public void setAdapter(Context context) {
+        mAdapter = new SurveillanceFragment.SurveillancePhotoSelectListViewAdapter(context);
+        mAdapter.setList(list);
+        setAdapter(mAdapter);
+        initLayout();
+    }
+
+    public AttenderRegisterUploadPhotoListView(Context context) {
+        super(context);
+        setAdapter(context);
+    }
+
+    public AttenderRegisterUploadPhotoListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setAdapter(context);
+    }
+
+    public AttenderRegisterUploadPhotoListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setAdapter(context);
+    }
+
+    public void show(List list) {
+        recyclerViewState = this.getLayoutManager().onSaveInstanceState();
+        mAdapter.setList(list);
+        this.setAdapter(mAdapter);
+        this.getLayoutManager().onRestoreInstanceState(recyclerViewState);
+    }
+
+    public List getPrevList() {
+        return this.list;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/SpaceItemDecoration.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/SpaceItemDecoration.java
new file mode 100644
index 0000000..9e0d50c
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/SpaceItemDecoration.java
@@ -0,0 +1,23 @@
+package cn.com.basic.face.widget.surveilance;
+
+import android.graphics.Rect;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.util.WindowsUtil;
+
+public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
+    @Override
+    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.right = WindowsUtil.dip2px(MainActivity.getInstance(), 15);
+
+        if (parent.getChildLayoutPosition(view) == 0 || parent.getChildLayoutPosition(view) == 1) {
+            outRect.left = WindowsUtil.dip2px(MainActivity.getInstance(), 14);
+        }
+        if (parent.getChildLayoutPosition(view) % 2 == 0) {
+            outRect.bottom = WindowsUtil.dip2px(MainActivity.getInstance(), 7);
+        }
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterSelectPhotoListView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterSelectPhotoListView.java
new file mode 100644
index 0000000..bf19fa2
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterSelectPhotoListView.java
@@ -0,0 +1,67 @@
+package cn.com.basic.face.widget.surveilance;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Parcelable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.util.WindowsUtil;
+
+public class VisitorRegisterSelectPhotoListView extends EasyRecyclerView {
+
+    public static Parcelable recyclerViewState;
+    public static SurveillanceFragment.SurveillancePhotoSelectListViewAdapter mAdapter;
+    public static List list = new ArrayList();
+
+    public void initLayout() {
+        addItemDecoration(new SpaceItemDecoration());
+        GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.getInstance(), 2);
+        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        setLayoutManager(gridLayoutManager);
+    }
+
+    public void setAdapter(Context context) {
+        mAdapter = new SurveillanceFragment.SurveillancePhotoSelectListViewAdapter(context);
+        mAdapter.setList(list);
+        setAdapter(mAdapter);
+        initLayout();
+    }
+
+    public VisitorRegisterSelectPhotoListView(Context context) {
+        super(context);
+        setAdapter(context);
+    }
+
+    public VisitorRegisterSelectPhotoListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setAdapter(context);
+    }
+
+    public VisitorRegisterSelectPhotoListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setAdapter(context);
+    }
+
+    public void show(List list) {
+        recyclerViewState = this.getLayoutManager().onSaveInstanceState();
+        mAdapter.setList(list);
+        this.setAdapter(mAdapter);
+        this.getLayoutManager().onRestoreInstanceState(recyclerViewState);
+    }
+
+    public List getPrevList() {
+        return this.list;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterUploadPhotoListView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterUploadPhotoListView.java
new file mode 100644
index 0000000..eb16ca0
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/VisitorRegisterUploadPhotoListView.java
@@ -0,0 +1,67 @@
+package cn.com.basic.face.widget.surveilance;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Parcelable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.MainActivity;
+import cn.com.basic.face.util.WindowsUtil;
+
+public class VisitorRegisterUploadPhotoListView extends EasyRecyclerView {
+
+    public static Parcelable recyclerViewState;
+    public static SurveillanceFragment.SurveillancePhotoSelectListViewAdapter mAdapter;
+    public static List list = new ArrayList();
+
+    public void initLayout() {
+        addItemDecoration(new SpaceItemDecoration());
+        GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.getInstance(), 2);
+        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+        setLayoutManager(gridLayoutManager);
+    }
+
+    public void setAdapter(Context context) {
+        mAdapter = new SurveillanceFragment.SurveillancePhotoSelectListViewAdapter(context);
+        mAdapter.setList(list);
+        setAdapter(mAdapter);
+        initLayout();
+    }
+
+    public VisitorRegisterUploadPhotoListView(Context context) {
+        super(context);
+        setAdapter(context);
+    }
+
+    public VisitorRegisterUploadPhotoListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setAdapter(context);
+    }
+
+    public VisitorRegisterUploadPhotoListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        setAdapter(context);
+    }
+
+    public void show(List list) {
+        recyclerViewState = this.getLayoutManager().onSaveInstanceState();
+        mAdapter.setList(list);
+        this.setAdapter(mAdapter);
+        this.getLayoutManager().onRestoreInstanceState(recyclerViewState);
+    }
+
+    public List getPrevList() {
+        return this.list;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_select_photo_select.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_select_photo_select.xml
new file mode 100644
index 0000000..d709e15
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_select_photo_select.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    >
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible"
+        />
+    <LinearLayout
+        android:id="@+id/dialog_add_linear_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:background="@android:color/white"
+        android:orientation="vertical"
+        android:layout_weight="0"
+        >
+        <TextView
+            android:id="@+id/dialog_add_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/w20dp"
+            android:gravity="center"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/w20dp"
+            android:background="@color/colorPrimary"
+            android:visibility="gone"
+            />
+        <cn.com.basic.face.widget.surveilance.AttenderRegisterSelectPhotoListView
+            android:id="@+id/dialog_surveillance_photo_select_list_view"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/h300dp"
+            android:background="@android:color/white"
+            android:orientation="vertical"
+            android:layout_marginLeft="@dimen/w10dp"
+            android:layout_marginBottom="@dimen/h25dp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.5dp"
+            android:background="@color/colorText_b"
+            android:visibility="gone"
+            />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/h50dp"
+            android:orientation="horizontal"
+            android:visibility="gone"
+            >
+            <TextView
+                android:id="@+id/dialog_add_ok"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/confirm"
+                android:textSize="@dimen/w16dp"/>
+            <View
+                android:layout_width="0.5dp"
+                android:layout_height="match_parent"
+                android:background="@color/colorText_5"/>
+            <TextView
+                android:id="@+id/dialog_add_cancel"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textSize="@dimen/w16dp"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_upload_photo_select.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_upload_photo_select.xml
new file mode 100644
index 0000000..4110b05
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_attender_register_upload_photo_select.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    >
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible"
+        />
+    <LinearLayout
+        android:id="@+id/dialog_add_linear_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:background="@android:color/white"
+        android:orientation="vertical"
+        android:layout_weight="0"
+        >
+        <TextView
+            android:id="@+id/dialog_add_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/w20dp"
+            android:gravity="center"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/w20dp"
+            android:background="@color/colorPrimary"
+            android:visibility="gone"
+            />
+        <cn.com.basic.face.widget.surveilance.AttenderRegisterUploadPhotoListView
+            android:id="@+id/dialog_surveillance_photo_select_list_view"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/h300dp"
+            android:background="@android:color/white"
+            android:orientation="vertical"
+            android:layout_marginLeft="@dimen/w10dp"
+            android:layout_marginBottom="@dimen/h25dp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.5dp"
+            android:background="@color/colorText_b"
+            android:visibility="gone"
+            />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/h50dp"
+            android:orientation="horizontal"
+            android:visibility="gone"
+            >
+            <TextView
+                android:id="@+id/dialog_add_ok"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/confirm"
+                android:textSize="@dimen/w16dp"/>
+            <View
+                android:layout_width="0.5dp"
+                android:layout_height="match_parent"
+                android:background="@color/colorText_5"/>
+            <TextView
+                android:id="@+id/dialog_add_cancel"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textSize="@dimen/w16dp"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_select_photo_select.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_select_photo_select.xml
new file mode 100644
index 0000000..0ab275a
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_select_photo_select.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    >
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible"
+        />
+    <LinearLayout
+        android:id="@+id/dialog_add_linear_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:background="@android:color/white"
+        android:orientation="vertical"
+        android:layout_weight="0"
+        >
+        <TextView
+            android:id="@+id/dialog_add_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/w20dp"
+            android:gravity="center"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/w20dp"
+            android:background="@color/colorPrimary"
+            android:visibility="gone"
+            />
+        <cn.com.basic.face.widget.surveilance.VisitorRegisterSelectPhotoListView
+            android:id="@+id/dialog_surveillance_photo_select_list_view"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/h300dp"
+            android:background="@android:color/white"
+            android:orientation="vertical"
+            android:layout_marginLeft="@dimen/w10dp"
+            android:layout_marginBottom="@dimen/h25dp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.5dp"
+            android:background="@color/colorText_b"
+            android:visibility="gone"
+            />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/h50dp"
+            android:orientation="horizontal"
+            android:visibility="gone"
+            >
+            <TextView
+                android:id="@+id/dialog_add_ok"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/confirm"
+                android:textSize="@dimen/w16dp"/>
+            <View
+                android:layout_width="0.5dp"
+                android:layout_height="match_parent"
+                android:background="@color/colorText_5"/>
+            <TextView
+                android:id="@+id/dialog_add_cancel"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textSize="@dimen/w16dp"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_upload_photo_select.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_upload_photo_select.xml
new file mode 100644
index 0000000..06c7fd3
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/dialog_visitor_register_upload_photo_select.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    >
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible"
+        />
+    <LinearLayout
+        android:id="@+id/dialog_add_linear_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:background="@android:color/white"
+        android:orientation="vertical"
+        android:layout_weight="0"
+        >
+        <TextView
+            android:id="@+id/dialog_add_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/w20dp"
+            android:gravity="center"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/w20dp"
+            android:background="@color/colorPrimary"
+            android:visibility="gone"
+            />
+        <cn.com.basic.face.widget.surveilance.VisitorRegisterUploadPhotoListView
+            android:id="@+id/dialog_surveillance_photo_select_list_view"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/h300dp"
+            android:background="@android:color/white"
+            android:orientation="vertical"
+            android:layout_marginLeft="@dimen/w10dp"
+            android:layout_marginBottom="@dimen/h25dp"
+            />
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.5dp"
+            android:background="@color/colorText_b"
+            android:visibility="gone"
+            />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/h50dp"
+            android:orientation="horizontal"
+            android:visibility="gone"
+            >
+            <TextView
+                android:id="@+id/dialog_add_ok"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/confirm"
+                android:textSize="@dimen/w16dp"/>
+            <View
+                android:layout_width="0.5dp"
+                android:layout_height="match_parent"
+                android:background="@color/colorText_5"/>
+            <TextView
+                android:id="@+id/dialog_add_cancel"
+                android:layout_weight="1"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textSize="@dimen/w16dp"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file

--
Gitblit v1.8.0