ACS v3 - UI기능 추가사항 반영 1차 완료.
RFID, 지문,지정맥 2개등록 ttyACM0 BLE 모듈 시리얼 통신 기능 추가 시간 지정 개방기능 구현 사용자별 기간, 시간대 처리 구현
@ -21,8 +21,8 @@ android {
|
||||
applicationId "kr.co.enicom.acs"
|
||||
minSdkVersion 26
|
||||
targetSdkVersion 30
|
||||
versionCode 1
|
||||
versionName "2.0.3"
|
||||
versionCode 204
|
||||
versionName "2.0.4"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
ndk.abiFilters 'armeabi-v7a'
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
<activity android:name=".system.BaseSettingActivity" />
|
||||
<activity android:name=".system.DateTimeActivity" />
|
||||
<activity android:name=".system.DeviceSettingActivity" />
|
||||
<activity android:name=".system.DoorControlTimeActivity" />
|
||||
<activity android:name=".system.NetworkSettingActivity" />
|
||||
<activity android:name=".system.SystemSettingActivity" />
|
||||
<activity android:name=".system.LoginMenuActivity" />
|
||||
|
@ -31,6 +31,8 @@ import kr.co.enicom.acs.system.SystemUtil;
|
||||
import kr.co.rito.RitoUtil;
|
||||
import kr.co.rito.miscmanager.GpioManager;
|
||||
|
||||
import static kr.co.enicom.acs.GlobalInfo.DOOR_CONTROL_STATUS_CLOSE;
|
||||
import static kr.co.enicom.acs.GlobalInfo.DOOR_CONTROL_STATUS_OPEN_LOCK;
|
||||
import static kr.co.enicom.acs.GlobalInfo.VERIFY_METHOD_FACE;
|
||||
import static kr.co.enicom.acs.GlobalInfo.VERIFY_METHOD_FINGER_FACE;
|
||||
import static kr.co.enicom.acs.GlobalInfo.VERIFY_METHOD_FINGER_PRINT;
|
||||
@ -217,6 +219,7 @@ public class BaseService extends Service {
|
||||
class PeriodicChecker extends Thread {
|
||||
int mAliveCount = 0;
|
||||
boolean mIsAlive = false;
|
||||
int mPrevDoorControlOpenStatus = -1;
|
||||
|
||||
private long getUTC()
|
||||
{
|
||||
@ -301,6 +304,35 @@ public class BaseService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
if(MainActivity.INSTANCE != null) {
|
||||
if (GlobalInfo.mUseDoorControlTime == 1) {
|
||||
if (GlobalInfo.checkIsDoorControlOpenTime()) {
|
||||
if (GlobalInfo.mDoorControlTimeStatus != 1) {
|
||||
//mDoorManager.controlDoor(true, -1);
|
||||
mDoorManager.queueControlOrder(DOOR_CONTROL_STATUS_OPEN_LOCK);
|
||||
if (MainActivity.INSTANCE != null) {
|
||||
MainActivity.INSTANCE.turnToBaseUI();
|
||||
}
|
||||
}
|
||||
GlobalInfo.mDoorControlTimeStatus = 1;
|
||||
} else {
|
||||
if (GlobalInfo.mDoorControlTimeStatus != 0) {
|
||||
//mDoorManager.controlDoor(false, 0);
|
||||
mDoorManager.queueControlOrder(DOOR_CONTROL_STATUS_CLOSE);
|
||||
if (MainActivity.INSTANCE != null) {
|
||||
MainActivity.INSTANCE.turnToBaseUI();
|
||||
}
|
||||
}
|
||||
GlobalInfo.mDoorControlTimeStatus = 0;
|
||||
}
|
||||
} else {
|
||||
if (GlobalInfo.mDoorControlTimeStatus != -1) {
|
||||
GlobalInfo.mDoorControlTimeStatus = -1;
|
||||
mDoorManager.queueControlOrder(DOOR_CONTROL_STATUS_CLOSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isOnBlocking)
|
||||
continue;
|
||||
|
||||
|
@ -354,6 +354,28 @@ public class FingerManager implements DigentFPUsbDriver.DigentFPUsbCallBack {
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
idx = 0;
|
||||
int[] scoreList = new int[humans];
|
||||
for (UserInfo user : userList) {
|
||||
if (user.mFingerTemplate2.length() > 0 && user.mFingerTemplate2.length() == ServerManager.FINGER_CODE_LENGTH) {
|
||||
byte[] fingerFeature = hexToByteArray(user.mFingerTemplate2);
|
||||
System.arraycopy(fingerFeature, 0, compareList, idx * IzzixOEMAPI32Values.MAX_FEATUREVECT_LEN, IzzixOEMAPI32Values.MAX_FEATUREVECT_LEN);
|
||||
finger_users++;
|
||||
}
|
||||
scoreList[idx] = idx;
|
||||
idx++;
|
||||
}
|
||||
|
||||
byte[] feature = hexToByteArray(veinCode);
|
||||
int[] findIndex = new int[1];
|
||||
IzzixOEMAPI32ErrorCodes result = mIzzixOEMAPI32.matchFingerOneToN(feature, compareList, humans, IzzixOEMAPI32Values.LOWER_LEVEL, scoreList, findIndex, null);
|
||||
if (result.getErrorCode() >= IzzixOEMAPI32ErrorCodes.FPAPIERR_NO.getErrorCode()) {
|
||||
Log.w(TAG, "리턴 유저 : " + userList.get(findIndex[0]).mName);
|
||||
return userList.get(findIndex[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// for (UserInfo user : userList) {
|
||||
// if (user.mFingerTemplate.length() > 0 && user.mFingerTemplate.length() == ServerManager.FINGER_CODE_LENGTH) {
|
||||
@ -374,25 +396,6 @@ public class FingerManager implements DigentFPUsbDriver.DigentFPUsbCallBack {
|
||||
// //idx++;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// int maxScore = scoreList[0];
|
||||
// int maxIdx = 0;
|
||||
// for(int i = 1;i < humans;i++) {
|
||||
// if(scoreList[i] > maxScore) {
|
||||
// maxScore = scoreList[i];
|
||||
// maxIdx = i;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// Log.w(TAG, "최고 점수 : " + maxScore);
|
||||
// if(maxScore >= 90) {
|
||||
// return userList.get(maxIdx);
|
||||
// }
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@ import java.io.OutputStream;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@ -88,6 +89,10 @@ public class GlobalInfo {
|
||||
public static final int DEFAULT_AUTO_MASK_WEAR = 0;
|
||||
|
||||
public static final int DEFAULT_MANAGER_LOGIN_CAPTURE_SEND = 0;
|
||||
public static final int DEFAULT_USE_ATTENDANCE = 0;
|
||||
public static final int DEFAULT_USE_DOOR_CONTROL_TIME = 0;
|
||||
public static final int DEFAULT_DOOR_CONTROL_TIME_START = 9 * 60;
|
||||
public static final int DEFAULT_DOOR_CONTROL_TIME_END = 18 * 60;
|
||||
|
||||
public static final int VERIFY_COMBINATION_WITH_RFID = 0;
|
||||
public static final int VERIFY_COMBINATION_WITH_ID = 1;
|
||||
@ -157,6 +162,9 @@ public class GlobalInfo {
|
||||
public static int VEIN_MULTI_SCAN_COUNT_BASE = 7000;
|
||||
public static int mVerifyActivateMethod = (VERIFY_METHOD_VEIN | VERIFY_METHOD_RFID);
|
||||
|
||||
// public static int mRfidDualMode = 0; // RFID 2개 등록 모드
|
||||
// public static int mBioDualMode = 0; // 지문/지정맥 2개 등록 모드
|
||||
|
||||
public static String mDeviceId;
|
||||
public static String mDeviceName;
|
||||
public static String mSerialNumber = null;
|
||||
@ -241,6 +249,17 @@ public class GlobalInfo {
|
||||
public static boolean mIsReloadUserListFinished = false;
|
||||
public static boolean mIsCaseOpened = false; // 본체가 열렸는 지 여부
|
||||
|
||||
public static int mUseAttendance = 1; // 근태 관리 사용 여부
|
||||
public static final int ATTENDANCE_MODE_NONE = 0;
|
||||
public static final int ATTENDANCE_MODE_IN = 1;
|
||||
public static final int ATTENDANCE_MODE_OUT = 2;
|
||||
public static int mAttendanceMode = ATTENDANCE_MODE_NONE; // 근태 관리. 1 : 출근, 2 : 퇴근
|
||||
|
||||
public static int mUseDoorControlTime = 1; // 개방시간 사용 여부
|
||||
public static int mDoorControlTimeStatus = -1; // 개방시간 문 상태 보존. -1 : 미제어, 0 : 닫음, 1 : 열림
|
||||
public static int mDoorControlTimeStart = 7 * 60 + 41; // 개방시간 시작 시간(Minute) Default = 09:00
|
||||
public static int mDoorControlTimeEnd = 7 * 60 + 41; //18 * 60; // 개방시간 종료 시간(Minute) Default = 18:00
|
||||
|
||||
public static ArrayList<UserInfo> mUserList;
|
||||
private static Object mLock = new Object();
|
||||
|
||||
@ -325,7 +344,7 @@ public class GlobalInfo {
|
||||
}
|
||||
|
||||
private static void createLogTable(SQLiteDatabase database) {
|
||||
String sql = "create table logging(idx integer PRIMARY KEY AUTOINCREMENT, log_time text, log_id text, log_name text, oprno text, johapnum text, verify_method integer, rfid_code text)";
|
||||
String sql = "create table logging(idx integer PRIMARY KEY AUTOINCREMENT, log_time text, log_id text, log_name text, oprno text, johapnum text, verify_method integer, rfid_code text, attendance_code integer)";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
@ -335,6 +354,10 @@ public class GlobalInfo {
|
||||
columnAppend(database, "logging", "rfid_code", "text");
|
||||
}
|
||||
|
||||
if(!columnExists(database, "logging", "attendance_code")) {
|
||||
columnAppend(database, "logging", "attendance_code", "integer");
|
||||
}
|
||||
|
||||
sql = "create table adminlog(idx integer PRIMARY KEY AUTOINCREMENT, log_time text, log_id text, log_name text, verify_method integer, rfid_code text, verify_result integer, capture_file text)";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
@ -343,7 +366,7 @@ public class GlobalInfo {
|
||||
}
|
||||
|
||||
private static void createLogTempTable(SQLiteDatabase database) {
|
||||
String sql = "create table logtemp(idx integer PRIMARY KEY AUTOINCREMENT, id text, name text, oprno text, johapnum text, date text, time text, method integer, resultcode integer, rfid_code text)";
|
||||
String sql = "create table logtemp(idx integer PRIMARY KEY AUTOINCREMENT, id text, name text, oprno text, johapnum text, date text, time text, method integer, resultcode integer, rfid_code text, attendance_code integer)";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
@ -352,15 +375,20 @@ public class GlobalInfo {
|
||||
if(!columnExists(database, "logtemp", "rfid_code")) {
|
||||
columnAppend(database, "logtemp", "rfid_code", "text");
|
||||
}
|
||||
|
||||
if(!columnExists(database, "logtemp", "attendance_code")) {
|
||||
columnAppend(database, "logtemp", "attendance_code", "integer");
|
||||
}
|
||||
}
|
||||
|
||||
private static void createTable(SQLiteDatabase database) {
|
||||
String sql = "create table userinfo(idx integer PRIMARY KEY AUTOINCREMENT, id text, name text, authority integer, password text, rfidcode text, veincode text, " +
|
||||
"oprno text, johapnum text, user_reg_date text, rfid_reg_date text, vein_reg_date text, fingercode text, finger_reg_date text, facecode blob, face_reg_date text)";
|
||||
"oprno text, johapnum text, user_reg_date text, rfid_reg_date text, vein_reg_date text, fingercode text, finger_reg_date text, facecode blob, face_reg_date text, " +
|
||||
"rfidcode2 text, veincode2 text, fingercode2 text, permit_date text, permit_time text)";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
sql = String.format("insert into userinfo (id, name, authority, password, rfidcode, veincode, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date) values " +
|
||||
"('%s', '관리자', %d, '%s', '', '', '', '', '', '', '', '', '')",
|
||||
sql = String.format("insert into userinfo (id, name, authority, password, rfidcode, veincode, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time) values " +
|
||||
"('%s', '관리자', %d, '%s', '', '', '', '', '', '', '', '', '', '', '', '', '', '')",
|
||||
ADMIN_ID, AUTHORITY_TYPE_ADMIN, ADMIN_PASSWD);
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
@ -383,6 +411,22 @@ public class GlobalInfo {
|
||||
columnAppend(database, "userinfo", "face_reg_date", "text");
|
||||
}
|
||||
|
||||
if(!columnExists(database, "userinfo", "rfidcode2")) {
|
||||
columnAppend(database, "userinfo", "rfidcode2", "text");
|
||||
}
|
||||
if(!columnExists(database, "userinfo", "veincode2")) {
|
||||
columnAppend(database, "userinfo", "veincode2", "text");
|
||||
}
|
||||
if(!columnExists(database, "userinfo", "fingercode2")) {
|
||||
columnAppend(database, "userinfo", "fingercode2", "text");
|
||||
}
|
||||
|
||||
if(!columnExists(database, "userinfo", "permit_date")) {
|
||||
columnAppend(database, "userinfo", "permit_date", "text");
|
||||
}
|
||||
if(!columnExists(database, "userinfo", "permit_time")) {
|
||||
columnAppend(database, "userinfo", "permit_time", "text");
|
||||
}
|
||||
|
||||
sql = "create table serverinfo(idx integer, address text, port integer, address_slave text, port_slave integer," +
|
||||
"update_addr text, update_port integer, update_protocol integer)";
|
||||
@ -431,7 +475,8 @@ public class GlobalInfo {
|
||||
"state_period integer, volume integer, use_access_control integer, door_control_mode integer, door_control_time integer," +
|
||||
"socket_use_encrypt integer, dcu_device_type integer, use_dcu_watchdog integer, use_case_check integer, input_timeout integer, " +
|
||||
"auto_reboot_use integer, auto_reboot_period integer, auto_reboot_hour integer, dcu_watchdog_timeout integer, verify_log_auto_resend integer, verify_activate_method integer," +
|
||||
"auto_forgery integer, auto_mask_wear integer, manager_login_capture_send integer" +
|
||||
"auto_forgery integer, auto_mask_wear integer, manager_login_capture_send integer, use_attendance integer, " +
|
||||
"use_door_control_time integer, door_control_time_start integer, door_control_time_end integer" +
|
||||
")";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
@ -440,20 +485,23 @@ public class GlobalInfo {
|
||||
"state_period, volume, use_access_control, door_control_mode, door_control_time, " +
|
||||
"socket_use_encrypt, dcu_device_type, use_dcu_watchdog, use_case_check, input_timeout, " +
|
||||
"auto_reboot_use, auto_reboot_period, auto_reboot_hour, dcu_watchdog_timeout, verify_log_auto_resend, verify_activate_method, " +
|
||||
"auto_forgery, auto_mask_wear, manager_login_capture_send" +
|
||||
"auto_forgery, auto_mask_wear, manager_login_capture_send, use_attendance, " +
|
||||
"use_door_control_time, door_control_time_start, door_control_time_end" +
|
||||
") " +
|
||||
"values (0, '', '', 0, 0, %d, " +
|
||||
"%d, %d, %d, %d, %d, %d, " +
|
||||
"%d, %d, %d, %d, %d, " +
|
||||
"%d, %d, %d, %d, %d, " +
|
||||
"%d, %d, %d, %d, %d, %d, " +
|
||||
"%d, %d, %d, %d, " +
|
||||
"%d, %d, %d" +
|
||||
")",
|
||||
VERIFY_COMBINATION_OR, DEFAULT_VERIFY_PRINTUSERNAME, DEFAULT_VERIFY_POPUPTIME, DEFAULT_LOG_DELETESTATUS , 1, 1, 1,
|
||||
DEFAULT_SERVER_CHECK_TIME_DURATION, DEFAULT_DEVICE_VOLUME, DOOR_USE_ACCESS_CONTROL, DEFAULT_DOOR_CONTROL_MODE, DEFAULT_DOOR_OPEN_TIME,
|
||||
DEFAULT_SOCKET_USE_ENCRYPTION, DEFAULT_DCU_DEVICE_TYPE, DEFAULT_USE_DCU_WATCHDOG, DEFAULT_USE_CASE_CHECK, DEFAULT_INPUT_TIMEOUT_SECONDS,
|
||||
DEFAULT_AUTO_REBOOT_USE, DEFAULT_AUTO_REBOOT_PERIOD, DEFAULT_AUTO_REBOOT_HOUR, DEFAULT_DCU_WATCHDOG_TIME, DEFAULT_VERIFY_LOG_AUTO_RESEND, DEFAULT_VERIFY_ACTIVATE_METHOD,
|
||||
DEFAULT_AUTO_FORGERY, DEFAULT_AUTO_MASK_WEAR, DEFAULT_MANAGER_LOGIN_CAPTURE_SEND
|
||||
DEFAULT_AUTO_FORGERY, DEFAULT_AUTO_MASK_WEAR, DEFAULT_MANAGER_LOGIN_CAPTURE_SEND, DEFAULT_USE_ATTENDANCE,
|
||||
DEFAULT_USE_DOOR_CONTROL_TIME, DEFAULT_DOOR_CONTROL_TIME_START, DEFAULT_DOOR_CONTROL_TIME_END
|
||||
);
|
||||
|
||||
database.execSQL(sql);
|
||||
@ -514,6 +562,40 @@ public class GlobalInfo {
|
||||
}
|
||||
}
|
||||
|
||||
if(!columnExists(database, "settings", "use_attendance")) {
|
||||
columnAppend(database, "settings", "use_attendance", "integer");
|
||||
sql = String.format("update settings set use_attendance = %d where idx = 0", DEFAULT_USE_ATTENDANCE);
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
if(!columnExists(database, "settings", "use_door_control_time")) {
|
||||
columnAppend(database, "settings", "use_door_control_time", "integer");
|
||||
sql = String.format("update settings set use_door_control_time = %d where idx = 0", DEFAULT_USE_DOOR_CONTROL_TIME);
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if(!columnExists(database, "settings", "door_control_time_start")) {
|
||||
columnAppend(database, "settings", "door_control_time_start", "integer");
|
||||
sql = String.format("update settings set door_control_time_start = %d where idx = 0", DEFAULT_DOOR_CONTROL_TIME_START);
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if(!columnExists(database, "settings", "door_control_time_end")) {
|
||||
columnAppend(database, "settings", "door_control_time_end", "integer");
|
||||
sql = String.format("update settings set door_control_time_end = %d where idx = 0", DEFAULT_DOOR_CONTROL_TIME_END);
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
/*sql = "create table logging(idx integer PRIMARY KEY AUTOINCREMENT, log_time text, log_id text, log_name text, verify_method integer)";
|
||||
try {
|
||||
database.execSQL(sql);
|
||||
@ -620,8 +702,8 @@ public class GlobalInfo {
|
||||
// info.mID, info.mName, info.mAuthority, info.mPassword, info.mRFIDCode, info.mVeinTemplate, info.mOprno, info.mJohapnum, info.mUserRegistDateTime, info.mRfidRegistDateTime, info.mVeinRegistDateTime, info.mFingerTemplate, info.mFingerRegistDateTime);
|
||||
// _database.execSQL(sql);
|
||||
|
||||
String sql = String.format("insert into userinfo (id, name, authority, password, rfidcode, veincode, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date) " +
|
||||
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
String sql = String.format("insert into userinfo (id, name, authority, password, rfidcode, veincode, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time) " +
|
||||
"values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
|
||||
SQLiteStatement insertStmt;
|
||||
insertStmt = _database.compileStatement(sql);
|
||||
@ -642,6 +724,11 @@ public class GlobalInfo {
|
||||
insertStmt.bindString(idx++, info.mFingerRegistDateTime);
|
||||
insertStmt.bindBlob(idx++, info.mFaceTemplate);
|
||||
insertStmt.bindString(idx++, info.mFaceRegistDateTime);
|
||||
insertStmt.bindString(idx++, info.mRFIDCode2);
|
||||
insertStmt.bindString(idx++, info.mVeinTemplate2);
|
||||
insertStmt.bindString(idx++, info.mFingerTemplate2);
|
||||
insertStmt.bindString(idx++, info.mPermitDate);
|
||||
insertStmt.bindString(idx++, info.mPermitTime);
|
||||
insertStmt.execute();
|
||||
|
||||
mUserList.add(info);
|
||||
@ -682,7 +769,7 @@ public class GlobalInfo {
|
||||
// info.mID, info.mName, info.mAuthority, info.mPassword, info.mRFIDCode, info.mVeinTemplate, info.mFingerTemplate, info.mOprno, info.mJohapnum, info.mUserRegistDateTime, info.mRfidRegistDateTime, info.mVeinRegistDateTime, info.mFingerRegistDateTime, info.mIndex);
|
||||
// _database.execSQL(sql);
|
||||
|
||||
String sql = String.format("update userinfo set id = ?, name = ?, authority = ?, password = ?, rfidcode = ?, veincode = ?, fingercode = ?, facecode = ?, oprno = ?, johapnum = ?, user_reg_date = ?, rfid_reg_date = ?, vein_reg_date = ?, finger_reg_date = ?, face_reg_date = ? where idx = ?");
|
||||
String sql = String.format("update userinfo set id = ?, name = ?, authority = ?, password = ?, rfidcode = ?, veincode = ?, fingercode = ?, facecode = ?, oprno = ?, johapnum = ?, user_reg_date = ?, rfid_reg_date = ?, vein_reg_date = ?, finger_reg_date = ?, face_reg_date = ?, rfidcode2 = ?, veincode2 = ?, fingercode2 = ?, permit_date = ?, permit_time = ? where idx = ?");
|
||||
SQLiteStatement insertStmt;
|
||||
insertStmt = _database.compileStatement(sql);
|
||||
insertStmt.clearBindings();
|
||||
@ -702,6 +789,11 @@ public class GlobalInfo {
|
||||
insertStmt.bindString(idx++, info.mVeinRegistDateTime);
|
||||
insertStmt.bindString(idx++, info.mFingerRegistDateTime);
|
||||
insertStmt.bindString(idx++, info.mFaceRegistDateTime);
|
||||
insertStmt.bindString(idx++, info.mRFIDCode2);
|
||||
insertStmt.bindString(idx++, info.mVeinTemplate2);
|
||||
insertStmt.bindString(idx++, info.mFingerTemplate2);
|
||||
insertStmt.bindString(idx++, info.mPermitDate);
|
||||
insertStmt.bindString(idx++, info.mPermitTime);
|
||||
insertStmt.bindLong(idx++, info.mIndex);
|
||||
insertStmt.execute();
|
||||
|
||||
@ -789,7 +881,7 @@ public class GlobalInfo {
|
||||
if(database == null)
|
||||
return null;
|
||||
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date " +
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time " +
|
||||
"from userinfo where id = '" + id + "'";
|
||||
try {
|
||||
//Log.w("RITO", "ScanQuery : " + sql );
|
||||
@ -818,6 +910,13 @@ public class GlobalInfo {
|
||||
|
||||
_info.mFaceTemplate = cursor.getBlob(14);
|
||||
_info.mFaceRegistDateTime = cursor.getString(15);
|
||||
|
||||
_info.mRFIDCode2 = cursor.getString(16);
|
||||
_info.mVeinTemplate2 = cursor.getString(17);
|
||||
_info.mFingerTemplate2 = cursor.getString(18);
|
||||
|
||||
_info.mPermitDate = cursor.getString(19);
|
||||
_info.mPermitTime = cursor.getString(20);
|
||||
_info.makeSafe();
|
||||
database.close();
|
||||
return _info;
|
||||
@ -835,6 +934,14 @@ public class GlobalInfo {
|
||||
return (mVerifyActivateMethod & method) > 0;
|
||||
}
|
||||
|
||||
// public static boolean isRfidDualMode() {
|
||||
// return (mRfidDualMode > 0);
|
||||
// }
|
||||
//
|
||||
// public static boolean isBioDualMode() {
|
||||
// return (mBioDualMode > 0);
|
||||
// }
|
||||
|
||||
public static boolean isVerifyMethod(int method) {
|
||||
return (mVerifyMethod & method) > 0;
|
||||
}
|
||||
@ -846,7 +953,7 @@ public class GlobalInfo {
|
||||
return;
|
||||
|
||||
mUserList.clear();
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date from userinfo";
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time from userinfo";
|
||||
try {
|
||||
Cursor cursor = database.rawQuery(sql, null);
|
||||
if(cursor != null){
|
||||
@ -875,6 +982,14 @@ public class GlobalInfo {
|
||||
|
||||
_info.mFaceTemplate = cursor.getBlob(14);
|
||||
_info.mFaceRegistDateTime = cursor.getString(15);
|
||||
|
||||
_info.mRFIDCode2 = cursor.getString(16);
|
||||
_info.mVeinTemplate2 = cursor.getString(17);
|
||||
_info.mFingerTemplate2 = cursor.getString(18);
|
||||
|
||||
_info.mPermitDate = cursor.getString(19);
|
||||
_info.mPermitTime = cursor.getString(20);
|
||||
|
||||
_info.makeSafe();
|
||||
//Log.w(TAG, "User #"+i+" : " + _info.mName);
|
||||
mUserList.add(_info);
|
||||
@ -959,7 +1074,8 @@ public class GlobalInfo {
|
||||
|
||||
sql = "select device_id, device_name, verify_mode, verify_method, verify_combination, verify_printusername, verify_popuptime, log_delete_status, log_delete_term, log_delete_checkperiod, log_delete_checkperiod_cnt, " +
|
||||
"state_period, volume, use_access_control, door_control_mode, door_control_time, socket_use_encrypt, dcu_device_type, use_dcu_watchdog, use_case_check, input_timeout, auto_reboot_use, auto_reboot_period, auto_reboot_hour, " +
|
||||
"dcu_watchdog_timeout, verify_log_auto_resend, verify_activate_method, auto_forgery, auto_mask_wear, manager_login_capture_send " +
|
||||
"dcu_watchdog_timeout, verify_log_auto_resend, verify_activate_method, auto_forgery, auto_mask_wear, manager_login_capture_send, use_attendance, " +
|
||||
"use_door_control_time, door_control_time_start, door_control_time_end " +
|
||||
" from settings where idx = 0";
|
||||
try {
|
||||
Cursor cursor = database.rawQuery(sql, null);
|
||||
@ -999,6 +1115,11 @@ public class GlobalInfo {
|
||||
GlobalInfo.mAutoForgery = cursor.getInt(27);
|
||||
GlobalInfo.mAutoMaskWear = cursor.getInt(28);
|
||||
GlobalInfo.mManagerLoginCaptureSend = cursor.getInt(29);
|
||||
GlobalInfo.mUseAttendance = cursor.getInt(30);
|
||||
|
||||
GlobalInfo.mUseDoorControlTime = cursor.getInt(31);
|
||||
GlobalInfo.mDoorControlTimeStart = cursor.getInt(32);
|
||||
GlobalInfo.mDoorControlTimeEnd = cursor.getInt(33);
|
||||
|
||||
Log.w("RITO", "mAutoForgery : " + GlobalInfo.mAutoForgery);
|
||||
Log.w("RITO", "mAutoMaskWear : " + GlobalInfo.mAutoMaskWear);
|
||||
@ -1171,7 +1292,7 @@ public class GlobalInfo {
|
||||
{
|
||||
try {
|
||||
SQLiteDatabase _database;
|
||||
if (target.equals("log")) {
|
||||
if (target.equals("log") || target.equals("attendance")) {
|
||||
_database = getLogDatabase();
|
||||
} else {
|
||||
_database = getDatabase();
|
||||
@ -1268,6 +1389,30 @@ public class GlobalInfo {
|
||||
sql += " and";
|
||||
sql += String.format(" datetime(log_time, 'localtime') <= datetime('%s:59', 'localtime')", to);
|
||||
}
|
||||
sql += "and (attendance_code < 1 or attendance_code > 2 or attendance_code IS NULL)";
|
||||
} else {
|
||||
sql += " where (attendance_code < 1 or attendance_code > 2 or attendance_code IS NULL)";
|
||||
}
|
||||
|
||||
try {
|
||||
_database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
} else if (target.equals("attendance")) {
|
||||
sql = String.format("delete from logging");
|
||||
if (from.length() > 0 || to.length() > 0) {
|
||||
sql += " where";
|
||||
if (from.length() > 0) {
|
||||
sql += String.format(" datetime(log_time, 'localtime') >= datetime('%s:00', 'localtime')", from);
|
||||
}
|
||||
if (to.length() > 0) {
|
||||
if (from.length() > 0)
|
||||
sql += " and";
|
||||
sql += String.format(" datetime(log_time, 'localtime') <= datetime('%s:59', 'localtime')", to);
|
||||
}
|
||||
sql += "and (attendance_code >= 1 and attendance_code <= 2)";
|
||||
} else {
|
||||
sql += " where (attendance_code >= 1 and attendance_code <= 2)";
|
||||
}
|
||||
|
||||
try {
|
||||
@ -1455,7 +1600,7 @@ public class GlobalInfo {
|
||||
return null;
|
||||
|
||||
ArrayList<LogInfo> logList = new ArrayList<LogInfo>();
|
||||
String sql = "select log_time, log_id, log_name, oprno, johapnum, verify_method, rfid_code from logging";
|
||||
String sql = "select log_time, log_id, log_name, oprno, johapnum, verify_method, rfid_code, attendance_code from logging";
|
||||
if(from != null || to != null) {
|
||||
sql += " where";
|
||||
if(from != null) {
|
||||
@ -1488,6 +1633,7 @@ public class GlobalInfo {
|
||||
if(_info.mRfidCode == null) {
|
||||
_info.mRfidCode = "";
|
||||
}
|
||||
_info.mAttendanceCode = cursor.getInt(7);
|
||||
logList.add(_info);
|
||||
}
|
||||
}
|
||||
@ -1499,6 +1645,67 @@ public class GlobalInfo {
|
||||
return logList;
|
||||
}
|
||||
|
||||
|
||||
public static ArrayList<LogInfo> queryLogDataAttendance(String from, String to, boolean isAttendance) {
|
||||
SQLiteDatabase _database= getLogDatabase();
|
||||
if(_database == null)
|
||||
return null;
|
||||
|
||||
ArrayList<LogInfo> logList = new ArrayList<LogInfo>();
|
||||
String sql = "select log_time, log_id, log_name, oprno, johapnum, verify_method, rfid_code, attendance_code from logging";
|
||||
if(from != null || to != null) {
|
||||
sql += " where";
|
||||
if(from != null) {
|
||||
sql += String.format(" datetime(log_time, 'localtime') >= datetime('%s 00:00:01', 'localtime')", from);
|
||||
}
|
||||
if(to != null) {
|
||||
if(from != null)
|
||||
sql += " and";
|
||||
sql += String.format(" datetime(log_time, 'localtime') <= datetime('%s 23:59:59', 'localtime')", to);
|
||||
}
|
||||
if(isAttendance) {
|
||||
sql += String.format(" and attendance_code >= 1 and attendance_code <= 2");
|
||||
} else {
|
||||
sql += String.format(" and (attendance_code < 1 or attendance_code > 2 or attendance_code IS NULL)");
|
||||
}
|
||||
}
|
||||
try {
|
||||
Cursor cursor = _database.rawQuery(sql, null);
|
||||
if(cursor != null){
|
||||
int count = cursor.getCount();
|
||||
Log.d(TAG, "Log Count : " + count);
|
||||
|
||||
for(int i = 0; i< count ; i++){
|
||||
cursor.moveToNext();
|
||||
LogInfo _info = new LogInfo();
|
||||
String _datetime = cursor.getString(0);
|
||||
_info.mDate = _datetime.substring(0, 10);
|
||||
_info.mTime = _datetime.substring(11);
|
||||
_info.mId = cursor.getString(1);
|
||||
_info.mName = cursor.getString(2);
|
||||
_info.mOprno = cursor.getString(3);
|
||||
_info.mJohapnum = cursor.getString(4);
|
||||
_info.mMethod = cursor.getInt(5);
|
||||
_info.mRfidCode = cursor.getString(6);
|
||||
if(_info.mRfidCode == null) {
|
||||
_info.mRfidCode = "";
|
||||
}
|
||||
_info.mAttendanceCode = cursor.getInt(7);
|
||||
logList.add(_info);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
_database.close();
|
||||
return logList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static ArrayList<UserInfo> queryUserDataDateTime(String from, String to) {
|
||||
SQLiteDatabase _database= getDatabase();
|
||||
if(_database == null)
|
||||
@ -1508,7 +1715,7 @@ public class GlobalInfo {
|
||||
to = SystemUtil.convertDateTime14ToDateTime19(to);
|
||||
|
||||
ArrayList<UserInfo> userList = new ArrayList<UserInfo>();
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date from userinfo";
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time from userinfo";
|
||||
if(from != null || to != null) {
|
||||
sql += " where";
|
||||
if(from != null) {
|
||||
@ -1550,6 +1757,14 @@ public class GlobalInfo {
|
||||
|
||||
_info.mFaceTemplate = cursor.getBlob(14);
|
||||
_info.mFaceRegistDateTime = cursor.getString(15);
|
||||
|
||||
_info.mRFIDCode2 = cursor.getString(16);
|
||||
_info.mVeinTemplate2 = cursor.getString(17);
|
||||
_info.mFingerTemplate2 = cursor.getString(18);
|
||||
|
||||
_info.mPermitDate = cursor.getString(19);
|
||||
_info.mPermitTime = cursor.getString(20);
|
||||
|
||||
_info.makeSafe();
|
||||
userList.add(_info);
|
||||
}
|
||||
@ -1568,7 +1783,7 @@ public class GlobalInfo {
|
||||
return null;
|
||||
|
||||
ArrayList<UserInfo> userList = new ArrayList<UserInfo>();
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date from userinfo";
|
||||
String sql = "select id, name, authority, password, rfidcode, veincode, idx, oprno, johapnum, user_reg_date, rfid_reg_date, vein_reg_date, fingercode, finger_reg_date, facecode, face_reg_date, rfidcode2, veincode2, fingercode2, permit_date, permit_time from userinfo";
|
||||
if(from != null || to != null) {
|
||||
sql += " where";
|
||||
if(from != null) {
|
||||
@ -1609,6 +1824,14 @@ public class GlobalInfo {
|
||||
|
||||
_info.mFaceTemplate = cursor.getBlob(14);
|
||||
_info.mFaceRegistDateTime = cursor.getString(15);
|
||||
|
||||
_info.mRFIDCode2 = cursor.getString(16);
|
||||
_info.mVeinTemplate2 = cursor.getString(17);
|
||||
_info.mFingerTemplate2 = cursor.getString(18);
|
||||
|
||||
_info.mPermitDate = cursor.getString(19);
|
||||
_info.mPermitTime = cursor.getString(20);
|
||||
|
||||
_info.makeSafe();
|
||||
userList.add(_info);
|
||||
}
|
||||
@ -1728,7 +1951,8 @@ public class GlobalInfo {
|
||||
"use_access_control = %d, door_control_mode = %d, door_control_time = %d, " +
|
||||
"socket_use_encrypt = %d, dcu_device_type = %d, use_dcu_watchdog = %d, use_case_check = %d, input_timeout = %d, " +
|
||||
"auto_reboot_use = %d, auto_reboot_period = %d, auto_reboot_hour = %d, dcu_watchdog_timeout = %d, verify_log_auto_resend = %d, verify_activate_method = %d, " +
|
||||
"auto_forgery = %d, auto_mask_wear = %d, manager_login_capture_send = %d " +
|
||||
"auto_forgery = %d, auto_mask_wear = %d, manager_login_capture_send = %d, use_attendance = %d, " +
|
||||
"use_door_control_time = %d, door_control_time_start = %d, door_control_time_end = %d " +
|
||||
" where idx = 0",
|
||||
GlobalInfo.mDeviceId, GlobalInfo.mDeviceName, GlobalInfo.mVerifyMode, GlobalInfo.mVerifyMethod, GlobalInfo.mVerifyCombination,
|
||||
GlobalInfo.mVerifyPrintUserName, GlobalInfo.mVerifyPopupTime, GlobalInfo.mLogDeleteStatus, GlobalInfo.mLogDeleteTerm, GlobalInfo.mLogDeleteCheckPeriod, GlobalInfo.mLogDeleteCheckPeriodCnt,
|
||||
@ -1736,7 +1960,8 @@ public class GlobalInfo {
|
||||
GlobalInfo.mUseAccessControl, GlobalInfo.mDoorControlMode, GlobalInfo.mDoorControlTime,
|
||||
GlobalInfo.mUseSocketEncrypt, GlobalInfo.mDcuDeviceType, GlobalInfo.mUseDCUWatchdog, GlobalInfo.mUseCaseCheck, GlobalInfo.mInputTimeout,
|
||||
GlobalInfo.mAutoRebootUse, GlobalInfo.mAutoRebootPeriod, GlobalInfo.mAutoRebootHour, GlobalInfo.mDCUWatchdogTime, GlobalInfo.mVerifyLogAutoResend, GlobalInfo.mVerifyActivateMethod,
|
||||
GlobalInfo.mAutoForgery, GlobalInfo.mAutoMaskWear, GlobalInfo.mManagerLoginCaptureSend
|
||||
GlobalInfo.mAutoForgery, GlobalInfo.mAutoMaskWear, GlobalInfo.mManagerLoginCaptureSend, GlobalInfo.mUseAttendance,
|
||||
GlobalInfo.mUseDoorControlTime, GlobalInfo.mDoorControlTimeStart, GlobalInfo.mDoorControlTimeEnd
|
||||
);
|
||||
|
||||
try {
|
||||
@ -1885,8 +2110,8 @@ public class GlobalInfo {
|
||||
return;
|
||||
|
||||
try {
|
||||
String sql = String.format("insert into logging (log_time, log_id, log_name, oprno, johapnum, verify_method, rfid_code) values (datetime('now', 'localtime'), '%s', '%s', '%s', '%s', %d, '%s')",
|
||||
logInfo.mId, logInfo.mName, logInfo.mOprno, logInfo.mJohapnum, logInfo.mMethod, logInfo.mRfidCode);
|
||||
String sql = String.format("insert into logging (log_time, log_id, log_name, oprno, johapnum, verify_method, rfid_code, attendance_code) values (datetime('now', 'localtime'), '%s', '%s', '%s', '%s', %d, '%s', %d)",
|
||||
logInfo.mId, logInfo.mName, logInfo.mOprno, logInfo.mJohapnum, logInfo.mMethod, logInfo.mRfidCode, logInfo.mAttendanceCode);
|
||||
_database.execSQL(sql);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
@ -2045,4 +2270,49 @@ public class GlobalInfo {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean checkIsDoorControlOpenTime() {
|
||||
if(mUseDoorControlTime == 0)
|
||||
return false;
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24시간 기준
|
||||
int minute = calendar.get(Calendar.MINUTE);
|
||||
int currentMinutes = hour * 60 + minute;
|
||||
if(currentMinutes >= mDoorControlTimeStart && currentMinutes <= mDoorControlTimeEnd)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static boolean checkIsDateInRange(String range, String date) {
|
||||
if(range == null || date == null || date.length() == 0)
|
||||
return false;
|
||||
|
||||
if(!range.contains("~"))
|
||||
return false;
|
||||
|
||||
String[] split = range.split("~");
|
||||
|
||||
if(date.compareTo(split[0].trim()) >= 0 && date.compareTo(split[1].trim()) <= 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean checkIsTimeInRange(String range, String time) {
|
||||
if(range == null || time == null || time.length() == 0)
|
||||
return false;
|
||||
|
||||
if(!range.contains("~"))
|
||||
return false;
|
||||
|
||||
String[] split = range.split("~");
|
||||
|
||||
if(time.compareTo(split[0].trim()) >= 0 && time.compareTo(split[1].trim()) <= 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,8 @@ import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.AssetFileDescriptor;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.hardware.usb.UsbDevice;
|
||||
import android.hardware.usb.UsbManager;
|
||||
import android.media.AudioAttributes;
|
||||
@ -41,6 +43,7 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
@ -114,6 +117,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
|
||||
private Handler mDelayHandler = new Handler();
|
||||
private Button mSettingButton = null, mTitleBackButton = null;
|
||||
private Button mWorkinButton = null, mWorkoutButton = null, mAttendanceButton = null;
|
||||
|
||||
private CameraSurfaceView mCameraView = null;
|
||||
|
||||
@ -254,6 +258,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
_logInfo.mMethod = GlobalInfo.VERIFY_METHOD_FINGER_PRINT;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
Log.i("Finger", "Finger Code : " + value);
|
||||
|
||||
_logInfo.mDate = GlobalInfo.getOffsetDateFromToday(0);
|
||||
@ -267,6 +272,20 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
if (GlobalInfo.isVerifyMethodAllAnd() && !info.mID.equals(mLastVerifyUser.mID)) {
|
||||
info = null;
|
||||
}
|
||||
|
||||
if(info.mPermitDate.length() > 0) {
|
||||
if(!GlobalInfo.checkIsDateInRange(info.mPermitDate, _logInfo.mDate)) {
|
||||
Log.i("Finger", String.format("사용자 출입 기간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
}
|
||||
}
|
||||
|
||||
if(info != null && info.mPermitTime.length() > 0) {
|
||||
if(!GlobalInfo.checkIsTimeInRange(info.mPermitTime, _logInfo.mTime)) {
|
||||
Log.i("Finger", String.format("사용자 출입 시간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (info != null) {
|
||||
@ -343,6 +362,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
if (value.length() == 0) { // Code 획득 실패.
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mMethod = GlobalInfo.VERIFY_METHOD_FINGER_PRINT;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
_logInfo.mDate = GlobalInfo.getOffsetDateFromToday(0);
|
||||
_logInfo.mTime = GlobalInfo.getOffsetTimeFromToday(0);
|
||||
processVerifyResult(_logInfo); // 지정맥 인증 실패 로그 전송
|
||||
@ -375,6 +395,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
_logInfo.mMethod = VERIFY_METHOD_FACE;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
Log.i("Face", "Face Code : " + faceCode);
|
||||
|
||||
_logInfo.mDate = GlobalInfo.getOffsetDateFromToday(0);
|
||||
@ -676,6 +697,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
if(status.equals("success") && mVerifyMethod != GlobalInfo.VERIFY_METHOD_VEIN) {
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mMethod = GlobalInfo.VERIFY_METHOD_RFID;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
Log.i("RFID", "Card Code : " + value);
|
||||
_logInfo.mRfidCode = value; // Added by ritoseo - 2021-04-16
|
||||
@ -691,6 +713,25 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
_logInfo.mId = info.mID;
|
||||
_logInfo.mName = info.mName;
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_SUCCESS;
|
||||
|
||||
if(info.mPermitDate.length() > 0) {
|
||||
if(!GlobalInfo.checkIsDateInRange(info.mPermitDate, _logInfo.mDate)) {
|
||||
Log.i("RFID", String.format("사용자 출입 기간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
_logInfo.mId = "";
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
if(info != null && info.mPermitTime.length() > 0) {
|
||||
if(!GlobalInfo.checkIsTimeInRange(info.mPermitTime, _logInfo.mTime)) {
|
||||
Log.i("RFID", String.format("사용자 출입 시간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
_logInfo.mId = "";
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
mLastVerifyUser = info;
|
||||
}
|
||||
}
|
||||
@ -710,6 +751,25 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
_logInfo.mId = info.mID;
|
||||
_logInfo.mName = info.mName;
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_SUCCESS;
|
||||
|
||||
if(info.mPermitDate.length() > 0) {
|
||||
if(!GlobalInfo.checkIsDateInRange(info.mPermitDate, _logInfo.mDate)) {
|
||||
Log.i("RFID", String.format("사용자 출입 기간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
_logInfo.mId = "";
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
if(info != null && info.mPermitTime.length() > 0) {
|
||||
if(!GlobalInfo.checkIsTimeInRange(info.mPermitTime, _logInfo.mTime)) {
|
||||
Log.i("RFID", String.format("사용자 출입 시간 실패 : [%s] %s", info.mID, info.mName));
|
||||
info = null;
|
||||
_logInfo.mId = "";
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
mLastVerifyUser = info;
|
||||
}
|
||||
}
|
||||
@ -740,6 +800,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
_logInfo.mMethod = GlobalInfo.VERIFY_METHOD_VEIN;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
Log.i("VEIN", "Vein Code : " + value);
|
||||
// Log.i("VEIN", "Vein Code Length: " + value.length());
|
||||
// try {
|
||||
@ -864,6 +925,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
mConsecutiveVeinFailCount = 0;
|
||||
LogInfo _logInfo = new LogInfo();
|
||||
_logInfo.mMethod = GlobalInfo.VERIFY_METHOD_VEIN;
|
||||
_logInfo.mAttendanceCode = GlobalInfo.mAttendanceMode;
|
||||
_logInfo.mDate = GlobalInfo.getOffsetDateFromToday(0);
|
||||
_logInfo.mTime = GlobalInfo.getOffsetTimeFromToday(0);
|
||||
processVerifyResult(_logInfo); // 지정맥 인증 실패 로그 전송
|
||||
@ -973,9 +1035,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
//setTheme(R.style.AppBlackTheme);
|
||||
|
||||
INSTANCE = this;
|
||||
|
||||
SystemUtil.shellCommand("niasysc SHELL-ORDER=killall kr.co.rito.factory");
|
||||
SystemUtil.shellCommand("niasysc SHELL-ORDER=chmod 666 /dev/ttyACM0");
|
||||
|
||||
// new Thread() {
|
||||
// @Override
|
||||
@ -1284,8 +1345,61 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if(mWorkinButton == null)
|
||||
mWorkinButton = (Button) findViewById(R.id.workinbutton) ;
|
||||
|
||||
mWorkinButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view)
|
||||
{
|
||||
GlobalInfo.mAttendanceMode = GlobalInfo.ATTENDANCE_MODE_IN;
|
||||
mWorkinButton.setVisibility(View.INVISIBLE);
|
||||
mWorkoutButton.setVisibility(View.INVISIBLE);
|
||||
|
||||
mAttendanceButton.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.workin_icon_76, 0, 0);
|
||||
mAttendanceButton.setText(R.string.main_attendance_mode_in);
|
||||
mAttendanceButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
if(mWorkoutButton == null)
|
||||
mWorkoutButton = (Button) findViewById(R.id.workoutbutton) ;
|
||||
|
||||
mWorkoutButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view)
|
||||
{
|
||||
GlobalInfo.mAttendanceMode = GlobalInfo.ATTENDANCE_MODE_OUT;
|
||||
mWorkinButton.setVisibility(View.INVISIBLE);
|
||||
mWorkoutButton.setVisibility(View.INVISIBLE);
|
||||
|
||||
mAttendanceButton.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.workout_icon_76, 0, 0);
|
||||
mAttendanceButton.setText(R.string.main_attendance_mode_out);
|
||||
mAttendanceButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
if(mAttendanceButton == null)
|
||||
mAttendanceButton = (Button) findViewById(R.id.attendancebutton) ;
|
||||
|
||||
mAttendanceButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view)
|
||||
{
|
||||
GlobalInfo.mAttendanceMode = GlobalInfo.ATTENDANCE_MODE_NONE;
|
||||
mWorkinButton.setVisibility(View.VISIBLE);
|
||||
mWorkoutButton.setVisibility(View.VISIBLE);
|
||||
mAttendanceButton.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
startService(new Intent(this, BaseService.class));
|
||||
|
||||
GlobalInfo.mDoorControlTimeStatus = -1;
|
||||
INSTANCE = this;
|
||||
|
||||
//BaseService.setLastActivity(null);
|
||||
|
||||
/*
|
||||
@ -1563,6 +1677,12 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
|
||||
BaseService.setLastActivity(null);
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
mWorkinButton.setVisibility(View.VISIBLE);
|
||||
mWorkoutButton.setVisibility(View.VISIBLE);
|
||||
GlobalInfo.mAttendanceMode = GlobalInfo.ATTENDANCE_MODE_NONE;
|
||||
}
|
||||
|
||||
/*if(mVeinManager == null) {
|
||||
Log.i(TAG, "Create NEW VeinManager");
|
||||
mVeinManager = new VeinManager(this);
|
||||
@ -1684,38 +1804,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
}
|
||||
//Log.e("ryu", "on start face init!");
|
||||
|
||||
if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_RFID)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_CARD);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_FINGER_PRINT)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_PRINT);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FINGER_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_FACE);
|
||||
else if(GlobalInfo.isVerifyMethod(VERIFY_METHOD_RFID)){
|
||||
if(mVerifyMethod == VERIFY_METHOD_VEIN_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_FINGER_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_PRINT);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR) {
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN_FACE);
|
||||
}
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FINGER_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_FACE);
|
||||
else {
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_CARD);
|
||||
}
|
||||
}
|
||||
else
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_UI_INIT);
|
||||
|
||||
|
||||
turnToBaseUI();
|
||||
}
|
||||
}.start();
|
||||
|
||||
@ -1939,6 +2028,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
BaseService.mServerManager.reportLoggingResult(logResult);
|
||||
}
|
||||
|
||||
GlobalInfo.mAttendanceMode = GlobalInfo.ATTENDANCE_MODE_NONE;
|
||||
|
||||
if(logResult.mId.length() > 0) {
|
||||
//Toast.makeText(this,"인증 성공 [" + logResult.mName + "]", Toast.LENGTH_SHORT).show();
|
||||
|
||||
@ -2015,21 +2106,80 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
}
|
||||
}.start();
|
||||
|
||||
|
||||
|
||||
Message message = new Message();
|
||||
mMainUiHandler.sendEmptyMessage(RESULT_FAIL);
|
||||
|
||||
|
||||
|
||||
//processResultPopup(POPUP_TYPE_DENIED, "인증 실패");
|
||||
new LedScheduler(GlobalInfo.GPIO_PIN_LED_RED).start();
|
||||
}
|
||||
}
|
||||
|
||||
public void turnToBaseUI() {
|
||||
if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_RFID)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_CARD);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_FINGER_PRINT)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_PRINT);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FINGER_FACE)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_FACE);
|
||||
else if(GlobalInfo.isVerifyMethod(VERIFY_METHOD_RFID)){
|
||||
if(mVerifyMethod == VERIFY_METHOD_VEIN_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN);
|
||||
else if(mVerifyMethod == VERIFY_METHOD_FINGER_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_PRINT);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FACE);
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_VEIN_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR) {
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_VEIN_FACE);
|
||||
}
|
||||
else if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FINGER_FACE_COMB_RFID && mVerifyCombination == VERIFY_COMBINATION_OR)
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_FINGER_FACE);
|
||||
else {
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_SELECT_CARD);
|
||||
}
|
||||
}
|
||||
else
|
||||
mMainUiHandler.sendEmptyMessage(MAIN_UI_INIT);
|
||||
}
|
||||
|
||||
class MainUiHandler extends Handler{
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
int imageWidth = 585;
|
||||
int imageHeight = 402;
|
||||
int imageWidthTriple = 380;
|
||||
int imageHeightTriple = 261;
|
||||
int imageWidthWithFace = 490;
|
||||
int imageHeightWithFace = 337;
|
||||
|
||||
int image1PosX = 39;
|
||||
int image2PosX = 665;
|
||||
int imageFace1PosX = 135;
|
||||
int imageFace2PosX = 656;
|
||||
int imageTriple2PosX = 450;
|
||||
int imageTriple3PosX = 860;
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
imageWidth *= 0.738;
|
||||
imageWidthTriple *= 0.738;
|
||||
imageWidthWithFace *= 0.738;
|
||||
|
||||
image1PosX = 39;
|
||||
image2PosX = 500;
|
||||
imageFace1PosX = 70;
|
||||
imageFace2PosX = 500;
|
||||
imageTriple2PosX = 350;
|
||||
imageTriple3PosX = 660;
|
||||
|
||||
mWorkinButton.setVisibility(View.VISIBLE);
|
||||
mWorkoutButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
super.handleMessage(msg);
|
||||
mMainUiStatus = msg.what;
|
||||
mSettingButton.setVisibility(View.VISIBLE);
|
||||
@ -2041,24 +2191,50 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
mCameraView.setDropFrame(true);
|
||||
BaseService.mFaceManager.mRBitmapFrameQueue.clear();
|
||||
|
||||
if(GlobalInfo.checkIsDoorControlOpenTime()) { // 개방시간 사용 시간여부
|
||||
LayoutSetting(mVerifyCheck, CHECK, 563, 126, 155, 155, R.drawable.popup_fail, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 348, 40, 0, 0, R.drawable.main_img1, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 348, 40, 0, 0, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 348, 40, 0, 0, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 348, 40, 0, 0, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 534, 385, 340, 65, R.string.main_verify_fail, View.INVISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 582, 498, 660, 65, R.string.main_card_text2, View.INVISIBLE);
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
mWorkinButton.setVisibility(View.INVISIBLE);
|
||||
mWorkoutButton.setVisibility(View.INVISIBLE);
|
||||
mAttendanceButton.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
TextView tv = findViewById(R.id.doorcontroltimetext);
|
||||
tv.setText(String.format("%d:%02d~%d:%02d", GlobalInfo.mDoorControlTimeStart / 60, GlobalInfo.mDoorControlTimeStart % 60
|
||||
, GlobalInfo.mDoorControlTimeEnd / 60, GlobalInfo.mDoorControlTimeEnd % 60));
|
||||
findViewById(R.id.doorcontrolframe).setVisibility(View.VISIBLE);
|
||||
|
||||
return;
|
||||
} else {
|
||||
findViewById(R.id.doorcontrolframe).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
|
||||
//Log.e(TAG,"[RYU] MainUiHandler msg.what: " + msg.what);
|
||||
switch (msg.what) {
|
||||
case MAIN_UI_INIT: //or
|
||||
LayoutSetting(mVerifyCheck, CHECK, 0, 0, 0, 0, 0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 39, 40, 585, 402, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, image1PosX, 40, imageWidth, imageHeight, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 0,0,0,0, 0, View.INVISIBLE);
|
||||
|
||||
if(GlobalInfo.isActivatedMethod(VERIFY_METHOD_VEIN))
|
||||
{
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 665, 40, 585, 402, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 665, 40, 585, 402, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 50, 498, 337, 65, R.string.main_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 387, 498, 660, 65, R.string.main_text2, View.VISIBLE);
|
||||
|
||||
}else
|
||||
{
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 665, 40, 585, 402, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 665, 40, 585, 402, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 50, 498, 337+660, 65, R.string.main_card_finger_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 387, 498, 0, 0, 0, View.INVISIBLE);
|
||||
}
|
||||
@ -2066,9 +2242,9 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
|
||||
case MAIN_SELECT_CARD:
|
||||
LayoutSetting(mVerifyCheck, CHECK, 0,0,0,0,0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 348, 40, 585, 402, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 665, 40, 0, 0, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 665, 40, 0, 0, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 348, 40, imageWidth, imageHeight, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, image2PosX, 40, 0, 0, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, image2PosX, 40, 0, 0, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 0,0,0,0, 0, View.INVISIBLE);
|
||||
|
||||
if (mVerifyMethod == VERIFY_METHOD_VEIN_COMB_RFID || mVerifyMethod == GlobalInfo.VERIFY_METHOD_FINGER_COMB_RFID) {
|
||||
@ -2087,7 +2263,7 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
case MAIN_SELECT_VEIN:
|
||||
LayoutSetting(mVerifyCheck, CHECK, 0,0,0,0,0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 348, 40, 0, 0, R.drawable.main_img1, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 348, 40, 585, 402, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 348, 40, imageWidth, imageHeight, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 348, 40, 0, 0, R.drawable.main_fingerprint, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 0,0,0,0, 0, View.INVISIBLE);
|
||||
if(mVerifyMethod == VERIFY_METHOD_VEIN_COMB_RFID) {
|
||||
@ -2097,8 +2273,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
mTitleBackButton.setVisibility(View.VISIBLE);
|
||||
waitTimeHandler(MAIN_SELECT_VEIN, GlobalInfo.mVerifyPopupTime * 1000);
|
||||
}else{
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 39, 40, 585, 402, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 665, 40, 585, 402, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, image1PosX, 40, imageWidth, imageHeight, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 50, 498, 337, 65, R.string.main_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 387, 498, 660, 65, R.string.main_text2, View.VISIBLE);
|
||||
}
|
||||
@ -2111,8 +2287,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
case MAIN_SELECT_FINGER_PRINT:
|
||||
LayoutSetting(mVerifyCheck, CHECK, 0,0,0,0,0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 348, 40, 0, 0, R.drawable.main_img1, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 348, 40, 585, 402, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 348, 40, 585, 402, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 348, 40, imageWidth, imageHeight, R.drawable.main_img2, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 348, 40, imageWidth, imageHeight, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 0,0,0,0, 0, View.INVISIBLE);
|
||||
if(mVerifyMethod == VERIFY_METHOD_FINGER_COMB_RFID){
|
||||
if(mVerifyCombination == VERIFY_COMBINATION_AND) {
|
||||
@ -2121,8 +2297,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
mTitleBackButton.setVisibility(View.VISIBLE);
|
||||
waitTimeHandler(MAIN_SELECT_FINGER_PRINT, GlobalInfo.mVerifyPopupTime * 1000);
|
||||
}else{
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 39, 40, 585, 402, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 665, 40, 585, 402, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, image1PosX, 40, imageWidth, imageHeight, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 50, 498, 337+660, 65, R.string.main_card_finger_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 387, 498, 0, 0, 0, View.INVISIBLE);
|
||||
}
|
||||
@ -2143,24 +2319,24 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
|
||||
if(mVerifyMethod == GlobalInfo.VERIFY_METHOD_FACE_COMB_RFID) {
|
||||
if(mVerifyCombination == VERIFY_COMBINATION_OR) {
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 39, 40, 585, 402, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 665, 40, 585, 402, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, image1PosX, 40, imageWidth, imageHeight, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, image2PosX, 40, imageWidth, imageHeight, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 0, 0, 0, 0, 0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 40, 498, 1000, 65, R.string.main_face_rfid_text, View.VISIBLE);
|
||||
//mCameraView.surfaceMove(665, 40, 585, 402);
|
||||
//mCameraView.surfaceMove(image2PosX, 40, 585, 402);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
}
|
||||
else {
|
||||
//mCameraView.surfaceMove(348, 40, 585, 402);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 348, 40, 585, 402, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 348, 40, imageWidth, imageHeight, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 288, 498, 1000, 65, R.string.main_face_and_rfid_text, View.VISIBLE);
|
||||
mTitleBackButton.setVisibility(View.VISIBLE);
|
||||
waitTimeHandler(MAIN_SELECT_FACE,GlobalInfo.mVerifyPopupTime * 1000);
|
||||
}
|
||||
} else {
|
||||
//mCameraView.surfaceMove(348, 40, 585, 402);
|
||||
//LayoutSetting(mLoginImage[FACE], FACE, 348, 40, 585, 402, R.drawable.main_img4, View.VISIBLE);
|
||||
//LayoutSetting(mLoginImage[FACE], FACE, 348, 40, imageWidth, imageHeight, R.drawable.main_img4, View.VISIBLE);
|
||||
//mCameraView.surfaceMove(152, 10, 896, 476);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[FACE_BG], FACE_BG, 0, 0, 1280, 626, R.drawable.bg, View.INVISIBLE);
|
||||
@ -2182,9 +2358,9 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
if(mVerifyCombination == VERIFY_COMBINATION_OR) {
|
||||
//mCameraView.surfaceMove(450, 110, 380, 261);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 40, 110, 380, 261, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 450, 110, 380, 261, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 860, 110, 380, 261, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 40, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, imageTriple2PosX, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, imageTriple3PosX, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 40, 433, 1000, 65, R.string.main_vein_or_face_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 40, 498, 660, 65, R.string.main_vein_or_face_text2, View.VISIBLE);
|
||||
}
|
||||
@ -2201,8 +2377,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
//mCameraView.surfaceMove(656, 30, 490, 337);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 0, 0, 0, 0, 0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, 135, 30, 490, 337, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 656, 30, 490, 337, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[VEIN], VEIN, imageFace1PosX, 30, imageWidthWithFace, imageHeightWithFace, R.drawable.main_img2, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, imageFace2PosX, 30, imageWidthWithFace, imageHeightWithFace, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 263, 433, 800, 65, R.string.main_vein_and_face_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 394, 498, 660, 65, R.string.main_vein_and_face_text2, View.VISIBLE);
|
||||
}
|
||||
@ -2220,9 +2396,9 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
|
||||
//mCameraView.surfaceMove(450, 110, 380, 261);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 40, 110, 380, 261, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 450, 110, 380, 261, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 860, 110, 380, 261, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 40, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_img1, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, imageTriple2PosX, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, imageTriple3PosX, 110, imageWidthTriple, imageHeightTriple, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 40, 433, 1000, 65, R.string.main_finger_or_face_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 40, 498, 660, 65, R.string.main_finger_or_face_text2, View.VISIBLE);
|
||||
} else {
|
||||
@ -2238,8 +2414,8 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
//mCameraView.surfaceMove(656, 30, 490, 337);
|
||||
mCameraView.surfaceMove(160 + 10, 36 + 10, 960 - 20, 540 - 20);
|
||||
LayoutSetting(mLoginImage[CARD], CARD, 0, 0, 0, 0, 0, View.INVISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, 135, 30, 490, 337, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, 656, 30, 490, 337, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FINGER], FINGER, imageFace1PosX, 30, imageWidthWithFace, imageHeightWithFace, R.drawable.main_fingerprint, View.VISIBLE);
|
||||
LayoutSetting(mLoginImage[FACE], FACE, imageFace2PosX, 30, imageWidthWithFace, imageHeightWithFace, R.drawable.main_img4, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 346, 433, 800, 65, R.string.main_finger_and_face_text1, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 500, 498, 660, 65, R.string.main_finger_and_face_text2, View.VISIBLE);
|
||||
}
|
||||
@ -2267,6 +2443,12 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 0, 385, 660, 65, 0, View.VISIBLE, " ");
|
||||
}
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
mWorkinButton.setVisibility(View.INVISIBLE);
|
||||
mWorkoutButton.setVisibility(View.INVISIBLE);
|
||||
mAttendanceButton.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
waitTimeHandler(RESULT_SUCCESS,GlobalInfo.mVerifyPopupTime * 1000);
|
||||
break;
|
||||
|
||||
@ -2284,6 +2466,13 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
//LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 402, 385, 340, 65, R.string.main_verify_fail, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_WHITE], COLOR_WHITE, 534, 385, 340, 65, R.string.main_verify_fail, View.VISIBLE);
|
||||
LayoutSetting(mLoginText[COLOR_YELLOW], COLOR_YELLOW, 582, 498, 660, 65, R.string.main_card_text2, View.INVISIBLE);
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
mWorkinButton.setVisibility(View.INVISIBLE);
|
||||
mWorkoutButton.setVisibility(View.INVISIBLE);
|
||||
mAttendanceButton.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
waitTimeHandler(RESULT_FAIL,GlobalInfo.mVerifyPopupTime * 1000);
|
||||
break;
|
||||
}
|
||||
@ -2308,6 +2497,33 @@ public class MainActivity extends AppCompatActivity implements RfidManager.resul
|
||||
mLoginImage[target].setImageResource(resId);
|
||||
mLoginImage[target].setVisibility(visible);
|
||||
|
||||
// mLoginImage[target].setScaleType(ImageView.ScaleType.FIT_XY);
|
||||
// mLoginImage[target].post(() -> {
|
||||
// Drawable drawable = mLoginImage[target].getDrawable();
|
||||
// if (drawable == null) return;
|
||||
//
|
||||
// float viewWidth = mLoginImage[target].getWidth();
|
||||
// float viewHeight = mLoginImage[target].getHeight();
|
||||
//
|
||||
// float drawableWidth = drawable.getIntrinsicWidth();
|
||||
// float drawableHeight = drawable.getIntrinsicHeight();
|
||||
//
|
||||
// // 높이 기준으로 스케일 결정
|
||||
// float scale = viewHeight / drawableHeight;
|
||||
//
|
||||
// // 스케일된 이미지의 너비
|
||||
// float scaledWidth = drawableWidth * scale;
|
||||
//
|
||||
// // 우측 정렬을 위한 이동 거리 (오른쪽을 잘라냄)
|
||||
// float dx = 0;
|
||||
//
|
||||
// Matrix matrix = new Matrix();
|
||||
// matrix.setScale(scale, scale);
|
||||
// matrix.postTranslate(dx, 0);
|
||||
//
|
||||
// mLoginImage[target].setImageMatrix(matrix);
|
||||
// });
|
||||
|
||||
} else if (object instanceof TextView) {
|
||||
mLoginText[target].setLayoutParams(new FrameLayout.LayoutParams(width, height));
|
||||
mLoginText[target].setX(x);
|
||||
|
@ -35,6 +35,10 @@ public class RfidManager implements SerialInputOutputManager.Listener {
|
||||
private boolean withIoManager;
|
||||
private Context mContext = null;
|
||||
|
||||
private SerialManager mSerialManager = null;
|
||||
private int acmHandle = -1;
|
||||
private Thread mSerialThread = null;
|
||||
|
||||
//private Handler mainLooper;
|
||||
private BroadcastReceiver broadcastReceiver;
|
||||
|
||||
@ -67,7 +71,7 @@ public class RfidManager implements SerialInputOutputManager.Listener {
|
||||
|
||||
public UserInfo scanUserForVerify(ArrayList<UserInfo> userList, String rfidCode) {
|
||||
for(UserInfo user : userList) {
|
||||
if(user.mRFIDCode.equals(rfidCode))
|
||||
if(user.mRFIDCode.equals(rfidCode) || user.mRFIDCode2.equals(rfidCode))
|
||||
return user;
|
||||
}
|
||||
|
||||
@ -147,6 +151,73 @@ public class RfidManager implements SerialInputOutputManager.Listener {
|
||||
if(!succeed) {
|
||||
connect();
|
||||
}
|
||||
|
||||
if(mSerialManager == null) {
|
||||
mSerialManager = new SerialManager();
|
||||
mSerialThread = new Thread() {
|
||||
byte[] accData = new byte[128];
|
||||
int accFilled = 0;
|
||||
@Override
|
||||
public void run() {
|
||||
byte[] tmpData = new byte[128];
|
||||
while(true) {
|
||||
if(acmHandle >= 0) {
|
||||
byte[] readData = new byte[128];
|
||||
int recvSize = mSerialManager.ReadSerial(acmHandle, readData, 128);
|
||||
if(recvSize > 0) {
|
||||
byte[] rfidId = new byte[recvSize];
|
||||
System.arraycopy(readData, 0, rfidId, 0, recvSize);
|
||||
Log.d(RfidManager.class.getName(), String.format("Received from BLE Reader Module : %d bytes. [%s]", recvSize, byteArrayToHexString(rfidId)));
|
||||
System.arraycopy(readData, 0, accData, accFilled, recvSize);
|
||||
accFilled += recvSize;
|
||||
}
|
||||
|
||||
if(accFilled > 0) {
|
||||
while (accData[0] != 0x02 && accFilled > 1) {
|
||||
System.arraycopy(accData, 1, tmpData, 0, accFilled - 1);
|
||||
System.arraycopy(tmpData, 0, accData, 0, accFilled - 1);
|
||||
accFilled--;
|
||||
}
|
||||
|
||||
if(accFilled >= 9) {
|
||||
if(accData[0] == 0x02 && accData[8] == 0x03) { // 모바일 신분증 데이터 형식 매칭
|
||||
byte[] rfidId = new byte[7];
|
||||
System.arraycopy(accData, 1, rfidId, 0, 7);
|
||||
String rfidHex = byteArrayToHexString(rfidId);
|
||||
|
||||
if(accFilled > 9) {
|
||||
System.arraycopy(accData, 9, tmpData, 0, accFilled - 9);
|
||||
System.arraycopy(tmpData, 0, accData, 0, accFilled - 9);
|
||||
}
|
||||
Log.d(RfidManager.class.getName(), String.format("BLE Reader Try [%s]", rfidHex));
|
||||
mNotifyTarget.onRfidResult("success", rfidHex);
|
||||
|
||||
accFilled -= 9;
|
||||
} else {
|
||||
accFilled = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
sleep(50);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
mSerialThread.start();
|
||||
}
|
||||
|
||||
if(acmHandle < 0) {
|
||||
acmHandle = mSerialManager.OpenSerial("/dev/ttyACM0", 115200);
|
||||
if(acmHandle < 0) {
|
||||
Log.e(RfidManager.class.getName(), "Error to open BLE Reader Module[ttyACM0]!");
|
||||
} else {
|
||||
Log.d(RfidManager.class.getName(), "Success to open BLE Reader Module[ttyACM0] :-)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
11
app/src/main/java/kr/co/enicom/acs/SerialManager.java
Normal file
@ -0,0 +1,11 @@
|
||||
package kr.co.enicom.acs;
|
||||
|
||||
public class SerialManager {
|
||||
public SerialManager() {
|
||||
System.loadLibrary("serialutil");
|
||||
}
|
||||
public native int OpenSerial(String dev, int baudrate);
|
||||
public native int ReadSerial(int devHandle, byte[] buffer, int maxlen);
|
||||
public native int WriteSerial(int devHandle, byte[] buffer, int length);
|
||||
public native int CloseSerial(int devHandle);
|
||||
}
|
@ -9,7 +9,9 @@ public class UserInfo {
|
||||
public int mAuthority; // 0 : Admin, 1 : User
|
||||
public String mPassword;
|
||||
public String mRFIDCode;
|
||||
public String mRFIDCode2;
|
||||
public String mVeinTemplate;
|
||||
public String mVeinTemplate2;
|
||||
public String mUserRegistDateTime;
|
||||
public String mRfidRegistDateTime;
|
||||
public String mVeinRegistDateTime;
|
||||
@ -18,18 +20,24 @@ public class UserInfo {
|
||||
public boolean mCheck;
|
||||
|
||||
public String mFingerTemplate;
|
||||
public String mFingerTemplate2;
|
||||
public String mFingerRegistDateTime;
|
||||
|
||||
public byte[] mFaceTemplate;
|
||||
public String mFaceRegistDateTime;
|
||||
|
||||
public String mPermitDate;
|
||||
public String mPermitTime;
|
||||
|
||||
public UserInfo() {
|
||||
mID = "";
|
||||
mName = "";
|
||||
mAuthority = -1;
|
||||
mPassword = "";
|
||||
mRFIDCode = "";
|
||||
mRFIDCode2 = "";
|
||||
mVeinTemplate = "";
|
||||
mVeinTemplate2 = "";
|
||||
mOprno = "";
|
||||
mJohapnum = "";
|
||||
mUserRegistDateTime = "";
|
||||
@ -38,10 +46,14 @@ public class UserInfo {
|
||||
mCheck = false;
|
||||
|
||||
mFingerTemplate = "";
|
||||
mFingerTemplate2 = "";
|
||||
mFingerRegistDateTime = "";
|
||||
|
||||
mFaceTemplate = "".getBytes();
|
||||
mFaceRegistDateTime = "";
|
||||
|
||||
mPermitDate = "";
|
||||
mPermitTime = "";
|
||||
}
|
||||
|
||||
public void makeSafe() {
|
||||
@ -53,8 +65,12 @@ public class UserInfo {
|
||||
mPassword = "";
|
||||
if(mRFIDCode == null)
|
||||
mRFIDCode = "";
|
||||
if(mRFIDCode2 == null)
|
||||
mRFIDCode2 = "";
|
||||
if(mVeinTemplate == null)
|
||||
mVeinTemplate = "";
|
||||
if(mVeinTemplate2 == null)
|
||||
mVeinTemplate2 = "";
|
||||
|
||||
if(mOprno == null)
|
||||
mOprno = "";
|
||||
@ -68,10 +84,17 @@ public class UserInfo {
|
||||
mVeinRegistDateTime = "";
|
||||
if(mFingerTemplate == null)
|
||||
mFingerTemplate = "";
|
||||
if(mFingerTemplate2 == null)
|
||||
mFingerTemplate2 = "";
|
||||
if(mFingerRegistDateTime == null)
|
||||
mFingerRegistDateTime = "";
|
||||
if(mFaceRegistDateTime == null)
|
||||
mFaceRegistDateTime = "";
|
||||
|
||||
if(mPermitDate == null)
|
||||
mPermitDate = "";
|
||||
if(mPermitTime == null)
|
||||
mPermitTime = "";
|
||||
}
|
||||
|
||||
public void copyMemberToInfo(UserInfo target) {
|
||||
@ -83,7 +106,9 @@ public class UserInfo {
|
||||
target.mAuthority = mAuthority;
|
||||
target.mPassword = mPassword;
|
||||
target.mRFIDCode = mRFIDCode;
|
||||
target.mRFIDCode2 = mRFIDCode2;
|
||||
target.mVeinTemplate = mVeinTemplate;
|
||||
target.mVeinTemplate2 = mVeinTemplate2;
|
||||
target.mOprno = mOprno;
|
||||
target.mIndex = mIndex;
|
||||
target.mJohapnum = mJohapnum;
|
||||
@ -92,7 +117,11 @@ public class UserInfo {
|
||||
target.mVeinRegistDateTime = mVeinRegistDateTime;
|
||||
|
||||
target.mFingerTemplate = mFingerTemplate;
|
||||
target.mFingerTemplate2 = mFingerTemplate2;
|
||||
target.mFaceTemplate = mFaceTemplate;
|
||||
|
||||
target.mPermitDate = mPermitDate;
|
||||
target.mPermitTime = mPermitTime;
|
||||
}
|
||||
|
||||
public boolean valueExist(String value) {
|
||||
|
@ -248,6 +248,20 @@ public class VeinManager {
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
if(user.mVeinTemplate2.length() > 0 && user.mVeinTemplate2.length() == ServerManager.VEIN_CODE_ENROLL_LENGTH) {
|
||||
try {
|
||||
boolean result = VeinManager.this.h1Client.verify(user.mVeinTemplate2, mVeinCode, SecurityLevel.MIDDLE);
|
||||
if (result) {
|
||||
Log.e("ENROLL", user.mVeinTemplate2);
|
||||
Log.e("Vein", mVeinCode);
|
||||
mResultInfo = user;
|
||||
scanFinished = true;
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scanFinished = true;
|
||||
@ -268,6 +282,18 @@ public class VeinManager {
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (user.mVeinTemplate2.length() > 0 && user.mVeinTemplate2.length() == ServerManager.VEIN_CODE_ENROLL_LENGTH) {
|
||||
try {
|
||||
boolean result = this.h1Client.verify(user.mVeinTemplate2, veinCode, SecurityLevel.MIDDLE);
|
||||
if (result) {
|
||||
Log.e("ENROLL", user.mVeinTemplate2);
|
||||
Log.e("Vein", veinCode);
|
||||
return user;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { // 멀티스레드 SCAN
|
||||
int verifierCount = (userList.size() / GlobalInfo.VEIN_MULTI_SCAN_COUNT_BASE);
|
||||
|
@ -25,6 +25,7 @@ public class LogAdapter extends ArrayAdapter<LogInfo> {
|
||||
ArrayList<LogInfo> sample;
|
||||
ArrayList<LogInfo> filteredItemList;
|
||||
LayoutInflater mLayoutInflater = null;
|
||||
int mViewMode = 0; // 0 : 인증 이력, 1 : 근태 이력
|
||||
|
||||
public LogAdapter(Context context, ArrayList<LogInfo> data) {
|
||||
super(context,0, data);
|
||||
@ -35,6 +36,10 @@ public class LogAdapter extends ArrayAdapter<LogInfo> {
|
||||
mLayoutInflater = LayoutInflater.from(mContext);
|
||||
}
|
||||
|
||||
public void setViewMode(int mode) {
|
||||
mViewMode = mode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
//Log.w("RITO", "filteredItem getCount : " + filteredItemList.size());
|
||||
@ -71,7 +76,7 @@ public class LogAdapter extends ArrayAdapter<LogInfo> {
|
||||
TextView userName = (TextView)convertView.findViewById(R.id.username);
|
||||
TextView logDate = (TextView)convertView.findViewById(R.id.logDate);
|
||||
TextView logTime = (TextView)convertView.findViewById(R.id.logTime);
|
||||
//TextView logResult = (TextView)convertView.findViewById(R.id.logResult);
|
||||
TextView logResult = (TextView)convertView.findViewById(R.id.logResult);
|
||||
ImageView imageMethodRfid = (ImageView) convertView.findViewById(R.id.imageMethodRfid);
|
||||
ImageView imageMethodVein = (ImageView) convertView.findViewById(R.id.imageMethodVein);
|
||||
// ImageView imageMethodFinger = (ImageView) convertView.findViewById(R.id.imageMethodFinger);
|
||||
@ -95,10 +100,12 @@ public class LogAdapter extends ArrayAdapter<LogInfo> {
|
||||
} else if (GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_VEIN_FACE)) {
|
||||
imageMethodFace.setVisibility(View.VISIBLE);
|
||||
imageMethodFace.setBackgroundResource(R.drawable.list_face_icon_nor);
|
||||
logResult.setVisibility(View.GONE);
|
||||
} else if (GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_FINGER_FACE)) {
|
||||
imageMethodFace.setVisibility(View.VISIBLE);
|
||||
imageMethodFace.setBackgroundResource(R.drawable.list_face_icon_nor);
|
||||
imageMethodVein.setBackgroundResource(R.drawable.list_fprint_icon_nor);
|
||||
logResult.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(listViewItem.mId != null && listViewItem.mId.length() > 0) {
|
||||
@ -121,14 +128,24 @@ public class LogAdapter extends ArrayAdapter<LogInfo> {
|
||||
imageMethodFace.setBackgroundResource(R.drawable.list_face_icon_color);
|
||||
}
|
||||
|
||||
//logResult.setText("성공");
|
||||
//logResult.setTextColor(Color.parseColor("#1DAE17"));
|
||||
imageResult.setBackgroundResource(R.drawable.list_success_icon);
|
||||
if(listViewItem.mAttendanceCode == GlobalInfo.ATTENDANCE_MODE_NONE) {
|
||||
logResult.setText("성공");
|
||||
logResult.setTextColor(Color.parseColor("#1DAE17"));
|
||||
} else if(listViewItem.mAttendanceCode == GlobalInfo.ATTENDANCE_MODE_IN) {
|
||||
logResult.setText("출근");
|
||||
logResult.setTextColor(Color.parseColor("#117EF8"));
|
||||
imageResult.setBackgroundResource(R.drawable.list_workin_icon_resized);
|
||||
} else if(listViewItem.mAttendanceCode == GlobalInfo.ATTENDANCE_MODE_OUT) {
|
||||
logResult.setText("퇴근");
|
||||
logResult.setTextColor(Color.parseColor("#1DAE17"));
|
||||
}
|
||||
|
||||
} else {
|
||||
userId.setText("");
|
||||
userName.setText("");
|
||||
//logResult.setText("실패");
|
||||
//logResult.setTextColor(Color.parseColor("#E42E2E"));
|
||||
logResult.setText("실패");
|
||||
logResult.setTextColor(Color.parseColor("#E42E2E"));
|
||||
imageResult.setBackgroundResource(R.drawable.list_fail_icon);
|
||||
}
|
||||
listViewItem.mDate = listViewItem.mDate.replaceAll("-","");
|
||||
|
@ -23,6 +23,8 @@ public class LogInfo {
|
||||
// For Setting ADMIN Login
|
||||
public String mCaptureId;
|
||||
|
||||
public int mAttendanceCode; // 근태 정보. 0 : 적용없음, 1 : 출근, 2 : 퇴근
|
||||
|
||||
public LogInfo() {
|
||||
mId = "";
|
||||
mName = "";
|
||||
@ -30,6 +32,7 @@ public class LogInfo {
|
||||
mJohapnum = "";
|
||||
mRfidCode = "";
|
||||
mCaptureId = "";
|
||||
mAttendanceCode = 0;
|
||||
mMethod = GlobalInfo.VERIFY_METHOD_VEIN;
|
||||
mResultCode = GlobalInfo.VERIFY_RESULT_FAILED;
|
||||
}
|
||||
|
@ -98,6 +98,17 @@ public class MgtDataActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
|
||||
Button dataattendancebutton = (Button) findViewById(R.id.dataattendancebutton);
|
||||
dataattendancebutton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
deleteDialog(7, POPMODE_ALL);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
Button datafingerbutton = (Button) findViewById(R.id.datafingerbutton);
|
||||
datafingerbutton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
@ -134,6 +145,12 @@ public class MgtDataActivity extends BaseActivity {
|
||||
} else if (GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_FINGER_FACE)) {
|
||||
dataveinlayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
findViewById(R.id.dataattendance).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.dataattendance).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -249,6 +266,8 @@ public class MgtDataActivity extends BaseActivity {
|
||||
mDeleteTarget = "finger";
|
||||
} else if (menu == 6) {
|
||||
mDeleteTarget = "face";
|
||||
} else if (menu == 7) {
|
||||
mDeleteTarget = "attendance";
|
||||
}
|
||||
|
||||
if (popupmode == POPMODE_ALL) {
|
||||
|
@ -102,6 +102,17 @@ public class MgtLogActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
|
||||
Button logattendancebutton = (Button) findViewById(R.id.logattendancebutton);
|
||||
logattendancebutton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
layoutChange(3);
|
||||
logInfoSetting();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
ImageView logdeleteimage = (ImageView) findViewById(R.id.logdeleteimage);
|
||||
logdeleteimage.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
@ -159,7 +170,11 @@ public class MgtLogActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 1) {
|
||||
findViewById(R.id.logattendance).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.logattendance).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
String startbeforeText = "";
|
||||
@ -192,7 +207,12 @@ public class MgtLogActivity extends BaseActivity {
|
||||
mStartdate.setText(fromday);
|
||||
mEnddate.setText(today);
|
||||
|
||||
updateLogList(fromday, today);
|
||||
//updateLogList(fromday, today);
|
||||
if(mLayoutDeps == 2) {
|
||||
updateLogListAttendance(fromday, today, false);
|
||||
} else {
|
||||
updateLogListAttendance(fromday, today, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateLogList(String fromDate, String toDate) {
|
||||
@ -202,6 +222,13 @@ public class MgtLogActivity extends BaseActivity {
|
||||
mLogAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void updateLogListAttendance(String fromDate, String toDate, boolean isAttendance) {
|
||||
ArrayList<LogInfo> infoList = GlobalInfo.queryLogDataAttendance(fromDate, toDate, isAttendance);
|
||||
mLogAdapter.sample = infoList;
|
||||
mLogAdapter.filteredItemList = infoList;
|
||||
mLogAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
//checkVerify();
|
||||
@ -285,7 +312,7 @@ public class MgtLogActivity extends BaseActivity {
|
||||
FrameLayout sub3 = (FrameLayout) findViewById(R.id.frameLayoutsub3);
|
||||
sub3.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
else
|
||||
else if(layout == 2)
|
||||
{
|
||||
LinearLayout sub1 = (LinearLayout) findViewById(R.id.frameLayoutsub1);
|
||||
sub1.setVisibility(View.INVISIBLE);
|
||||
@ -298,6 +325,19 @@ public class MgtLogActivity extends BaseActivity {
|
||||
|
||||
titleView.setText(R.string.mgt_log_authentication_text);
|
||||
}
|
||||
else if(layout == 3)
|
||||
{
|
||||
LinearLayout sub1 = (LinearLayout) findViewById(R.id.frameLayoutsub1);
|
||||
sub1.setVisibility(View.INVISIBLE);
|
||||
|
||||
LinearLayout sub2 = (LinearLayout) findViewById(R.id.frameLayoutsub2);
|
||||
sub2.setVisibility(View.INVISIBLE);
|
||||
|
||||
FrameLayout sub3 = (FrameLayout) findViewById(R.id.frameLayoutsub3);
|
||||
sub3.setVisibility(View.VISIBLE);
|
||||
|
||||
titleView.setText(R.string.mgt_log_attendance_text);
|
||||
}
|
||||
mLayoutDeps = layout;
|
||||
|
||||
}catch(Exception e)
|
||||
@ -512,7 +552,12 @@ public class MgtLogActivity extends BaseActivity {
|
||||
mEnddate.setText(String.format("%04d-%02d-%02d", numberpickeryear.getValue(), numberpickermonth.getValue(), numberpickerday.getValue()));
|
||||
}
|
||||
|
||||
updateLogList(mStartdate.getText().toString(), mEnddate.getText().toString());
|
||||
//updateLogList(mStartdate.getText().toString(), mEnddate.getText().toString());
|
||||
if(mLayoutDeps == 2) {
|
||||
updateLogListAttendance(mStartdate.getText().toString(), mEnddate.getText().toString(), false);
|
||||
} else {
|
||||
updateLogListAttendance(mStartdate.getText().toString(), mEnddate.getText().toString(), true);
|
||||
}
|
||||
|
||||
}catch (Exception e)
|
||||
{
|
||||
|
@ -41,6 +41,7 @@ import kr.co.enicom.acs.GlobalInfo;
|
||||
import kr.co.enicom.acs.MainActivity;
|
||||
import kr.co.enicom.acs.R;
|
||||
import kr.co.enicom.acs.RfidManager;
|
||||
import kr.co.enicom.acs.system.DoorControlTimeActivity;
|
||||
import kr.co.enicom.acs.system.LoginMenuActivity;
|
||||
import kr.co.enicom.acs.system.ServerSettingActivity;
|
||||
import kr.co.enicom.acs.system.SettingsActivity;
|
||||
@ -236,6 +237,17 @@ public class MgtSystemSettingsActivity extends BaseActivity implements RfidManag
|
||||
});
|
||||
|
||||
|
||||
Button datadoorcontroltimebutton = (Button) findViewById(R.id.datadoorcontroltimebutton);
|
||||
datadoorcontroltimebutton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(MgtSystemSettingsActivity.this, DoorControlTimeActivity.class);
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Button biometricsmenubutton = (Button) findViewById(R.id.biometricsmenubutton);
|
||||
biometricsmenubutton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
@ -351,6 +363,30 @@ public class MgtSystemSettingsActivity extends BaseActivity implements RfidManag
|
||||
});
|
||||
|
||||
|
||||
|
||||
ImageView systemattendanceimage = (ImageView) findViewById(R.id.systemattendanceimage);
|
||||
systemattendanceimage.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(GlobalInfo.mUseAttendance == 0) {
|
||||
systemattendanceimage.setImageResource(R.drawable.toggle_pressed);
|
||||
GlobalInfo.mUseAttendance = 1;
|
||||
}
|
||||
else {
|
||||
GlobalInfo.mUseAttendance = 0;
|
||||
systemattendanceimage.setImageResource(R.drawable.toggle_nor);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(GlobalInfo.mUseAttendance == 0) {
|
||||
systemattendanceimage.setImageResource(R.drawable.toggle_nor);
|
||||
} else {
|
||||
systemattendanceimage.setImageResource(R.drawable.toggle_pressed);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ImageView systemautorebootuseimage = (ImageView) findViewById(R.id.systemautorebootuseimage);
|
||||
systemautorebootuseimage.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
|
@ -24,13 +24,21 @@ import android.view.WindowManager;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import kr.co.enicom.acs.Base64Util;
|
||||
import kr.co.enicom.acs.BaseActivity;
|
||||
import kr.co.enicom.acs.BaseService;
|
||||
@ -45,6 +53,7 @@ import kr.co.enicom.acs.system.LoginMenuActivity;
|
||||
import kr.co.enicom.acs.system.SettingsActivity;
|
||||
import kr.co.enicom.acs.UserInfo;
|
||||
import kr.co.enicom.acs.VeinManager;
|
||||
import kr.co.enicom.acs.system.SystemUtil;
|
||||
import kr.co.rito.RitoUtil;
|
||||
|
||||
public class MgtUserInfoActivity extends BaseActivity implements RfidManager.resultNotify, VeinManager.resultNotify, FingerManager.resultNotify, FaceManager.resultNotify {
|
||||
@ -61,6 +70,10 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
private static int UPDATE_DATA_FINGER_CODE = (1 << 6);
|
||||
private static int UPDATE_DATA_FACE_CODE = (1 << 7);
|
||||
private Dialog mCognitionDialog = null;
|
||||
private int mUpdateIndex = 0; // RFID1,2 또는 지정맥 1,2 지정
|
||||
|
||||
private int mBioDualMode = 0;
|
||||
private int mRfidDualMode = 0;
|
||||
|
||||
LinearLayout mLinearLayout= null;
|
||||
InputMethodManager mImm = null;
|
||||
@ -115,27 +128,74 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
button.performClick();
|
||||
}
|
||||
|
||||
if(info.mRFIDCode.length() > 0 && info.mRFIDCode2.length() > 0) {
|
||||
mRfidDualMode = 1;
|
||||
TextView view = (TextView) findViewById(R.id.textViewRfid1Value);
|
||||
if (view != null && info.mRFIDCode != null) {
|
||||
view.setText(info.mRFIDCode);
|
||||
}
|
||||
view = (TextView) findViewById(R.id.textViewRfid2Value);
|
||||
if (view != null && info.mRFIDCode2 != null) {
|
||||
view.setText(info.mRFIDCode2);
|
||||
}
|
||||
} else {
|
||||
TextView view = (TextView) findViewById(R.id.textViewRfidValue);
|
||||
if (view != null && info.mRFIDCode != null) {
|
||||
view.setText(info.mRFIDCode);
|
||||
}
|
||||
}
|
||||
|
||||
view = (TextView)findViewById(R.id.textViewVeinValue);
|
||||
if(info.mVeinTemplate.length() > 0 && info.mVeinTemplate2.length() > 0) {
|
||||
mBioDualMode = 1;
|
||||
TextView view = (TextView) findViewById(R.id.textViewVein1Value);
|
||||
if (view != null && info.mVeinTemplate != null) {
|
||||
view.setText(info.mVeinTemplate);
|
||||
}
|
||||
|
||||
view = (TextView) findViewById(R.id.textViewVein2Value);
|
||||
if (view != null && info.mVeinTemplate2 != null) {
|
||||
view.setText(info.mVeinTemplate2);
|
||||
}
|
||||
} else {
|
||||
TextView view = (TextView) findViewById(R.id.textViewVeinValue);
|
||||
if (view != null && info.mVeinTemplate != null) {
|
||||
view.setText(info.mVeinTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
view = (TextView)findViewById(R.id.textViewFingerValue);
|
||||
if(info.mFingerTemplate.length() > 0 && info.mFingerTemplate2.length() > 0) {
|
||||
mBioDualMode = 1;
|
||||
TextView view = (TextView) findViewById(R.id.textViewFinger1Value);
|
||||
if (view != null && info.mFingerTemplate != null) {
|
||||
view.setText(info.mFingerTemplate);
|
||||
}
|
||||
|
||||
view = (TextView)findViewById(R.id.textViewFaceValue);
|
||||
view = (TextView) findViewById(R.id.textViewFinger2Value);
|
||||
if (view != null && info.mFingerTemplate2 != null) {
|
||||
view.setText(info.mFingerTemplate2);
|
||||
}
|
||||
} else {
|
||||
TextView view = (TextView) findViewById(R.id.textViewFingerValue);
|
||||
if (view != null && info.mFingerTemplate != null) {
|
||||
view.setText(info.mFingerTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
TextView view = (TextView)findViewById(R.id.textViewFaceValue);
|
||||
if (view != null && info.mFaceTemplate != null) {
|
||||
String faceTemplate = byteArrayToHexString(info.mFaceTemplate);
|
||||
view.setText(faceTemplate);
|
||||
}
|
||||
|
||||
view = (TextView)findViewById(R.id.textViewPermitDateValue);
|
||||
if (view != null && info.mPermitDate != null) {
|
||||
view.setText(info.mPermitDate);
|
||||
}
|
||||
|
||||
view = (TextView)findViewById(R.id.textViewPermitTimeValue);
|
||||
if (view != null && info.mPermitTime != null) {
|
||||
view.setText(info.mPermitTime);
|
||||
}
|
||||
}
|
||||
|
||||
LinearLayout layoutVein = (LinearLayout)findViewById(R.id.layoutVein);
|
||||
@ -157,46 +217,712 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
layoutFinger.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
updateMenuListVisibility();
|
||||
|
||||
|
||||
mDateText = findViewById(R.id.textViewPermitDateValue);
|
||||
mTimeText = findViewById(R.id.textViewPermitTimeValue);
|
||||
|
||||
|
||||
/*
|
||||
RFID UI 처리
|
||||
*/
|
||||
Button button = (Button) findViewById(R.id.buttonSetRfid) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetRfid1) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetRfid2) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 1;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
|
||||
ImageButton imgButton = (ImageButton) findViewById(R.id.buttonDeleteRfid1);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewRfid2Value);
|
||||
TextView tv2 = findViewById(R.id.textViewRfidValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewRfid2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mRfidDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonDeleteRfid2);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewRfid1Value);
|
||||
TextView tv2 = findViewById(R.id.textViewRfidValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewRfid2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mRfidDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonAddRfid);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewRfidValue);
|
||||
TextView tv2 = findViewById(R.id.textViewRfid1Value);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewRfid2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mRfidDualMode = 1;
|
||||
updateMenuListVisibility();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
지정맥 UI 처리
|
||||
*/
|
||||
button = (Button) findViewById(R.id.buttonSetVein) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_VEIN);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetVein1) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_VEIN);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetVein2) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 1;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_VEIN);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonDeleteVein1);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewVein2Value);
|
||||
TextView tv2 = findViewById(R.id.textViewVeinValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewVein2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mBioDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonDeleteVein2);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewVein1Value);
|
||||
TextView tv2 = findViewById(R.id.textViewVeinValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewVein2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mBioDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonAddVein);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewVeinValue);
|
||||
TextView tv2 = findViewById(R.id.textViewVein1Value);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewVein2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mBioDualMode = 1;
|
||||
updateMenuListVisibility();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
지문 UI 처리
|
||||
*/
|
||||
button = (Button) findViewById(R.id.buttonSetFinger) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_FINGER_PRINT);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetFinger1) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_FINGER_PRINT);
|
||||
}
|
||||
});
|
||||
button = (Button) findViewById(R.id.buttonSetFinger2) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 1;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_FINGER_PRINT);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonDeleteFinger1);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewFinger2Value);
|
||||
TextView tv2 = findViewById(R.id.textViewFingerValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
mBioDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonDeleteFinger2);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewFinger1Value);
|
||||
TextView tv2 = findViewById(R.id.textViewFingerValue);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
mBioDualMode = 0;
|
||||
updateMenuListVisibility();
|
||||
//showRegistVerifyTemplate(GlobalInfo.VERIFY_METHOD_RFID);
|
||||
}
|
||||
});
|
||||
imgButton = (ImageButton) findViewById(R.id.buttonAddFinger);
|
||||
imgButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
TextView tv1 = findViewById(R.id.textViewFingerValue);
|
||||
TextView tv2 = findViewById(R.id.textViewFinger1Value);
|
||||
tv2.setText(tv1.getText());
|
||||
|
||||
tv1 = findViewById(R.id.textViewFinger2Value);
|
||||
tv1.setText("");
|
||||
|
||||
mBioDualMode = 1;
|
||||
updateMenuListVisibility();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
button = (Button) findViewById(R.id.buttonSetFace);
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
mUpdateIndex = 0;
|
||||
cognitionPopup(GlobalInfo.VERIFY_METHOD_FACE);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
button = (Button) findViewById(R.id.buttonSetPermitDate);
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
permitDateDialog();
|
||||
}
|
||||
});
|
||||
|
||||
button = (Button) findViewById(R.id.buttonSetPermitTime);
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
numberPicker(1, null);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private final int DATE_POPUP = 0;
|
||||
private final int TIME_POPUP = 1;
|
||||
private TextView mDateText = null, mTimeText = null;
|
||||
private NumberPicker numberpickeryear = null, numberpickermonth = null, numberpickerday = null;
|
||||
private NumberPicker numberpickertime = null, numberpickerminute = null, numberpickertime2 = null, numberpickerminute2 = null;
|
||||
|
||||
private void setDividerColor(NumberPicker picker, int color){
|
||||
java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields();
|
||||
for(java.lang.reflect.Field pf : pickerFields){
|
||||
if(pf.getName().equals("mSelectionDivider")){
|
||||
pf.setAccessible(true);
|
||||
try{
|
||||
ColorDrawable colorDrawable = new ColorDrawable(color);
|
||||
pf.set(picker, colorDrawable);
|
||||
}catch(Exception e)
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectedTextColor(NumberPicker np) {
|
||||
final int count = np.getChildCount();
|
||||
for(int i = 0; i < count; i++){
|
||||
View child = np.getChildAt(i);
|
||||
if(child instanceof EditText){
|
||||
try{
|
||||
Field selectorWheelPaintField = np.getClass().getDeclaredField("mSelectorWheelPaint");
|
||||
selectorWheelPaintField.setAccessible(true);
|
||||
((EditText) child).setTextSize(42);
|
||||
((EditText) child).setTextColor(Color.parseColor("#333333"));
|
||||
np.performClick();
|
||||
}
|
||||
catch(NoSuchFieldException e){
|
||||
}
|
||||
catch(IllegalArgumentException e){
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void numberPicker(final int mode, final Dialog pdialog)
|
||||
{
|
||||
numberpickeryear = null;
|
||||
numberpickermonth = null;
|
||||
numberpickerday = null;
|
||||
numberpickertime = null;
|
||||
numberpickerminute = null;
|
||||
numberpickertime2 = null;
|
||||
numberpickerminute2 = null;
|
||||
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
if(mode == DATE_POPUP)
|
||||
dialog.setContentView(R.layout.date_yyyymmdd_dialog);
|
||||
else
|
||||
dialog.setContentView(R.layout.date_hhmm_hhmm_dialog);
|
||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
|
||||
Button buttonConfirm = (Button) dialog.findViewById(R.id.buttonConfirm);
|
||||
Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
|
||||
|
||||
Date currentTime = Calendar.getInstance().getTime();
|
||||
SimpleDateFormat dayFormat = new SimpleDateFormat("dd", Locale.getDefault());
|
||||
SimpleDateFormat monthFormat = new SimpleDateFormat("MM", Locale.getDefault());
|
||||
SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy", Locale.getDefault());
|
||||
SimpleDateFormat timeFormat = new SimpleDateFormat("HH", Locale.getDefault());
|
||||
SimpleDateFormat minuteFormat = new SimpleDateFormat("mm", Locale.getDefault());
|
||||
|
||||
String year = yearFormat.format(currentTime);
|
||||
String month = monthFormat.format(currentTime);
|
||||
String day = dayFormat.format(currentTime);
|
||||
String time = timeFormat.format(currentTime);
|
||||
String minute = minuteFormat.format(currentTime);
|
||||
|
||||
Calendar maxday = Calendar.getInstance();
|
||||
maxday.set(Integer.valueOf(year),Integer.valueOf(month) -1,1);
|
||||
|
||||
if(mode == DATE_POPUP) {
|
||||
numberpickeryear = (NumberPicker) dialog.findViewById(R.id.numberpickeryear);
|
||||
numberpickermonth = (NumberPicker) dialog.findViewById(R.id.numberpickermonth);
|
||||
numberpickerday = (NumberPicker) dialog.findViewById(R.id.numberpickerday);
|
||||
|
||||
numberpickeryear.setMinValue(Integer.valueOf(year) - 1);
|
||||
numberpickeryear.setMaxValue(Integer.valueOf(year) + 50);
|
||||
numberpickeryear.setValue(Integer.valueOf(year));
|
||||
numberpickeryear.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickermonth.setMinValue(1);
|
||||
numberpickermonth.setMaxValue(12);
|
||||
numberpickermonth.setValue(Integer.valueOf(month));
|
||||
numberpickermonth.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickerday.setMinValue(1);
|
||||
numberpickerday.setMaxValue(maxday.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
numberpickerday.setValue(Integer.valueOf(day));
|
||||
numberpickerday.setWrapSelectorWheel(false);
|
||||
|
||||
|
||||
numberpickeryear.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickeryear, android.R.color.white);
|
||||
setSelectedTextColor(numberpickeryear);
|
||||
numberpickeryear.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickermonth.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickermonth, android.R.color.white);
|
||||
setSelectedTextColor(numberpickermonth);
|
||||
numberpickermonth.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickermonth.setOnScrollListener(new NumberPicker.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChange(NumberPicker view, int scrollState) {
|
||||
NumberPicker picker = view;
|
||||
if (scrollState == SCROLL_STATE_IDLE) {
|
||||
|
||||
Calendar maxday = Calendar.getInstance();
|
||||
maxday.set(Integer.valueOf(year), Integer.valueOf(picker.getValue()) - 1, 1);
|
||||
|
||||
numberpickerday.setMinValue(1);
|
||||
numberpickerday.setMaxValue(maxday.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
numberpickerday.setValue(Integer.valueOf(day));
|
||||
numberpickerday.setWrapSelectorWheel(false);
|
||||
numberpickerday.invalidate();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
numberpickerday.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerday, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerday);
|
||||
numberpickerday.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}else {
|
||||
numberpickertime = (NumberPicker) dialog.findViewById(R.id.numberpickerhour);
|
||||
numberpickerminute = (NumberPicker) dialog.findViewById(R.id.numberpickerminute);
|
||||
numberpickertime2 = (NumberPicker) dialog.findViewById(R.id.numberpickerhour2);
|
||||
numberpickerminute2 = (NumberPicker) dialog.findViewById(R.id.numberpickerminute2);
|
||||
|
||||
String[] hourValues = new String[24];
|
||||
String[] minuteValues = new String[60];
|
||||
for(int i = 0;i < 24;i++) {
|
||||
hourValues[i] = String.format("%02d", i);
|
||||
}
|
||||
for(int i = 0;i < 60;i++) {
|
||||
minuteValues[i] = String.format("%02d", i);
|
||||
}
|
||||
|
||||
numberpickertime.setMinValue(0);
|
||||
numberpickertime.setMaxValue(23);
|
||||
numberpickertime.setValue(9);
|
||||
numberpickertime.setDisplayedValues(hourValues);
|
||||
numberpickertime.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickerminute.setMinValue(0);
|
||||
numberpickerminute.setMaxValue(59);
|
||||
numberpickerminute.setValue(0);
|
||||
numberpickerminute.setDisplayedValues(minuteValues);
|
||||
numberpickerminute.setWrapSelectorWheel(false);
|
||||
|
||||
|
||||
numberpickertime2.setMinValue(0);
|
||||
numberpickertime2.setMaxValue(23);
|
||||
numberpickertime2.setValue(18);
|
||||
numberpickertime2.setDisplayedValues(hourValues);
|
||||
numberpickertime2.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickerminute2.setMinValue(0);
|
||||
numberpickerminute2.setMaxValue(59);
|
||||
numberpickerminute2.setValue(0);
|
||||
numberpickerminute2.setDisplayedValues(minuteValues);
|
||||
numberpickerminute2.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickertime.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickertime, android.R.color.white);
|
||||
setSelectedTextColor(numberpickertime);
|
||||
|
||||
numberpickertime2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickertime2, android.R.color.white);
|
||||
setSelectedTextColor(numberpickertime2);
|
||||
|
||||
numberpickertime.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickertime2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickerminute.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerminute, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerminute);
|
||||
numberpickerminute.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
numberpickerminute2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerminute2, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerminute2);
|
||||
numberpickerminute2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
buttonConfirm.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try{
|
||||
if(mode == 0) {
|
||||
TextView editstartdate = (TextView) pdialog.findViewById(R.id.editstartdate);
|
||||
TextView editenddate = (TextView) pdialog.findViewById(R.id.editenddate);
|
||||
|
||||
//mDateText.setText(String.format("%04d-%02d-%02d", numberpickeryear.getValue(), numberpickermonth.getValue(), numberpickerday.getValue()));
|
||||
if(mPickerTarget.equals("s")) {
|
||||
mStartDate = String.format("%04d-%02d-%02d", numberpickeryear.getValue(), numberpickermonth.getValue(), numberpickerday.getValue());
|
||||
editstartdate.setText(mStartDate);
|
||||
} else if(mPickerTarget.equals("e")) {
|
||||
mEndDate = String.format("%04d-%02d-%02d", numberpickeryear.getValue(), numberpickermonth.getValue(), numberpickerday.getValue());
|
||||
editenddate.setText(mEndDate);
|
||||
}
|
||||
|
||||
dialog.dismiss();
|
||||
} else {
|
||||
if(numberpickertime.getValue() * 60 + numberpickerminute.getValue() >= numberpickertime2.getValue() * 60 + numberpickerminute2.getValue()) {
|
||||
Toast.makeText(MgtUserInfoActivity.this, "종료시간이 더 커야 합니다.", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
mTimeText.setText(String.format("%02d:%02d ~ %02d:%02d",
|
||||
numberpickertime.getValue(), numberpickerminute.getValue(), numberpickertime2.getValue(), numberpickerminute2.getValue()));
|
||||
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
}catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
buttonCancel.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
}
|
||||
|
||||
private String mStartDate = "";
|
||||
private String mEndDate = "";
|
||||
private String mPickerTarget = "";
|
||||
private void permitDateDialog() {
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.setContentView(R.layout.date_range_dialog);
|
||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
TextView editstartdate = (TextView) dialog.findViewById(R.id.editstartdate);
|
||||
TextView editenddate = (TextView) dialog.findViewById(R.id.editenddate);
|
||||
Button editstartdatebutton = (Button) dialog.findViewById(R.id.editstartdatebutton);
|
||||
Button editenddatebutton = (Button) dialog.findViewById(R.id.editenddatebutton);
|
||||
|
||||
editstartdatebutton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
//numberPicker(menu, 0, editstartdate.getText().toString());
|
||||
mPickerTarget = "s";
|
||||
numberPicker(0, dialog);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
editenddatebutton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
//numberPicker(menu, 1, editenddate.getText().toString());
|
||||
mPickerTarget = "e";
|
||||
numberPicker(0, dialog);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
|
||||
Date currentTime = Calendar.getInstance().getTime();
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.add(Calendar.MONTH, -1);
|
||||
|
||||
String startdate = dayFormat.format(cal.getTime());
|
||||
String enddate = dayFormat.format(currentTime);
|
||||
editstartdate.setText(startdate);
|
||||
editenddate.setText(enddate);
|
||||
|
||||
if (mStartDate.length() > 0)
|
||||
editstartdate.setText(mStartDate);
|
||||
if (mEndDate.length() > 0)
|
||||
editenddate.setText(mEndDate);
|
||||
|
||||
Button buttonConfirm = (Button) dialog.findViewById(R.id.buttonConfirm);
|
||||
Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
|
||||
|
||||
buttonConfirm.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mStartDate = editstartdate.getText().toString();
|
||||
mEndDate = editenddate.getText().toString();
|
||||
mDateText.setText(mStartDate + " ~ " + mEndDate);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
buttonCancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void updateMenuListVisibility() {
|
||||
if(mRfidDualMode == 1) {
|
||||
findViewById(R.id.layoutRfid).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutRfid1).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutRfid2).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.layoutRfid).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutRfid1).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutRfid2).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_VEIN) || GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_VEIN_FACE)) {
|
||||
findViewById(R.id.layoutFinger).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutFinger1).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutFinger2).setVisibility(View.GONE);
|
||||
|
||||
if(mBioDualMode == 1) {
|
||||
findViewById(R.id.layoutVein).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutVein1).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutVein2).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.layoutVein).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutVein1).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutVein2).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
else if(GlobalInfo.isActivatedMethod(VERIFY_METHOD_FINGER_PRINT) || GlobalInfo.isActivatedMethod(VERIFY_METHOD_FINGER_FACE)) {
|
||||
findViewById(R.id.layoutVein).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutVein1).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutVein2).setVisibility(View.GONE);
|
||||
|
||||
if(mBioDualMode == 1) {
|
||||
findViewById(R.id.layoutFinger).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutFinger1).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutFinger2).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.layoutFinger).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.layoutFinger1).setVisibility(View.GONE);
|
||||
findViewById(R.id.layoutFinger2).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
findViewById(R.id.scrollView).postInvalidate();
|
||||
}
|
||||
|
||||
private void menuKeySetting()
|
||||
{
|
||||
mIsIntent = false;
|
||||
@ -474,34 +1200,66 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
if(edit.getText().toString().length() > 0)
|
||||
info.mPassword = edit.getText().toString();
|
||||
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfidValue);
|
||||
if(mRfidDualMode == 1) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfid1Value);
|
||||
if (text.getText().toString().length() > 0)
|
||||
info.mRFIDCode = text.getText().toString();
|
||||
|
||||
text = (TextView) findViewById(R.id.textViewVeinValue);
|
||||
text = (TextView) findViewById(R.id.textViewRfid2Value);
|
||||
if (text.getText().toString().length() > 0)
|
||||
info.mRFIDCode2 = text.getText().toString();
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfidValue);
|
||||
if (text.getText().toString().length() > 0)
|
||||
info.mRFIDCode = text.getText().toString();
|
||||
}
|
||||
|
||||
if(mBioDualMode == 1) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewVein1Value);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mVeinTemplate = text.getText().toString();
|
||||
// if(GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_VEIN) || GlobalInfo.isActivatedMethod(VERIFY_METHOD_VEIN_FACE)) {
|
||||
// info.mVeinTemplate = text.getText().toString();
|
||||
// } else if(GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_FINGER_PRINT) || GlobalInfo.isActivatedMethod(VERIFY_METHOD_FINGER_FACE)) {
|
||||
// info.mFingerTemplate = text.getText().toString();
|
||||
// }
|
||||
}
|
||||
|
||||
text = (TextView) findViewById(R.id.textViewFingerValue);
|
||||
text = (TextView) findViewById(R.id.textViewVein2Value);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mVeinTemplate2 = text.getText().toString();
|
||||
}
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewVeinValue);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mVeinTemplate = text.getText().toString();
|
||||
}
|
||||
}
|
||||
|
||||
if(mBioDualMode == 1) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewFinger1Value);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mFingerTemplate = text.getText().toString();
|
||||
// if(GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_VEIN) || GlobalInfo.isActivatedMethod(VERIFY_METHOD_VEIN_FACE)) {
|
||||
// info.mVeinTemplate = text.getText().toString();
|
||||
// } else if(GlobalInfo.isActivatedMethod(GlobalInfo.VERIFY_METHOD_FINGER_PRINT) || GlobalInfo.isActivatedMethod(VERIFY_METHOD_FINGER_FACE)) {
|
||||
// info.mFingerTemplate = text.getText().toString();
|
||||
// }
|
||||
}
|
||||
|
||||
text = (TextView) findViewById(R.id.textViewFaceValue);
|
||||
text = (TextView) findViewById(R.id.textViewFinger2Value);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mFingerTemplate2 = text.getText().toString();
|
||||
}
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewFingerValue);
|
||||
if (text.getText().toString().length() > 0) {
|
||||
info.mFingerTemplate = text.getText().toString();
|
||||
}
|
||||
}
|
||||
|
||||
TextView text = (TextView) findViewById(R.id.textViewFaceValue);
|
||||
if(text.getText().toString().length() > 0)
|
||||
info.mFaceTemplate = FaceManager.hexToByteArray(text.getText().toString().trim());
|
||||
|
||||
text = (TextView) findViewById(R.id.textViewPermitDateValue);
|
||||
if(text.getText().toString().length() > 0)
|
||||
info.mPermitDate = text.getText().toString().trim();
|
||||
|
||||
text = (TextView) findViewById(R.id.textViewPermitTimeValue);
|
||||
if(text.getText().toString().length() > 0)
|
||||
info.mPermitTime = text.getText().toString().trim();
|
||||
|
||||
int authority = -1;
|
||||
RadioButton button = (RadioButton)findViewById(R.id.radioButtonAdmin);
|
||||
if(button.isChecked())
|
||||
@ -895,9 +1653,19 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(mRfidDualMode == 1) {
|
||||
if(mUpdateIndex == 0) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfid1Value);
|
||||
text.setText(value);
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfid2Value);
|
||||
text.setText(value);
|
||||
}
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewRfidValue);
|
||||
text.setText(value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(mCognitionDialog != null) {
|
||||
@ -927,8 +1695,18 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
// }
|
||||
|
||||
if(status.equals("enroll_success")) {
|
||||
if(mBioDualMode == 1) {
|
||||
if(mUpdateIndex == 0) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewVein1Value);
|
||||
text.setText(value);
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewVein2Value);
|
||||
text.setText(value);
|
||||
}
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewVeinValue);
|
||||
text.setText(value);
|
||||
}
|
||||
|
||||
if(mCognitionDialog != null) {
|
||||
mCognitionDialog.dismiss();
|
||||
@ -982,10 +1760,18 @@ public class MgtUserInfoActivity extends BaseActivity implements RfidManager.re
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(mBioDualMode == 1) {
|
||||
if(mUpdateIndex == 0) {
|
||||
TextView text = (TextView) findViewById(R.id.textViewFinger1Value);
|
||||
text.setText(value);
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewFinger2Value);
|
||||
text.setText(value);
|
||||
}
|
||||
} else {
|
||||
TextView text = (TextView) findViewById(R.id.textViewFingerValue);
|
||||
//TextView text = (TextView) findViewById(R.id.textViewVeinValue);
|
||||
text.setText(fingerCode);
|
||||
//text.setText("1234567890");
|
||||
}
|
||||
|
||||
if(mCognitionDialog != null) {
|
||||
mCognitionDialog.dismiss();
|
||||
|
@ -70,6 +70,16 @@ public class DeviceSettingActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
|
||||
Button deviceidreset = (Button) findViewById(R.id.deviceidreset);
|
||||
deviceidreset.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
popupDialog(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void menuKeySetting()
|
||||
@ -106,6 +116,59 @@ public class DeviceSettingActivity extends BaseActivity {
|
||||
});
|
||||
}
|
||||
|
||||
private void popupDialog(final int mode)
|
||||
{
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
dialog.setContentView(R.layout.delete_dialog);
|
||||
|
||||
TextView textview = (TextView) dialog.findViewById(R.id.dialogtext);
|
||||
Button buttonConfirm = (Button) dialog.findViewById(R.id.buttonConfirm);
|
||||
Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
|
||||
|
||||
if (mode == 0) {
|
||||
textview.setText(R.string.mgt_reset);
|
||||
textview.setVisibility(View.VISIBLE);
|
||||
buttonConfirm.setText(R.string.dialog_ok);
|
||||
buttonConfirm.setTextColor(Color.parseColor("#00816D"));
|
||||
} else if (mode == 1) {
|
||||
textview.setText(R.string.mgt_save);
|
||||
textview.setVisibility(View.VISIBLE);
|
||||
buttonConfirm.setText(R.string.dialog_save);
|
||||
buttonConfirm.setTextColor(Color.parseColor("#00816D"));
|
||||
}
|
||||
|
||||
buttonConfirm.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
if (mode == 0) {
|
||||
mDeviceIdText.setText("");
|
||||
mDeviceNameText.setText("");
|
||||
|
||||
GlobalInfo.mDeviceId = "";
|
||||
GlobalInfo.mDeviceName = "";
|
||||
GlobalInfo.updateDatabase(GlobalInfo.TARGET_FLAG_DEVICE_INFO);
|
||||
} else if (mode == 1) {
|
||||
|
||||
}
|
||||
}catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
});
|
||||
buttonCancel.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
private void systemPopup(final int mode)
|
||||
{
|
||||
|
@ -0,0 +1,441 @@
|
||||
package kr.co.enicom.acs.system;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import kr.co.enicom.acs.BaseActivity;
|
||||
import kr.co.enicom.acs.GlobalInfo;
|
||||
import kr.co.enicom.acs.MainActivity;
|
||||
import kr.co.enicom.acs.R;
|
||||
import kr.co.enicom.acs.manage.MgtSystemSettingsActivity;
|
||||
import kr.co.enicom.acs.manage.MgtUserInfoActivity;
|
||||
|
||||
public class DoorControlTimeActivity extends BaseActivity {
|
||||
|
||||
private ImageView mMenuKey[] = null;
|
||||
|
||||
private final int DEVICE_ID_POPUP = 0;
|
||||
private final int DEVICE_NAME_POPUP = 1;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_door_control_time);
|
||||
|
||||
menuKeySetting();
|
||||
|
||||
mTimeText = findViewById(R.id.doorcontroltimesettext);
|
||||
|
||||
ImageView doorcontroltimeuseimage = (ImageView) findViewById(R.id.doorcontroltimeuseimage);
|
||||
doorcontroltimeuseimage.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(GlobalInfo.mUseDoorControlTime == 0) {
|
||||
doorcontroltimeuseimage.setImageResource(R.drawable.toggle_pressed);
|
||||
GlobalInfo.mUseDoorControlTime = 1;
|
||||
}
|
||||
else {
|
||||
GlobalInfo.mUseDoorControlTime = 0;
|
||||
doorcontroltimeuseimage.setImageResource(R.drawable.toggle_nor);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(GlobalInfo.mUseDoorControlTime == 0) {
|
||||
doorcontroltimeuseimage.setImageResource(R.drawable.toggle_nor);
|
||||
} else {
|
||||
doorcontroltimeuseimage.setImageResource(R.drawable.toggle_pressed);
|
||||
}
|
||||
|
||||
|
||||
Button button = (Button) findViewById(R.id.doorcontroltimesetimagebutton) ;
|
||||
button.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// TODO : click event
|
||||
numberPicker(1);
|
||||
}
|
||||
});
|
||||
|
||||
updateTimeTextFromGlobal();
|
||||
}
|
||||
|
||||
private void menuKeySetting()
|
||||
{
|
||||
mMenuKey = new ImageView[2];
|
||||
mMenuKey[0] = (ImageView) findViewById(R.id.logincard_title_back) ;
|
||||
mMenuKey[0].setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
if(!mIsIntent) {
|
||||
mIsIntent = true;
|
||||
Intent intent = new Intent(getApplicationContext(), MgtSystemSettingsActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
mMenuKey[1] = (ImageView) findViewById(R.id.logincard_title_home) ;
|
||||
mMenuKey[1].setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
if(!mIsIntent) {
|
||||
mIsIntent = true;
|
||||
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private final int DATE_POPUP = 0;
|
||||
private final int TIME_POPUP = 1;
|
||||
private TextView mTimeText = null;
|
||||
private NumberPicker numberpickeryear = null, numberpickermonth = null, numberpickerday = null;
|
||||
private NumberPicker numberpickertime = null, numberpickerminute = null, numberpickertime2 = null, numberpickerminute2 = null;
|
||||
|
||||
private void setDividerColor(NumberPicker picker, int color){
|
||||
java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields();
|
||||
for(java.lang.reflect.Field pf : pickerFields){
|
||||
if(pf.getName().equals("mSelectionDivider")){
|
||||
pf.setAccessible(true);
|
||||
try{
|
||||
ColorDrawable colorDrawable = new ColorDrawable(color);
|
||||
pf.set(picker, colorDrawable);
|
||||
}catch(Exception e)
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectedTextColor(NumberPicker np) {
|
||||
final int count = np.getChildCount();
|
||||
for(int i = 0; i < count; i++){
|
||||
View child = np.getChildAt(i);
|
||||
if(child instanceof EditText){
|
||||
try{
|
||||
Field selectorWheelPaintField = np.getClass().getDeclaredField("mSelectorWheelPaint");
|
||||
selectorWheelPaintField.setAccessible(true);
|
||||
((EditText) child).setTextSize(42);
|
||||
((EditText) child).setTextColor(Color.parseColor("#333333"));
|
||||
np.performClick();
|
||||
}
|
||||
catch(NoSuchFieldException e){
|
||||
}
|
||||
catch(IllegalArgumentException e){
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void numberPicker(final int mode)
|
||||
{
|
||||
numberpickeryear = null;
|
||||
numberpickermonth = null;
|
||||
numberpickerday = null;
|
||||
numberpickertime = null;
|
||||
numberpickerminute = null;
|
||||
numberpickertime2 = null;
|
||||
numberpickerminute2 = null;
|
||||
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
if(mode == DATE_POPUP)
|
||||
dialog.setContentView(R.layout.date_yyyymmdd_dialog);
|
||||
else
|
||||
dialog.setContentView(R.layout.date_hhmm_hhmm_dialog);
|
||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
|
||||
Button buttonConfirm = (Button) dialog.findViewById(R.id.buttonConfirm);
|
||||
Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
|
||||
|
||||
Date currentTime = Calendar.getInstance().getTime();
|
||||
SimpleDateFormat dayFormat = new SimpleDateFormat("dd", Locale.getDefault());
|
||||
SimpleDateFormat monthFormat = new SimpleDateFormat("MM", Locale.getDefault());
|
||||
SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy", Locale.getDefault());
|
||||
SimpleDateFormat timeFormat = new SimpleDateFormat("HH", Locale.getDefault());
|
||||
SimpleDateFormat minuteFormat = new SimpleDateFormat("mm", Locale.getDefault());
|
||||
|
||||
String year = yearFormat.format(currentTime);
|
||||
String month = monthFormat.format(currentTime);
|
||||
String day = dayFormat.format(currentTime);
|
||||
String time = timeFormat.format(currentTime);
|
||||
String minute = minuteFormat.format(currentTime);
|
||||
|
||||
Calendar maxday = Calendar.getInstance();
|
||||
maxday.set(Integer.valueOf(year),Integer.valueOf(month) -1,1);
|
||||
|
||||
if(mode == DATE_POPUP) {
|
||||
numberpickeryear = (NumberPicker) dialog.findViewById(R.id.numberpickeryear);
|
||||
numberpickermonth = (NumberPicker) dialog.findViewById(R.id.numberpickermonth);
|
||||
numberpickerday = (NumberPicker) dialog.findViewById(R.id.numberpickerday);
|
||||
|
||||
numberpickeryear.setMinValue(Integer.valueOf(year) - 1);
|
||||
numberpickeryear.setMaxValue(Integer.valueOf(year) + 50);
|
||||
numberpickeryear.setValue(Integer.valueOf(year));
|
||||
numberpickeryear.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickermonth.setMinValue(1);
|
||||
numberpickermonth.setMaxValue(12);
|
||||
numberpickermonth.setValue(Integer.valueOf(month));
|
||||
numberpickermonth.setWrapSelectorWheel(false);
|
||||
|
||||
numberpickerday.setMinValue(1);
|
||||
numberpickerday.setMaxValue(maxday.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
numberpickerday.setValue(Integer.valueOf(day));
|
||||
numberpickerday.setWrapSelectorWheel(false);
|
||||
|
||||
|
||||
numberpickeryear.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickeryear, android.R.color.white);
|
||||
setSelectedTextColor(numberpickeryear);
|
||||
numberpickeryear.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickermonth.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickermonth, android.R.color.white);
|
||||
setSelectedTextColor(numberpickermonth);
|
||||
numberpickermonth.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickermonth.setOnScrollListener(new NumberPicker.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChange(NumberPicker view, int scrollState) {
|
||||
NumberPicker picker = view;
|
||||
if (scrollState == SCROLL_STATE_IDLE) {
|
||||
|
||||
Calendar maxday = Calendar.getInstance();
|
||||
maxday.set(Integer.valueOf(year), Integer.valueOf(picker.getValue()) - 1, 1);
|
||||
|
||||
numberpickerday.setMinValue(1);
|
||||
numberpickerday.setMaxValue(maxday.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
numberpickerday.setValue(Integer.valueOf(day));
|
||||
numberpickerday.setWrapSelectorWheel(false);
|
||||
numberpickerday.invalidate();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
numberpickerday.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerday, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerday);
|
||||
numberpickerday.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}else {
|
||||
numberpickertime = (NumberPicker) dialog.findViewById(R.id.numberpickerhour);
|
||||
numberpickerminute = (NumberPicker) dialog.findViewById(R.id.numberpickerminute);
|
||||
numberpickertime2 = (NumberPicker) dialog.findViewById(R.id.numberpickerhour2);
|
||||
numberpickerminute2 = (NumberPicker) dialog.findViewById(R.id.numberpickerminute2);
|
||||
|
||||
String[] hourValues = new String[24];
|
||||
String[] minuteValues = new String[60];
|
||||
for(int i = 0;i < 24;i++) {
|
||||
hourValues[i] = String.format("%02d", i);
|
||||
}
|
||||
for(int i = 0;i < 60;i++) {
|
||||
minuteValues[i] = String.format("%02d", i);
|
||||
}
|
||||
|
||||
numberpickertime.setMinValue(0);
|
||||
numberpickertime.setMaxValue(23);
|
||||
//numberpickertime.setValue(Integer.valueOf(time));
|
||||
numberpickertime.setDisplayedValues(hourValues);
|
||||
numberpickertime.setWrapSelectorWheel(false);
|
||||
numberpickertime.setValue(GlobalInfo.mDoorControlTimeStart / 60);
|
||||
|
||||
numberpickerminute.setMinValue(0);
|
||||
numberpickerminute.setMaxValue(59);
|
||||
//numberpickerminute.setValue(Integer.valueOf(minute));
|
||||
numberpickerminute.setDisplayedValues(minuteValues);
|
||||
numberpickerminute.setWrapSelectorWheel(false);
|
||||
numberpickerminute.setValue(GlobalInfo.mDoorControlTimeStart % 60);
|
||||
|
||||
|
||||
numberpickertime2.setMinValue(0);
|
||||
numberpickertime2.setMaxValue(23);
|
||||
//numberpickertime2.setValue(Integer.valueOf(time));
|
||||
numberpickertime2.setDisplayedValues(hourValues);
|
||||
numberpickertime2.setWrapSelectorWheel(false);
|
||||
numberpickertime2.setValue(GlobalInfo.mDoorControlTimeEnd / 60);
|
||||
|
||||
numberpickerminute2.setMinValue(0);
|
||||
numberpickerminute2.setMaxValue(59);
|
||||
//numberpickerminute2.setValue(Integer.valueOf(minute));
|
||||
numberpickerminute2.setDisplayedValues(minuteValues);
|
||||
numberpickerminute2.setWrapSelectorWheel(false);
|
||||
numberpickerminute2.setValue(GlobalInfo.mDoorControlTimeEnd % 60);
|
||||
|
||||
numberpickertime.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickertime, android.R.color.white);
|
||||
setSelectedTextColor(numberpickertime);
|
||||
|
||||
numberpickertime2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickertime2, android.R.color.white);
|
||||
setSelectedTextColor(numberpickertime2);
|
||||
|
||||
numberpickertime.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickertime2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
numberpickerminute.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerminute, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerminute);
|
||||
numberpickerminute.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
numberpickerminute2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
|
||||
setDividerColor(numberpickerminute2, android.R.color.white);
|
||||
setSelectedTextColor(numberpickerminute2);
|
||||
numberpickerminute2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
setSelectedTextColor(picker);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
buttonConfirm.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try{
|
||||
if(mode == 0) {
|
||||
dialog.dismiss();
|
||||
} else {
|
||||
if(numberpickertime.getValue() * 60 + numberpickerminute.getValue() >= numberpickertime2.getValue() * 60 + numberpickerminute2.getValue()) {
|
||||
Toast.makeText(DoorControlTimeActivity.this, "종료시간이 더 커야 합니다.", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
GlobalInfo.mDoorControlTimeStart = numberpickertime.getValue() * 60 + numberpickerminute.getValue();
|
||||
GlobalInfo.mDoorControlTimeEnd = numberpickertime2.getValue() * 60 + numberpickerminute2.getValue();
|
||||
|
||||
// mTimeText.setText(String.format("%02d:%02d ~ %02d:%02d",
|
||||
// numberpickertime.getValue(), numberpickerminute.getValue(), numberpickertime2.getValue(), numberpickerminute2.getValue()));
|
||||
|
||||
updateTimeTextFromGlobal();
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
}catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
buttonCancel.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
}
|
||||
|
||||
void updateTimeTextFromGlobal() {
|
||||
mTimeText.setText(String.format("%02d:%02d ~ %02d:%02d",
|
||||
GlobalInfo.mDoorControlTimeStart / 60, GlobalInfo.mDoorControlTimeStart % 60, GlobalInfo.mDoorControlTimeEnd / 60, GlobalInfo.mDoorControlTimeEnd % 60));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
//checkVerify();
|
||||
//refresh();
|
||||
View decorView = getWindow().getDecorView();
|
||||
// Hide the status bar.
|
||||
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE;
|
||||
decorView.setSystemUiVisibility(uiOptions);
|
||||
|
||||
super.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
|
||||
GlobalInfo.updateDatabase(GlobalInfo.TARGET_FLAG_DEVICE_INFO);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void finish() {
|
||||
super.finish();
|
||||
|
||||
Intent intent = new Intent(DoorControlTimeActivity.this, MainActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
//intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
startActivity(intent);
|
||||
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
|
||||
}
|
||||
}
|
@ -155,6 +155,73 @@ public class ServerSettingActivity extends BaseActivity {
|
||||
doServerTest(GlobalInfo.mServerAddressSlave, GlobalInfo.mServerPortSlave);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Button serverreset = (Button) findViewById(R.id.serverreset);
|
||||
serverreset.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
popupDialog(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void popupDialog(final int mode)
|
||||
{
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
dialog.setContentView(R.layout.delete_dialog);
|
||||
|
||||
TextView textview = (TextView) dialog.findViewById(R.id.dialogtext);
|
||||
Button buttonConfirm = (Button) dialog.findViewById(R.id.buttonConfirm);
|
||||
Button buttonCancel = (Button) dialog.findViewById(R.id.buttonCancel);
|
||||
|
||||
if (mode == 0) {
|
||||
textview.setText(R.string.mgt_reset);
|
||||
textview.setVisibility(View.VISIBLE);
|
||||
buttonConfirm.setText(R.string.dialog_ok);
|
||||
buttonConfirm.setTextColor(Color.parseColor("#00816D"));
|
||||
} else if (mode == 1) {
|
||||
textview.setText(R.string.mgt_save);
|
||||
textview.setVisibility(View.VISIBLE);
|
||||
buttonConfirm.setText(R.string.dialog_save);
|
||||
buttonConfirm.setTextColor(Color.parseColor("#00816D"));
|
||||
}
|
||||
|
||||
buttonConfirm.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
if (mode == 0) {
|
||||
mServer1IpText.setText("");
|
||||
mServer1PostText.setText("");
|
||||
mServer2IpText.setText("");
|
||||
mServer2PostText.setText("");
|
||||
|
||||
GlobalInfo.mServerAddress = "";
|
||||
GlobalInfo.mServerPort = 0;
|
||||
GlobalInfo.mServerAddressSlave = "";
|
||||
GlobalInfo.mServerPortSlave = 0;
|
||||
GlobalInfo.updateDatabase(GlobalInfo.TARGET_FLAG_SERVER_INFO);
|
||||
} else if (mode == 1) {
|
||||
|
||||
}
|
||||
}catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
});
|
||||
buttonCancel.setOnClickListener(new View.OnClickListener(){
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
private void menuKeySetting()
|
||||
|
@ -28,3 +28,9 @@ target_link_libraries(ritoutil
|
||||
ncnn
|
||||
lib_opencv
|
||||
)
|
||||
|
||||
add_library(serialutil SHARED serial_jni.cpp)
|
||||
|
||||
target_include_directories(serialutil PRIVATE libyuv/include)
|
||||
|
||||
target_link_libraries(serialutil)
|
||||
|
@ -2544,3 +2544,7 @@ Java_kr_co_enicom_acs_Camera2APIs_ARGBScaleEx(
|
||||
return
|
||||
ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
app/src/main/res/drawable/add_btn_nor.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/add_btn_pressed.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/del_btn_nor.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/del_btn_pressed.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable/list_workin_icon.png
Normal file
After Width: | Height: | Size: 434 B |
BIN
app/src/main/res/drawable/list_workin_icon_resized.png
Normal file
After Width: | Height: | Size: 333 B |
19
app/src/main/res/drawable/panel_shape_door_control.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
|
||||
<corners
|
||||
android:radius="25px"
|
||||
/>
|
||||
<solid
|
||||
android:color="#66000000"
|
||||
/>
|
||||
<padding
|
||||
android:left="0dp"
|
||||
android:top="0dp"
|
||||
android:right="0dp"
|
||||
android:bottom="0dp"
|
||||
/>
|
||||
<size
|
||||
android:width="960px"
|
||||
android:height="412px"
|
||||
/>
|
||||
</shape>
|
6
app/src/main/res/drawable/workin_btn.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true"
|
||||
android:drawable="@drawable/workin_btn_pressed" /> <!-- pressed -->
|
||||
<item android:drawable="@drawable/workin_btn_nor" /> <!-- default -->
|
||||
</selector>
|
BIN
app/src/main/res/drawable/workin_btn_nor.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
app/src/main/res/drawable/workin_btn_pressed.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
app/src/main/res/drawable/workin_icon.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
6
app/src/main/res/drawable/workout_btn.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true"
|
||||
android:drawable="@drawable/worout_btn_pressed" /> <!-- pressed -->
|
||||
<item android:drawable="@drawable/worout_btn_nor" /> <!-- default -->
|
||||
</selector>
|
BIN
app/src/main/res/drawable/workout_icon.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
app/src/main/res/drawable/worout_btn_nor.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
app/src/main/res/drawable/worout_btn_pressed.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
app/src/main/res/font/pretendardsemibold.ttf
Normal file
@ -144,6 +144,41 @@
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<TextView
|
||||
android:layout_width="400px"
|
||||
android:layout_height="150px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="29px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_device_id_reset_text"
|
||||
android:textColor="#117ef8"
|
||||
android:textSize="42px" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="386px"
|
||||
android:layout_height="144px"
|
||||
android:layout_marginStart="778px"
|
||||
android:layout_marginTop="29px"
|
||||
android:textAlignment="viewEnd"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:textColor="#666666"
|
||||
android:textSize="42px" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/deviceidreset"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
150
app/src/main/res/layout/activity_door_control_time.xml
Normal file
@ -0,0 +1,150 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".system.ServerSettingActivity">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/frameLayout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/title_bar"
|
||||
app:layout_constraintEnd_toEndOf="@+id/frameLayout2"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/logincard_title_back"
|
||||
android:layout_width="43px"
|
||||
android:layout_height="45px"
|
||||
android:layout_marginStart="44px"
|
||||
android:layout_marginTop="28px"
|
||||
app:srcCompat="@drawable/title_back_icon" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/logincard_title_home"
|
||||
android:layout_width="61px"
|
||||
android:layout_height="50px"
|
||||
android:layout_marginStart="140px"
|
||||
android:layout_marginTop="25px"
|
||||
app:srcCompat="@drawable/title_home_icon" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_menu"
|
||||
android:layout_width="280px"
|
||||
android:layout_height="55px"
|
||||
android:layout_marginStart="528px"
|
||||
android:layout_marginTop="20px"
|
||||
android:alpha="1"
|
||||
android:fontFamily="@font/nanumbarungothicbold"
|
||||
android:text="@string/mgt_system_door_control_time_text"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="48px"
|
||||
android:textStyle="bold" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/frameLayout2"
|
||||
android:layout_width="1280px"
|
||||
android:layout_height="626px"
|
||||
android:layout_marginTop="94px"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/frameLayout">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<TextView
|
||||
android:layout_width="400px"
|
||||
android:layout_height="150px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="29px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_door_control_time_use_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/deviceidtext"
|
||||
android:layout_width="386px"
|
||||
android:layout_height="144px"
|
||||
android:layout_marginStart="778px"
|
||||
android:layout_marginTop="29px"
|
||||
android:textAlignment="viewEnd"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:textColor="#666666"
|
||||
android:textSize="42px" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:layout_width="19px"
|
||||
android:layout_height="38px"
|
||||
android:layout_marginStart="1217px"
|
||||
android:layout_marginTop="27px"
|
||||
app:srcCompat="@drawable/list_arrow_icon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/doorcontroltimeuseimage"
|
||||
android:layout_width="105px"
|
||||
android:layout_height="56px"
|
||||
android:layout_marginStart="1135px"
|
||||
android:layout_marginTop="20px"
|
||||
app:srcCompat="@drawable/toggle_pressed" />
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<TextView
|
||||
android:layout_width="400px"
|
||||
android:layout_height="150px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="29px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_door_control_time_set_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/doorcontroltimesettext"
|
||||
android:layout_width="386px"
|
||||
android:layout_height="144px"
|
||||
android:layout_marginStart="778px"
|
||||
android:layout_marginTop="29px"
|
||||
android:textAlignment="viewEnd"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:textColor="#666666"
|
||||
android:textSize="42px" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/doorcontroltimesetimage"
|
||||
android:layout_width="44px"
|
||||
android:layout_height="42px"
|
||||
android:layout_marginStart="1193px"
|
||||
android:layout_marginTop="26px"
|
||||
app:srcCompat="@drawable/list_edit_icon" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/doorcontroltimesetimagebutton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
@ -74,6 +74,8 @@
|
||||
android:visibility="invisible" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/mainLayout"
|
||||
android:layout_width="1280px"
|
||||
@ -83,6 +85,7 @@
|
||||
app:layout_constraintStart_toStartOf="@+id/maintopLayout"
|
||||
app:layout_constraintTop_toTopOf="@+id/maintopLayout">
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/settingbutton"
|
||||
android:layout_width="95px"
|
||||
@ -91,6 +94,50 @@
|
||||
android:layout_marginTop="481px"
|
||||
android:background="@drawable/admin_icon_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/workinbutton"
|
||||
android:layout_width="300px"
|
||||
android:layout_height="210px"
|
||||
android:layout_marginStart="950px"
|
||||
android:layout_marginTop="30px"
|
||||
android:fontFamily="@font/nanumbarungothicbold"
|
||||
android:textColor="#ffffff"
|
||||
android:paddingTop="80px"
|
||||
android:textSize="40px"
|
||||
android:text = "@string/main_attendance_in"
|
||||
android:background="@drawable/workin_btn"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/workoutbutton"
|
||||
android:layout_width="300px"
|
||||
android:layout_height="210px"
|
||||
android:layout_marginStart="950px"
|
||||
android:layout_marginTop="246px"
|
||||
android:fontFamily="@font/nanumbarungothicbold"
|
||||
android:textColor="#ffffff"
|
||||
android:paddingTop="80px"
|
||||
android:textSize="40px"
|
||||
android:text = "@string/main_attendance_out"
|
||||
android:background="@drawable/workout_btn"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/attendancebutton"
|
||||
android:layout_width="280px"
|
||||
android:layout_height="402px"
|
||||
android:layout_marginStart="960px"
|
||||
android:layout_marginTop="44px"
|
||||
android:fontFamily="@font/nanumbarungothicbold"
|
||||
android:textColor="#ffffff"
|
||||
android:paddingTop="85px"
|
||||
android:paddingBottom="70px"
|
||||
android:textSize="40px"
|
||||
android:drawableTop="@drawable/workin_icon_76"
|
||||
android:text = "@string/main_attendance_mode_in"
|
||||
android:background="@drawable/button_shape_attendance"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/mainloginveinimage"
|
||||
android:layout_width="585px"
|
||||
@ -178,6 +225,44 @@
|
||||
android:textScaleX="0.857"
|
||||
android:textSize="35px" />
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/doorcontrolframe"
|
||||
android:layout_width="960px"
|
||||
android:layout_height="412px"
|
||||
android:layout_marginLeft="160px"
|
||||
android:layout_marginTop="90px"
|
||||
android:visibility="invisible"
|
||||
android:background="@drawable/panel_shape_door_control"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/doorcontroltimetext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="110px"
|
||||
android:layout_marginTop="106px"
|
||||
android:gravity="center_horizontal"
|
||||
android:fontFamily="@font/pretendardbold"
|
||||
android:text=""
|
||||
android:textStyle="bold"
|
||||
android:textColor="#ffe600"
|
||||
android:textSize="92px" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/doorcontrolmsgtext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="110px"
|
||||
android:layout_marginTop="224px"
|
||||
android:gravity="center_horizontal"
|
||||
android:fontFamily="@font/pretendardsemibold"
|
||||
android:text="현재는 출입문 개방시간입니다."
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="56px" />
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<!--
|
||||
@ -272,6 +357,8 @@
|
||||
android:layout_marginTop="2dp"
|
||||
android:text="LED Blue"
|
||||
android:textAllCaps="false" />
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
@ -12,7 +12,6 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/title_bar"
|
||||
app:layout_constraintEnd_toEndOf="@+id/frameLayout2"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
@ -47,12 +46,18 @@
|
||||
android:textStyle="bold" />
|
||||
</FrameLayout>
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/systemsettinglayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="94px"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/frameLayout">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/frameLayout2"
|
||||
android:layout_width="1280px"
|
||||
android:layout_height="626px"
|
||||
android:layout_marginTop="94px"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@ -293,6 +298,46 @@
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<TextView
|
||||
android:layout_width="400px"
|
||||
android:layout_height="150px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="29px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_server_reset_text"
|
||||
android:textColor="#117ef8"
|
||||
android:textSize="42px" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="386px"
|
||||
android:layout_height="144px"
|
||||
android:layout_marginStart="778px"
|
||||
android:layout_marginTop="29px"
|
||||
android:textAlignment="viewEnd"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:textColor="#666666"
|
||||
android:textSize="42px" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/serverreset"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
151
app/src/main/res/layout/date_hhmm_hhmm_dialog.xml
Normal file
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="851px"
|
||||
android:layout_height="399px"
|
||||
android:background="@drawable/layout_dialog_border">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="280px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Space
|
||||
android:layout_width="80px"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="300px"
|
||||
android:layout_height="280px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/numberpickerhour"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:theme="@style/numberPickerCustomSize">
|
||||
</NumberPicker>
|
||||
|
||||
<TextView
|
||||
android:layout_width="60px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="126px"
|
||||
android:layout_marginStart="50px"
|
||||
android:visibility="visible"
|
||||
android:background="#00000000"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text=":"
|
||||
android:textColor="#333333"
|
||||
android:textSize="50px" />
|
||||
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/numberpickerminute"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:theme="@style/numberPickerCustomSize">
|
||||
</NumberPicker>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="50px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="126px"
|
||||
android:layout_marginStart="20px"
|
||||
android:visibility="visible"
|
||||
android:background="#00000000"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="~"
|
||||
android:textColor="#333333"
|
||||
android:textSize="50px" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="300px"
|
||||
android:layout_height="280px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/numberpickerhour2"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="20px"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:theme="@style/numberPickerCustomSize">
|
||||
</NumberPicker>
|
||||
|
||||
<TextView
|
||||
android:layout_width="60px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="126px"
|
||||
android:layout_marginStart="50px"
|
||||
android:visibility="visible"
|
||||
android:background="#00000000"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text=":"
|
||||
android:textColor="#333333"
|
||||
android:textSize="50px" />
|
||||
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/numberpickerminute2"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:theme="@style/numberPickerCustomSize">
|
||||
</NumberPicker>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonCancel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/button_border_topleft"
|
||||
android:alpha="1"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/dialog_cancle"
|
||||
android:textColor="#333333"
|
||||
android:textSize="50px" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonConfirm"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/button_border_topright"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/dialog_ok"
|
||||
android:textColor="#00816D"
|
||||
android:textSize="50px" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</android.support.constraint.ConstraintLayout>
|
139
app/src/main/res/layout/date_range_dialog.xml
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="851px"
|
||||
android:layout_height="399px"
|
||||
android:background="@drawable/layout_dialog_border">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/editstartdate"
|
||||
android:layout_width="326px"
|
||||
android:layout_height="120px"
|
||||
android:layout_marginStart="45px"
|
||||
android:layout_marginTop="90px"
|
||||
android:background="@drawable/edittext_border"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center"
|
||||
android:lines="2"
|
||||
android:minLines="2"
|
||||
android:scrollbars="vertical"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:visibility="visible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/editstartdatebutton"
|
||||
android:layout_width="326px"
|
||||
android:layout_height="120px"
|
||||
android:layout_marginStart="45px"
|
||||
android:layout_marginTop="90px"
|
||||
android:background="#00000000" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="28px"
|
||||
android:layout_height="49px"
|
||||
android:layout_marginStart="412px"
|
||||
android:layout_marginTop="134px"
|
||||
android:background="@null"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center"
|
||||
android:text="~"
|
||||
android:textColor="#333333"
|
||||
android:textSize="50px"
|
||||
android:visibility="visible" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/editenddate"
|
||||
android:layout_width="326px"
|
||||
android:layout_height="120px"
|
||||
android:layout_marginStart="480px"
|
||||
android:layout_marginTop="90px"
|
||||
android:background="@drawable/edittext_border"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center"
|
||||
android:lines="2"
|
||||
android:minLines="2"
|
||||
android:scrollbars="vertical"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:visibility="visible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/editenddatebutton"
|
||||
android:layout_width="326px"
|
||||
android:layout_height="120px"
|
||||
android:layout_marginStart="480px"
|
||||
android:layout_marginTop="90px"
|
||||
android:background="#00000000" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120px"
|
||||
android:layout_marginTop="140px"
|
||||
android:layout_gravity="center"
|
||||
android:background="#00000000"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonCancel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@+id/numberpicker"
|
||||
android:layout_weight="1"
|
||||
android:alpha="1"
|
||||
android:background="@drawable/button_border_topleft"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center"
|
||||
android:text="@string/dialog_cancle"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonConfirm"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/button_border_topright"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center"
|
||||
android:text="@string/dialog_ok"
|
||||
android:textColor="#00816D"
|
||||
android:textSize="42px" />
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<!-- <FrameLayout-->
|
||||
<!-- android:id="@+id/layouttitle"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="82px"-->
|
||||
<!-- android:visibility="visible">-->
|
||||
|
||||
<!-- <TextView-->
|
||||
<!-- android:id="@+id/dialogtitle"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent"-->
|
||||
<!-- android:background="@drawable/layout_border_top"-->
|
||||
<!-- android:fontFamily="@font/nanumbarungothicbold"-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:text=""-->
|
||||
<!-- android:textColor="#FFFFFF"-->
|
||||
<!-- android:textSize="42px" />-->
|
||||
|
||||
|
||||
<!-- <ImageButton-->
|
||||
<!-- android:id="@+id/dialogcancle"-->
|
||||
<!-- android:layout_width="27px"-->
|
||||
<!-- android:layout_height="27px"-->
|
||||
<!-- android:layout_marginStart="798px"-->
|
||||
<!-- android:layout_marginTop="25px"-->
|
||||
<!-- android:background="@drawable/title_close_icon" />-->
|
||||
<!-- </FrameLayout>-->
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
@ -88,6 +88,7 @@
|
||||
android:layout_gravity="right"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginRight="46px">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageMethodRfid"
|
||||
android:layout_width="68px"
|
||||
@ -117,19 +118,29 @@
|
||||
android:layout_height="15px"
|
||||
android:layout_marginLeft="29px"
|
||||
android:background="@drawable/list_success_icon" />
|
||||
</LinearLayout>
|
||||
<!--
|
||||
|
||||
<TextView
|
||||
android:id="@+id/logResult"
|
||||
android:layout_width="95px"
|
||||
android:layout_height="49px"
|
||||
android:layout_marginStart="1165px"
|
||||
android:layout_marginTop="24px"
|
||||
android:layout_marginLeft="24px"
|
||||
android:textColor="#1DAE17"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:alpha="1"/>
|
||||
-->
|
||||
</LinearLayout>
|
||||
|
||||
<!-- <TextView-->
|
||||
<!-- android:id="@+id/logResult"-->
|
||||
<!-- android:layout_width="95px"-->
|
||||
<!-- android:layout_height="49px"-->
|
||||
<!-- android:layout_marginStart="1165px"-->
|
||||
<!-- android:layout_marginTop="24px"-->
|
||||
<!-- android:textColor="#1DAE17"-->
|
||||
<!-- android:textSize="42px"-->
|
||||
<!-- android:fontFamily="@font/nanumbarungothic"-->
|
||||
<!-- android:alpha="1"/>-->
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</kr.co.enicom.acs.CheckableLinearLayout>
|
||||
|
@ -319,6 +319,48 @@
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<!-- 근태 이력 삭제 -->
|
||||
<FrameLayout
|
||||
android:id="@+id/dataattendance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/dataattendanceimage"
|
||||
android:layout_width="60px"
|
||||
android:layout_height="60px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="17px"
|
||||
app:srcCompat="@drawable/setting_list_icon_attendance" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="370px"
|
||||
android:layout_height="425px"
|
||||
android:layout_marginStart="140px"
|
||||
android:layout_marginTop="25px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_data_attendance_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="19px"
|
||||
android:layout_height="38px"
|
||||
android:layout_marginStart="1217px"
|
||||
android:layout_marginTop="26px"
|
||||
app:srcCompat="@drawable/list_arrow_icon" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/dataattendancebutton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
@ -132,6 +132,47 @@
|
||||
android:background="#00000000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/logattendance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/logattendanceimage"
|
||||
android:layout_width="60px"
|
||||
android:layout_height="60px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="17px"
|
||||
app:srcCompat="@drawable/setting_list_icon_attendance" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/logattendancetext"
|
||||
android:layout_width="159px"
|
||||
android:layout_height="150px"
|
||||
android:layout_marginStart="140px"
|
||||
android:layout_marginTop="29px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_log_attendance_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="19px"
|
||||
android:layout_height="38px"
|
||||
android:layout_marginStart="1217px"
|
||||
android:layout_marginTop="29px"
|
||||
app:srcCompat="@drawable/list_arrow_icon" />
|
||||
<Button
|
||||
android:id="@+id/logattendancebutton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
@ -220,6 +220,46 @@
|
||||
android:background="#00000000" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/datadoorcontroltimeimage"
|
||||
android:layout_width="60px"
|
||||
android:layout_height="60px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="17px"
|
||||
app:srcCompat="@drawable/setting_list_icon_door_control" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="370px"
|
||||
android:layout_height="425px"
|
||||
android:layout_marginStart="140px"
|
||||
android:layout_marginTop="25px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_door_control_time_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="19px"
|
||||
android:layout_height="38px"
|
||||
android:layout_marginStart="1217px"
|
||||
android:layout_marginTop="27px"
|
||||
app:srcCompat="@drawable/list_arrow_icon" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/datadoorcontroltimebutton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
@ -267,8 +307,68 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#00000000" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/updatelayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/update_layout"
|
||||
android:visibility="invisible"></FrameLayout>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:background="@drawable/layout_border">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/attendanceimage"
|
||||
android:layout_width="60px"
|
||||
android:layout_height="60px"
|
||||
android:layout_marginStart="40px"
|
||||
android:layout_marginTop="17px"
|
||||
app:srcCompat="@drawable/setting_list_icon_attendance" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="370px"
|
||||
android:layout_height="425px"
|
||||
android:layout_marginStart="140px"
|
||||
android:layout_marginTop="25px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:text="@string/mgt_system_attendance_text"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendancetext"
|
||||
android:layout_width="286px"
|
||||
android:layout_height="94px"
|
||||
android:layout_marginStart="878px"
|
||||
android:layout_marginTop="29px"
|
||||
android:textAlignment="viewEnd"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:textColor="#666666"
|
||||
android:textSize="42px" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="19px"
|
||||
android:layout_height="38px"
|
||||
android:layout_marginStart="1217px"
|
||||
android:layout_marginTop="27px"
|
||||
app:srcCompat="@drawable/list_arrow_icon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/systemattendanceimage"
|
||||
android:layout_width="105px"
|
||||
android:layout_height="56px"
|
||||
android:layout_marginStart="1135px"
|
||||
android:layout_marginTop="20px"
|
||||
app:srcCompat="@drawable/toggle_pressed" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
@ -955,12 +1055,4 @@
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/updatelayout"
|
||||
android:background="@drawable/update_layout"
|
||||
android:visibility="invisible">
|
||||
</FrameLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
@ -56,6 +56,7 @@
|
||||
</FrameLayout>
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/scrollView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<LinearLayout
|
||||
@ -261,6 +262,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutRfid"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
@ -293,9 +295,17 @@
|
||||
android:textSize="36px"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonAddRfid"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/add_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetRfid"
|
||||
android:layout_width="197px"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
@ -307,6 +317,121 @@
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutRfid1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewRfid1"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_rfid1"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewRfid1Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewRfid1Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#333333"
|
||||
android:textSize="36px"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteRfid1"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetRfid1"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutRfid2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewRfid2"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_rfid2"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewRfid2Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewRfid2Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="#333333"
|
||||
android:textSize="36px"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteRfid2"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetRfid2"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutVein"
|
||||
android:layout_width="match_parent"
|
||||
@ -343,9 +468,17 @@
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonAddVein"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/add_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetVein"
|
||||
android:layout_width="197px"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
@ -358,6 +491,124 @@
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutVein1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewVein1"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_vein1"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewVein1Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewVein1Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteVein1"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetVein1"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutVein2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewVein2"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_vein2"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewVein2Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewVein2Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:paddingStart="38px"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteVein2"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetVein2"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutFinger"
|
||||
android:layout_width="match_parent"
|
||||
@ -394,9 +645,75 @@
|
||||
android:paddingStart="38px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonAddFinger"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/add_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetFinger"
|
||||
android:layout_width="197px"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutFinger1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewFinger1"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_finger1"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewFinger1Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewFinger1Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:paddingStart="38px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteFinger1"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetFinger1"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
@ -407,12 +724,69 @@
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutFinger2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewFinger2"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_finger2"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/layouttextViewFinger2Value"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewFinger2Value"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:paddingStart="38px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/buttonDeleteFinger2"
|
||||
android:layout_width="70px"
|
||||
android:layout_height="70px"
|
||||
android:layout_marginLeft="710px"
|
||||
android:layout_marginTop="10px"
|
||||
android:background="@drawable/del_btn" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetFinger2"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_setrfid"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutFace"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="20px">
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewface"
|
||||
@ -446,7 +820,7 @@
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetFace"
|
||||
android:layout_width="197px"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#666666"
|
||||
android:textColor="#ffffff"
|
||||
@ -458,6 +832,103 @@
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewPermitDate"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_permit_date"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewPermitDateValue"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:paddingStart="38px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetPermitDate"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#298BEC"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_modify"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="20px">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewPermitTime"
|
||||
android:layout_width="243px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/mgt_userinfo_text_permit_time"
|
||||
android:textColor="#999999"
|
||||
android:background="#00000000"
|
||||
android:textSize="42px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="94px"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/layout_user_border">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textViewPermitTimeValue"
|
||||
android:layout_width="665px"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="#333333"
|
||||
android:textSize="42px"
|
||||
android:paddingStart="38px"
|
||||
android:fontFamily="@font/nanumbarungothic"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSetPermitTime"
|
||||
android:layout_width="148px"
|
||||
android:layout_height="70px"
|
||||
android:background="#298BEC"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="42px"
|
||||
android:text="@string/mgt_userinfo_text_modify"
|
||||
android:fontFamily="@font/nanumbarungothic"
|
||||
android:layout_gravity="center_vertical|right"/>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
@ -38,7 +38,10 @@
|
||||
<string name="main_network_success">네트워크 정상</string>
|
||||
<string name="main_network_fail">네트워크 오류</string>
|
||||
|
||||
|
||||
<string name="main_attendance_in">출근</string>
|
||||
<string name="main_attendance_out">퇴근</string>
|
||||
<string name="main_attendance_mode_in">출근모드\n입니다.</string>
|
||||
<string name="main_attendance_mode_out">퇴근모드\n입니다.</string>
|
||||
|
||||
<string name="title_activity_login">Sign in</string>
|
||||
<string name="prompt_email">Email</string>
|
||||
@ -85,10 +88,19 @@
|
||||
<string name="mgt_userinfo_text_user">" User"</string>
|
||||
<string name="mgt_userinfo_text_password">"Password"</string>
|
||||
<string name="mgt_userinfo_text_rfid">"RFID"</string>
|
||||
<string name="mgt_userinfo_text_rfid1">"RFID1"</string>
|
||||
<string name="mgt_userinfo_text_rfid2">"RFID2"</string>
|
||||
<string name="mgt_userinfo_text_vein">"지정맥"</string>
|
||||
<string name="mgt_userinfo_text_vein1">"지정맥1"</string>
|
||||
<string name="mgt_userinfo_text_vein2">"지정맥2"</string>
|
||||
<string name="mgt_userinfo_text_finger">"지문"</string>
|
||||
<string name="mgt_userinfo_text_finger1">"지문1"</string>
|
||||
<string name="mgt_userinfo_text_finger2">"지문2"</string>
|
||||
<string name="mgt_userinfo_text_face">"얼굴"</string>
|
||||
<string name="mgt_userinfo_text_permit_date">"출입기간"</string>
|
||||
<string name="mgt_userinfo_text_permit_time">"출입시간"</string>
|
||||
<string name="mgt_userinfo_text_setrfid">"인식"</string>
|
||||
<string name="mgt_userinfo_text_modify">"수정"</string>
|
||||
|
||||
<string name="mgt_userinfo_search_text"> Search</string>
|
||||
<string name="mgt_userinfo_id_text">ID :</string>
|
||||
@ -149,6 +161,7 @@
|
||||
<string name="mgt_data_user_text">"사용자 데이터 삭제"</string>
|
||||
<string name="mgt_data_log_text">"로그 데이터 삭제"</string>
|
||||
<string name="mgt_data_authentication_text">"모든 인증 데이터 삭제"</string>
|
||||
<string name="mgt_data_attendance_text">"모든 근태 이력 삭제"</string>
|
||||
|
||||
<string name="mgt_data_vein_title">"지정맥 데이터"</string>
|
||||
<string name="mgt_data_finger_title">"지문 데이터"</string>
|
||||
@ -157,12 +170,14 @@
|
||||
<string name="mgt_data_user_title">"사용자 데이터"</string>
|
||||
<string name="mgt_data_log_title">"로그 데이터"</string>
|
||||
<string name="mgt_data_authentication_title">"모든 인증 데이터"</string>
|
||||
<string name="mgt_data_attendance_title">"모든 근태 이력"</string>
|
||||
|
||||
|
||||
|
||||
<!--log-->
|
||||
<string name="mgt_log_logcenter_text">"로그 관리"</string>
|
||||
<string name="mgt_log_authentication_text">"인증 이력"</string>
|
||||
<string name="mgt_log_attendance_text">"근태 이력"</string>
|
||||
|
||||
<string name="mgt_log_delete_text">"로그 자동 삭제 사용"</string>
|
||||
<string name="mgt_log_deletedate_text">"로그 자동 삭제 기간"</string>
|
||||
@ -182,6 +197,7 @@
|
||||
<string name="mgt_system_date_text">"날짜 및 시간 설정"</string>
|
||||
<string name="mgt_system_volume_text">"볼륨 설정"</string>
|
||||
<string name="mgt_system_device_text">"장치 설정"</string>
|
||||
<string name="mgt_system_door_control_time_text">"개방시간 설정"</string>
|
||||
<string name="mgt_system_biometric_text">"생체인증 모드"</string>
|
||||
<string name="mgt_system_biometric_finger_text">"지정맥"</string>
|
||||
<string name="mgt_system_biometric_vein_text">"지문"</string>
|
||||
@ -189,6 +205,8 @@
|
||||
<string name="mgt_system_biometric_vein_face_text">"지정맥,얼굴"</string>
|
||||
<string name="mgt_system_biometric_finger_face_text">"지문,얼굴"</string>
|
||||
|
||||
<string name="mgt_system_attendance_text">"근태 관리"</string>
|
||||
|
||||
<string name="mgt_system_server_text">"미들웨어 서버 설정"</string>
|
||||
<string name="mgt_system_updateserver_text">"업데이트 서버 설정"</string>
|
||||
<string name="mgt_system_stbstatus_text">"단말기 상태 전달 주기"</string>
|
||||
@ -231,15 +249,20 @@
|
||||
|
||||
<string name="mgt_system_device_id_text">"Device ID"</string>
|
||||
<string name="mgt_system_device_name_text">"Device name"</string>
|
||||
<string name="mgt_system_device_id_reset_text">"ID 초기화"</string>
|
||||
<string name="mgt_system_device_popup_id_text">"Device ID를 입력해 주세요."</string>
|
||||
<string name="mgt_system_device_popup_name_text">"Device Name를 입력해 주세요."</string>
|
||||
|
||||
<string name="mgt_system_door_control_time_use_text">"개방시간 사용"</string>
|
||||
<string name="mgt_system_door_control_time_set_text">"설정시간"</string>
|
||||
|
||||
<string name="mgt_system_server1_ip_text">"Server1 IP"</string>
|
||||
<string name="mgt_system_server1_port_text">"Server1 port"</string>
|
||||
<string name="mgt_system_server1_check_text">"Server1 Check"</string>
|
||||
<string name="mgt_system_server2_ip_text">"Server2 IP"</string>
|
||||
<string name="mgt_system_server2_port_text">"Server2 port"</string>
|
||||
<string name="mgt_system_server2_check_text">"Server2 Check"</string>
|
||||
<string name="mgt_system_server_reset_text">"서버 초기화"</string>
|
||||
|
||||
<string name="mgt_system_server_ip_popup_text">"Server IP를 입력해 주세요."</string>
|
||||
<string name="mgt_system_server_port_popup_text">"Server port를 입력해 주세요."</string>
|
||||
@ -295,6 +318,7 @@
|
||||
<string name="dialog_cancle">"취소"</string>
|
||||
<string name="dialog_save">"저장"</string>
|
||||
<string name="mgt_delete">"삭제 하시겠습니까?"</string>
|
||||
<string name="mgt_reset">"초기화 하시겠습니까?"</string>
|
||||
<string name="mgt_save">"저장 하시겠습니까?"</string>
|
||||
<string name="mgt_alldelete">"전체삭제"</string>
|
||||
<string name="mgt_perioddelete">"기간삭제"</string>
|
||||
|