|
@@ -7,6 +7,7 @@ import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.content.IntentFilter;
|
|
|
import android.content.pm.PackageManager;
|
|
|
+import android.database.DatabaseErrorHandler;
|
|
|
import android.graphics.Bitmap;
|
|
|
import android.graphics.BitmapFactory;
|
|
|
import android.graphics.Canvas;
|
|
@@ -231,6 +232,12 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
private static final int REQUEST_EXTERNAL_STORAGE = 100;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private boolean bMediaRecorder = false;
|
|
|
+
|
|
|
|
|
|
private WpadImageView TopBackground;
|
|
|
private WpadTextView TopTitle;
|
|
@@ -344,10 +351,16 @@ public class MainActivity extends WpadActivity {
|
|
|
public boolean bBlockHomeBTN = false;
|
|
|
public boolean bLCDReverse = false;
|
|
|
|
|
|
- public static boolean bRecordingStatus = false;
|
|
|
+
|
|
|
|
|
|
public static boolean bFrontCallUse, bLobbyCallUse, bGuardCallUse, bResiCallUse, bPSTNCallUse, bCallHistoryUse, bVisitorPicUse;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ public boolean bIsFirstCallEvent = true;
|
|
|
+
|
|
|
+ public boolean bIsGeneratedFirstCallEvent = false;
|
|
|
+
|
|
|
|
|
|
* [ Activity Life Cycle ] region
|
|
|
================================================================================================ */
|
|
@@ -361,10 +374,13 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
registerWallPadCallLiveBRReceiver();
|
|
|
|
|
|
+
|
|
|
Global.setGlobalContext(this);
|
|
|
Global.getConfigValues();
|
|
|
nSysVolume = Global.getConfigSystemVolume();
|
|
|
|
|
|
+ Global.setCallLiveStatus(Declare.CALLAPPSTATE.CALLAPPSTATE_NORMAL);
|
|
|
+
|
|
|
if (ConfigValues.DEVICE_MODELTYPE == MODEL_TYPE.IHN_1020B_I) bFFMPEGEnable = true;
|
|
|
else bFFMPEGEnable = false;
|
|
|
Log.i(TAG, "[onCreate] bFFMPEGEnable [" + bFFMPEGEnable + "]");
|
|
@@ -626,7 +642,7 @@ public class MainActivity extends WpadActivity {
|
|
|
else if (bVisitorPicUse) mTempCurrentScreenId = API_Menu.SubMenuCall.Visitor;
|
|
|
}
|
|
|
setChangeScreen(mTempCurrentScreenId, false);
|
|
|
- sendHandlerMsgDelayed(HANDLERMSG.CHECK_RECEIVINGCALL, 0, 0, 500);
|
|
|
+
|
|
|
}
|
|
|
else {
|
|
|
mTempCurrentScreenId = mMenu.getStartId();
|
|
@@ -649,14 +665,29 @@ public class MainActivity extends WpadActivity {
|
|
|
}
|
|
|
|
|
|
|
|
|
- LOG_INFO("[Create] - Step7 : setContentView");
|
|
|
+ LOG_INFO("[Create] - Step7 : setContentView " + strCallEvent);
|
|
|
setContentView(AllLayout);
|
|
|
|
|
|
getCallTimeoutEnable();
|
|
|
addBrActionFilter("CERES_CALL");
|
|
|
addBrActionFilter("CERES_CALL_MULTI");
|
|
|
+ addBrActionFilter(Declare.BR.BR_REQUEST_RECORD_STOP);
|
|
|
+ addBrActionFilter(Declare.BR.BR_REQUEST_NEW_CALL);
|
|
|
+
|
|
|
+ if(!strCallEvent.contains("NONE")) {
|
|
|
|
|
|
- sendHandlerMsgDelayed(HANDLERMSG.CHECK_RECEIVINGCALL, 0, 0, 500);
|
|
|
+
|
|
|
+ if(strCallEvent.contains("DETECT_STRANGER"))
|
|
|
+ {
|
|
|
+ Global.setDetect_stranger(true);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Global.setCallLiveStatus(Declare.CALLAPPSTATE.CALLAPPSTATE_RECV);
|
|
|
+ }
|
|
|
+
|
|
|
+ sendHandlerMsgDelayed(HANDLERMSG.CHECK_RECEIVINGCALL, 0, 0, 500);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
LOG_INFO("[Create] - Step8 : Window Resize");
|
|
@@ -676,6 +707,9 @@ public class MainActivity extends WpadActivity {
|
|
|
sendBlockSIPCallBR();
|
|
|
mSound.StopAll();
|
|
|
mSound.Release();
|
|
|
+ Global.setCallLiveStatus(Declare.CALLAPPSTATE.CALLAPPSTATE_NONE);
|
|
|
+ Global.setDetect_stranger(false);
|
|
|
+ Global.setbTCP_doubleConnect(false);
|
|
|
|
|
|
|
|
|
|
|
@@ -908,7 +942,11 @@ public class MainActivity extends WpadActivity {
|
|
|
}
|
|
|
mTempCurrentScreenId = nStartScreenId;
|
|
|
setChangeScreen(mTempCurrentScreenId, false);
|
|
|
+
|
|
|
+ bIsFirstCallEvent = true;
|
|
|
+ bIsGeneratedFirstCallEvent = false;
|
|
|
sendHandlerMsgDelayed(HANDLERMSG.CHECK_RECEIVINGCALL, 0, 0, 500);
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -955,6 +993,40 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
|
|
|
}
|
|
|
+ else if (intent.getAction().equals(Declare.BR.BR_REQUEST_RECORD_STOP)) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ showStrangerNoticeText(false, false);
|
|
|
+
|
|
|
+ mediaStopRecord(true);
|
|
|
+
|
|
|
+ mFrontCamOpenCheckHandler.removeMessages(2);
|
|
|
+ mFrontCamOpenCheckHandler.removeMessages(3);
|
|
|
+
|
|
|
+ int nKind = intent.getIntExtra(define.NOTIBR_KIND, 0);
|
|
|
+ if (nKind == 2) {
|
|
|
+
|
|
|
+ strCallOwner = null;
|
|
|
+ strCallEvent = intent.getStringExtra(CALLTRIGGER.CALLEVENTTYPE);
|
|
|
+ strCallType = intent.getStringExtra(CALLTRIGGER.CALLTYPE);
|
|
|
+ strRemoteInfo = intent.getStringExtra(CALLTRIGGER.REMOTEINFO);
|
|
|
+
|
|
|
+ }
|
|
|
+ } else if (intent.getAction().equals(Declare.BR.BR_REQUEST_NEW_CALL)) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ strCallOwner = null;
|
|
|
+ strCallEvent = intent.getStringExtra(CALLTRIGGER.CALLEVENTTYPE);
|
|
|
+ strCallType = intent.getStringExtra(CALLTRIGGER.CALLTYPE);
|
|
|
+ strRemoteInfo = intent.getStringExtra(CALLTRIGGER.REMOTEINFO);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
public String makeSIPID(String strIPAddress) {
|
|
@@ -1498,6 +1570,11 @@ public class MainActivity extends WpadActivity {
|
|
|
try {
|
|
|
switch (nScreenId) {
|
|
|
case API_Menu.SubMenuCall.Door:
|
|
|
+ if (mRecordTimer == null) {
|
|
|
+
|
|
|
+ Log.v("yjyoon", "setChangeScreen > API_Menu.SubMenuCall.Door");
|
|
|
+ checkRecordTimer();
|
|
|
+ }
|
|
|
setTitleText(API_Menu.SubMenuCall.Name_Door);
|
|
|
ScreenTalkFront = new TalkFront(this, ScreenLayout, mWallPadAPI);
|
|
|
super.setCurrentScreen(ScreenTalkFront);
|
|
@@ -3406,7 +3483,7 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
public boolean removeFrontVideoLayout() {
|
|
|
try {
|
|
|
-
|
|
|
+ LOG_INFO("[removeFrontVideoLayout] FrontVideoSurface = " + FrontVideoSurface + ", FrontVideoLayout = " + FrontVideoLayout);
|
|
|
if (FrontVideoSurface != null) {
|
|
|
FrontVideoSurface.setVisibility(View.GONE);
|
|
|
FrontVideoSurface.getHolder().removeCallback(FrontVideoCallback);
|
|
@@ -3555,6 +3632,7 @@ public class MainActivity extends WpadActivity {
|
|
|
try {
|
|
|
LOG_INFO("[FrontVideoCallback] surfaceChanged!!");
|
|
|
if (mFrontCamera != null) {
|
|
|
+ LOG_INFO("[FrontVideoCallback] surfaceChanged!! 1");
|
|
|
mFrontCamera.startPreview();
|
|
|
}
|
|
|
if (Common.OPTION_TAB_ANMI_ENABLE) {
|
|
@@ -3802,18 +3880,30 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
|
|
|
if (mFrontCamera != null) {
|
|
|
- mFrontCamera.stopPreview();
|
|
|
+
|
|
|
+
|
|
|
mFrontCamera.unlock();
|
|
|
|
|
|
+ bMediaRecorder = false;
|
|
|
|
|
|
mMediaRecorder = new MediaRecorder();
|
|
|
mMediaRecorder.setCamera(mFrontCamera);
|
|
|
|
|
|
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
|
|
|
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
|
|
|
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT) mMediaRecorder.setVideoSize(1280, 720);
|
|
|
- else mMediaRecorder.setVideoSize(640, 480);
|
|
|
- mMediaRecorder.setVideoEncodingBitRate(3000000);
|
|
|
+
|
|
|
+ if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT)
|
|
|
+ {
|
|
|
+ mMediaRecorder.setVideoSize(1280, 720);
|
|
|
+ mMediaRecorder.setVideoEncodingBitRate(3000000);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ mMediaRecorder.setVideoSize(640, 480);
|
|
|
+ mMediaRecorder.setVideoEncodingBitRate(1024 * 1024);
|
|
|
+ mMediaRecorder.setVideoFrameRate(24);
|
|
|
+ }
|
|
|
+
|
|
|
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
|
|
|
|
|
|
mMediaRecorder.setOutputFile(VIDEO_TEMP_PATH);
|
|
@@ -3849,7 +3939,30 @@ public class MainActivity extends WpadActivity {
|
|
|
try {
|
|
|
|
|
|
showStrangerNoticeText(true, true);
|
|
|
- mMediaRecorder.start();
|
|
|
+
|
|
|
+ int iPlayTime = 0;
|
|
|
+ if(ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW)
|
|
|
+ {
|
|
|
+ iPlayTime = 4000;
|
|
|
+ }
|
|
|
+
|
|
|
+ new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ if (mMediaRecorder != null) {
|
|
|
+ Log.d(TAG, "[mFrontCamOpenCheckHandler] m_mediaRecorder.start");
|
|
|
+ if(mFrontCamera != null) {
|
|
|
+ mMediaRecorder.start();
|
|
|
+ bMediaRecorder = true;
|
|
|
+ } else {
|
|
|
+ Log.v(TAG, "[mFrontCamOpenCheckHandler] mFrontCamera is null.");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Log.v(TAG, "[mFrontCamOpenCheckHandler] mMediaRecorder is null.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, iPlayTime);
|
|
|
+
|
|
|
} catch (IllegalStateException e) {
|
|
|
Log.e(TAG, "[IllegalStateException] mFrontCamOpenCheckHandler.start");
|
|
|
|
|
@@ -3857,7 +3970,7 @@ public class MainActivity extends WpadActivity {
|
|
|
resetRecorderSetting();
|
|
|
} catch (Exception e) {
|
|
|
Log.e(TAG, "[Exception] mFrontCamOpenCheckHandler.start");
|
|
|
-
|
|
|
+ e.printStackTrace();
|
|
|
LogUtil.errorLogInfo("", TAG, e);
|
|
|
resetRecorderSetting();
|
|
|
}
|
|
@@ -3938,6 +4051,11 @@ public class MainActivity extends WpadActivity {
|
|
|
Log.d(TAG, "[mWallPadApiCheckHandler.handleMessage] Handler finish!! mTempCurrentScreenId [" + mTempCurrentScreenId + "]");
|
|
|
if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTKEY_EXTERNAL || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_HS || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW) {
|
|
|
smartKeyRfDoorAPI = mWallPadAPI.Get_SmartKeyRfDoorController();
|
|
|
+ if (smartKeyRfDoorAPI != null) {
|
|
|
+ Log.d(TAG, "[mWallPadApiCheckHandler] get smartKeyRfDoorAPI.");
|
|
|
+ } else {
|
|
|
+ Log.w(TAG, "[mWallPadApiCheckHandler] smartKeyRfDoorAPI is null !!");
|
|
|
+ }
|
|
|
}
|
|
|
boolean result = setChangeScreen(mTempCurrentScreenId, false);
|
|
|
if (!result) {
|
|
@@ -4476,13 +4594,14 @@ public class MainActivity extends WpadActivity {
|
|
|
private void checkRecordTimer() {
|
|
|
try {
|
|
|
Log.d(TAG, "[checkRecordTimer] RECORDING_TIME [" + RECORDING_TIME + "]");
|
|
|
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT || ConfigValues.eFrontCameraType == Global.FRONTCAMERATYPE.SMART_HS) {
|
|
|
+ if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT || ConfigValues.eFrontCameraType == Global.FRONTCAMERATYPE.SMART_HS
|
|
|
+ || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW ) {
|
|
|
mCurRecordTime = 0;
|
|
|
if (RECORDING_TIME > 0) {
|
|
|
mRecordTimer = new CountDownTimer(RECORDING_TIME * 1000, 1000) {
|
|
|
@Override
|
|
|
public void onTick(long millisUntilFinished) {
|
|
|
- if (bRecordingStatus) {
|
|
|
+ if (Global.getRecordingStatus()) {
|
|
|
mCurRecordTime++;
|
|
|
Log.d(TAG, "[checkRecordTimer] mCurRecordTime [" + mCurRecordTime + "]");
|
|
|
}
|
|
@@ -4492,7 +4611,7 @@ public class MainActivity extends WpadActivity {
|
|
|
public void onFinish() {
|
|
|
LOG("[checkRecordTimer] onFinish!! bRemoteCall [" + ConfigValues.bRemoteCall + "]");
|
|
|
if (ConfigValues.bRemoteCall) {
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
mediaStopRecord(true);
|
|
|
mRemoteCallController.sendCloseRemoteCall();
|
|
|
sendHandlerMsgDelayed(HANDLERMSG.FINISH_WALLPADCALL, 0, 0, 500);
|
|
@@ -4546,8 +4665,15 @@ public class MainActivity extends WpadActivity {
|
|
|
RECORDING_TIME = DBMGR.GetSmartDoorCamRecordTime();
|
|
|
DBMGR.closeDB();
|
|
|
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- if (RECORDING_TIME < 30) RECORDING_TIME = 30;
|
|
|
+ if(ConfigValues.eFrontCameraType != FRONTCAMERATYPE.SMARTIOT)
|
|
|
+ {
|
|
|
+ RECORDING_TIME += 5;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
Log.d(TAG, "[getSmartIOTCamConfig] RECORDING_TIME [" + RECORDING_TIME + "]");
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG, re);
|
|
@@ -4595,19 +4721,45 @@ public class MainActivity extends WpadActivity {
|
|
|
public void mediaStartRecord() {
|
|
|
try {
|
|
|
Log.d(TAG, "[mediaStartRecord]");
|
|
|
+
|
|
|
+ if (!Global.getRecordingStatus()) {
|
|
|
+ Log.d("yjyoon", "[mediaStartRecord] bRecordingStatus == false");
|
|
|
+ Log.d(TAG, "[mediaStartRecord] bRecordingStatus == false");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (mMediaRecorder != null) {
|
|
|
- mMediaRecorder.stop();
|
|
|
+ if (bMediaRecorder) {
|
|
|
+ Log.d(TAG, "[mediaStartRecord] mMediaRecorder.stop");
|
|
|
+ mMediaRecorder.stop();
|
|
|
+ bMediaRecorder = false;
|
|
|
+ } else {
|
|
|
+ Log.d(TAG, "[mediaStartRecord] Skip mMediaRecorder.stop");
|
|
|
+ }
|
|
|
+
|
|
|
mMediaRecorder.reset();
|
|
|
mMediaRecorder.release();
|
|
|
mMediaRecorder = null;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
mFrontCamOpenCheckHandler.sendEmptyMessage(2);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Log.v("yjyoon", "Call MainActivity ###Common.BR_MAIN_NOTI.ACCEPT_RECORDING");
|
|
|
+ Intent newIntent = new Intent();
|
|
|
+ newIntent.setAction(ACNAME_MAIN_NOTI);
|
|
|
+ newIntent.putExtra("KIND", 1023);
|
|
|
+ newIntent.putExtra("FROMCALL", true);
|
|
|
+ getContext().sendBroadcast(newIntent);
|
|
|
+
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG,re);
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
} catch (Throwable t) {
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
Log.e(TAG, "[Exception] mediaStartRecord()");
|
|
|
|
|
|
LogUtil.errorLogInfo("", TAG, t);
|
|
@@ -4617,18 +4769,34 @@ public class MainActivity extends WpadActivity {
|
|
|
public void mediaStopRecord(boolean bDel) {
|
|
|
try {
|
|
|
Log.d(TAG, "[mediaStopRecord] bDel [" + bDel + "]");
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
resetRecordTimer();
|
|
|
if (mMediaRecorder != null) {
|
|
|
- mMediaRecorder.stop();
|
|
|
+ if (bMediaRecorder) {
|
|
|
+ Log.d(TAG, "[mediaStopRecord] mMediaRecorder.stop");
|
|
|
+ mMediaRecorder.stop();
|
|
|
+ bMediaRecorder = false;
|
|
|
+ } else {
|
|
|
+ Log.d(TAG, "[mediaStopRecord] Skip mMediaRecorder.stop");
|
|
|
+ }
|
|
|
+
|
|
|
mMediaRecorder.reset();
|
|
|
mMediaRecorder.release();
|
|
|
mMediaRecorder = null;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
showStrangerNoticeText(false, false);
|
|
|
showFrontVideo(false);
|
|
|
if (bDel) ScreenLayout.removeView(FrontVideoSurface);
|
|
|
+
|
|
|
+
|
|
|
+ Log.d(TAG, "Send Br - Common.BR_MAIN_NOTI.STOP_RECORDING");
|
|
|
+ Intent newIntent = new Intent();
|
|
|
+ newIntent.setAction(ACNAME_MAIN_NOTI);
|
|
|
+ newIntent.putExtra("KIND", 1027);
|
|
|
+ getContext().sendBroadcast(newIntent);
|
|
|
+
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG, re);
|
|
|
} catch (Exception e) {
|
|
@@ -4643,7 +4811,7 @@ public class MainActivity extends WpadActivity {
|
|
|
public void stopNSaveRecordingFile(boolean bDel, boolean bFinish) {
|
|
|
try {
|
|
|
LOG("[stopNSaveRecordingFile] bDel [" + bDel + "], bFinish [" + bFinish + "], bRemoteCall [" + ConfigValues.bRemoteCall + "]");
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
mediaStopRecord(bDel);
|
|
|
saveRecordingFile(bFinish);
|
|
|
} catch (RuntimeException re) {
|
|
@@ -4872,9 +5040,11 @@ public class MainActivity extends WpadActivity {
|
|
|
if (mMediaRecorder != null) {
|
|
|
mMediaRecorder.release();
|
|
|
mMediaRecorder = null;
|
|
|
+ if (bMediaRecorder)
|
|
|
+ bMediaRecorder = false;
|
|
|
}
|
|
|
resetRecordTimer();
|
|
|
- bRecordingStatus = false;
|
|
|
+ Global.setRecordingStatus(false);
|
|
|
sendHandlerMsgDelayed(HANDLERMSG.FINISH_WALLPADCALL, 0, 0, 1000);
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG, re);
|
|
@@ -5021,6 +5191,7 @@ public class MainActivity extends WpadActivity {
|
|
|
public final static int REFRESH_HOMEICON = 997;
|
|
|
public final static int FINISH_WALLPADCALL = 998;
|
|
|
public final static int FINISH_ACTIVITY = 999;
|
|
|
+ public final static int RECEIVE_NEW_FRONT_CALL = 1000;
|
|
|
}
|
|
|
|
|
|
int nBrightness = 0;
|
|
@@ -5033,7 +5204,16 @@ public class MainActivity extends WpadActivity {
|
|
|
break;
|
|
|
|
|
|
case HANDLERMSG.CHECK_RECEIVINGCALL:
|
|
|
- generateCallEvent();
|
|
|
+ LOG("[MainHandler] HANDLERMSG.CHECK_RECEIVINGCALL");
|
|
|
+ if (bIsFirstCallEvent) {
|
|
|
+
|
|
|
+ LOG("[MainHandler] HANDLERMSG.CHECK_RECEIVINGCALL(aftter 500ms): Create the first call event.");
|
|
|
+ generateCallEvent();
|
|
|
+ } else {
|
|
|
+ LOG("[MainHandler] HANDLERMSG.CHECK_RECEIVINGCALL(aftter 500ms): Drop the first call event.");
|
|
|
+ }
|
|
|
+ bIsFirstCallEvent = false;
|
|
|
+ bIsGeneratedFirstCallEvent = true;
|
|
|
break;
|
|
|
|
|
|
case HANDLERMSG.REMOVE_VIDEO_COVER:
|
|
@@ -5285,6 +5465,32 @@ public class MainActivity extends WpadActivity {
|
|
|
else Log.d(TAG, "[MainHandler] mIOInterface is null!! -> IGW300API.TEL_PATH.OFF");
|
|
|
break;
|
|
|
|
|
|
+
|
|
|
+ case HANDLERMSG.RECEIVE_NEW_FRONT_CALL:
|
|
|
+ if (bIsGeneratedFirstCallEvent) {
|
|
|
+ if (mCallController == null) return;
|
|
|
+
|
|
|
+ Log.v(TAG, "HANDLERMSG.RECEIVE_NEW_FRONT_CALL");
|
|
|
+ if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
|
|
|
+ if (mCallController.mCallInfo.getIDLECnt() == mCallController.mCallInfo.IDLECNT_MAX) {
|
|
|
+ sendHandlerMsg(HANDLERMSG.SET_DINGDONG_VOLUME, 0, 0);
|
|
|
+ sendHandlerMsg(HANDLERMSG.SETTALKPATH_DOORMUSIC, 0, 0);
|
|
|
+ mCallPathCheckHandler.sendEmptyMessage(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (mCallController.mCallInfo.getFRONT() == CALLSTATUS.IDLE) {
|
|
|
+ setBlockFrontCall();
|
|
|
+ mCallController.onFrontEvent(CALLEVENTTYPE.RECEIVE_CALL, CALLTYPE.FRONT);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ Log.w(TAG, "[onReceive] Front call ignored!!! getFRONT() [" + mCallController.mCallInfo.getFRONT() + "]");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sendHandlerMsgDelayed(HANDLERMSG.RECEIVE_NEW_FRONT_CALL, 0, 0, 100);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
default:
|
|
|
LOG("MainHandler : " + msg.what);
|
|
|
break;
|
|
@@ -5467,6 +5673,11 @@ public class MainActivity extends WpadActivity {
|
|
|
int nKind = intent.getIntExtra(define.NOTIBR_KIND, 0);
|
|
|
if (nKind == Declare.BR.NOTIFY_ALARM_FIRED) finishWallPadCall();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
else if (strAction.equals(Declare.BR.EVENT_DEVICE_CONTROL)) {
|
|
|
KeyEvent mKeyEvent = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
|
|
|
Log.i(this.TAG, "[onReceive] mKeyEvent : " + mKeyEvent + ", mKeyEvent.getKeyCode() : " + mKeyEvent.getKeyCode());
|
|
@@ -5477,23 +5688,39 @@ public class MainActivity extends WpadActivity {
|
|
|
|
|
|
|
|
|
}
|
|
|
+
|
|
|
else if (mKeyEvent.getKeyCode() == Declare.BTN.FRONT || mKeyEvent.getKeyCode() == Declare.BTN.FRONT_V40) {
|
|
|
- Log.i(this.TAG, "[onReceive] mKeyEvent.getKeyCode() : " + mKeyEvent.getKeyCode());
|
|
|
+ Log.i(this.TAG, "[onReceive] mKeyEvent.getKeyCode() : " + mKeyEvent.getKeyCode() + " " + (mKeyEvent.getKeyCode() == Declare.BTN.FRONT ? "Declare.BTN.FRONT" : "Declare.BTN.FRONT_V40"));
|
|
|
+ Log.v("yjyoon", "bBlockFrontCall[" + bBlockFrontCall + "] bIsGeneratedFirstCallEvent[" + bIsGeneratedFirstCallEvent + "] strCallEvent[" + strCallEvent + "]");
|
|
|
if (!bBlockFrontCall) {
|
|
|
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
|
|
|
- if (mCallController.mCallInfo.getIDLECnt() == mCallController.mCallInfo.IDLECNT_MAX) {
|
|
|
- sendHandlerMsg(HANDLERMSG.SET_DINGDONG_VOLUME, 0, 0);
|
|
|
- sendHandlerMsg(HANDLERMSG.SETTALKPATH_DOORMUSIC, 0, 0);
|
|
|
- mCallPathCheckHandler.sendEmptyMessage(0);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (!bIsGeneratedFirstCallEvent && strCallEvent.equals("DETECT_STRANGER")) {
|
|
|
+
|
|
|
+ bIsFirstCallEvent = false;
|
|
|
+
|
|
|
+
|
|
|
+ MainHandler.removeMessages(HANDLERMSG.RECEIVE_NEW_FRONT_CALL);
|
|
|
+
|
|
|
+
|
|
|
+ sendHandlerMsgDelayed(HANDLERMSG.RECEIVE_NEW_FRONT_CALL, 0, 0, 100);
|
|
|
+ } else {
|
|
|
+ if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
|
|
|
+ if (mCallController.mCallInfo.getIDLECnt() == mCallController.mCallInfo.IDLECNT_MAX) {
|
|
|
+ sendHandlerMsg(HANDLERMSG.SET_DINGDONG_VOLUME, 0, 0);
|
|
|
+ sendHandlerMsg(HANDLERMSG.SETTALKPATH_DOORMUSIC, 0, 0);
|
|
|
+ mCallPathCheckHandler.sendEmptyMessage(0);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (mCallController.mCallInfo.getFRONT() == CALLSTATUS.IDLE) {
|
|
|
- setBlockFrontCall();
|
|
|
- mCallController.onFrontEvent(CALLEVENTTYPE.RECEIVE_CALL, CALLTYPE.FRONT);
|
|
|
- }
|
|
|
- else {
|
|
|
- Log.w(this.TAG, "[onReceive] Front call ignored!!! getFRONT() [" + mCallController.mCallInfo.getFRONT() + "]");
|
|
|
+ if (mCallController.mCallInfo.getFRONT() == CALLSTATUS.IDLE) {
|
|
|
+ setBlockFrontCall();
|
|
|
+ mCallController.onFrontEvent(CALLEVENTTYPE.RECEIVE_CALL, CALLTYPE.FRONT);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ Log.w(this.TAG, "[onReceive] Front call ignored!!! getFRONT() [" + mCallController.mCallInfo.getFRONT() + "]");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -5525,22 +5752,73 @@ public class MainActivity extends WpadActivity {
|
|
|
}
|
|
|
else if (strAction.equals(define.NOTIFY_ACNAME)) {
|
|
|
int kind = intent.getIntExtra(define.NOTIBR_KIND,0);
|
|
|
+
|
|
|
if (kind == define.NOTIFY_SMART_DCAM_DETECT) {
|
|
|
|
|
|
Log.i(this.TAG, "[onReceive] DETECT_STRANGER!!");
|
|
|
if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_HS || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW) {
|
|
|
if (getStrangerRecordingManagerSetting()) {
|
|
|
if (getStrangerRecording()) {
|
|
|
- mCallController.onFrontEvent(CALLEVENTTYPE.DETECT_STRANGER, CALLTYPE.FRONT);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (bIsGeneratedFirstCallEvent && !bBlockFrontCall && mCallController.mCallInfo.getIDLECnt() == mCallController.mCallInfo.IDLECNT_MAX) {
|
|
|
+
|
|
|
+ Log.v(this.TAG, "[onReceive] DETECT_STRANGER > mCallController.onFrontEvent(CALLEVENTTYPE.DETECT_STRANGER, CALLTYPE.FRONT)");
|
|
|
+ mCallController.onFrontEvent(CALLEVENTTYPE.DETECT_STRANGER, CALLTYPE.FRONT);
|
|
|
+ } else {
|
|
|
+ Log.i(this.TAG, "[onReceive] ignored DETECT_STRANGER BR");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (bIsGeneratedFirstCallEvent && !bBlockFrontCall) {
|
|
|
+
|
|
|
+
|
|
|
+ Log.v("yjyoon", "###### 3");
|
|
|
+ mCallController.onFrontEvent(CALLEVENTTYPE.DETECT_STRANGER, CALLTYPE.FRONT);
|
|
|
+ } else {
|
|
|
+ Log.v("yjyoon", "###### 4");
|
|
|
+
|
|
|
+ Log.i(this.TAG, "[onReceive] ignored DETECT_STRANGER BR.");
|
|
|
+ }
|
|
|
+ */
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- else if (kind == define.NOTIFY_FINISH_FRONT_DINGDONG) {
|
|
|
+ } else if (kind == define.NOTIFY_FINISH_FRONT_DINGDONG) {
|
|
|
|
|
|
sendHandlerMsgDelayed(HANDLERMSG.PLAY_FRONT_BELL, 0, 0, 200);
|
|
|
sendHandlerMsgDelayed(HANDLERMSG.SET_TALK_BTN_ENABLE, 0, 0, 200);
|
|
|
}
|
|
|
+ else if (kind == 9999) {
|
|
|
+
|
|
|
+
|
|
|
+ Log.v(this.TAG, "Received New call during Recording(9999). bRecodingStatus[" + Global.getRecordingStatus() + "]");
|
|
|
+
|
|
|
+ if (!Global.getRecordingStatus()) {
|
|
|
+ Log.v(this.TAG, "ignore new call!! bRecodingStatus[" + Global.getRecordingStatus() + "]");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ mFrontCamOpenCheckHandler.removeMessages(2);
|
|
|
+ mFrontCamOpenCheckHandler.removeMessages(3);
|
|
|
+
|
|
|
+ strCallOwner = intent.getStringExtra(CALLTRIGGER.CALLOWNER);
|
|
|
+ strCallEvent = intent.getStringExtra(CALLTRIGGER.CALLEVENTTYPE);
|
|
|
+ strCallType = intent.getStringExtra(CALLTRIGGER.CALLTYPE);
|
|
|
+ strRemoteInfo = intent.getStringExtra(CALLTRIGGER.REMOTEINFO);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
|
|
|
+
|
|
|
+ generateCallEvent();
|
|
|
+ }
|
|
|
}
|
|
|
else if (strAction.equals(Declare.BR.BR_SHOW_REMOTEVIEW_TRUE)) {
|
|
|
mCallController.onShowRemoteVideo(true);
|