1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407 |
- package kr.co.icontrols.wallpadcall.screen;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.Color;
- import android.os.Handler;
- import android.os.Looper;
- import android.os.Message;
- import android.util.Log;
- import android.view.Gravity;
- import android.view.KeyEvent;
- import android.view.LayoutInflater;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.widget.RelativeLayout;
- import android.widget.RelativeLayout.LayoutParams;
- import android.widget.SeekBar;
- import com.artncore.wallpadimap.RetProci;
- import com.util.LogUtil;
- import kr.co.icontrols.callengine.engine.AutoSaveVisitorPicture.startAutoSaveVisitorPicture;
- import kr.co.icontrols.callengine.engine.CallController.CallEventListener;
- import kr.co.icontrols.callengine.engine.CallManager.CALLEVENTTYPE;
- import kr.co.icontrols.callengine.engine.CallManager.CALLOWNER;
- import kr.co.icontrols.callengine.engine.CallManager.CALLPATH;
- import kr.co.icontrols.callengine.engine.CallManager.CALLSTATUS;
- import kr.co.icontrols.callengine.engine.CallManager.CALLTYPE;
- import kr.co.icontrols.callengine.engine.MissedCallVisitorPicture.startMissedCallVisitorPicture;
- import kr.co.icontrols.callengine.remotecall.RemoteCallManager;
- import kr.co.icontrols.wallpadcall.MainActivity;
- import kr.co.icontrols.wallpadcall.MainActivity.MAINEVENT;
- import kr.co.icontrols.wallpadcall.MainActivity.MainEventListener;
- import kr.co.icontrols.wallpadcall.R;
- import kr.co.icontrols.wallpadcall.declare.Common;
- import kr.co.icontrols.wallpadcall.declare.DataClasses.AutoPictureInfo;
- import kr.co.icontrols.wallpadcall.declare.DataClasses.MultiCallInfo;
- import kr.co.icontrols.wallpadcall.declare.DataClasses.RemoteIDInfo;
- import kr.co.icontrols.wallpadcall.declare.DataClasses.SmartRFCamLEDMode;
- import kr.co.icontrols.wallpadcall.declare.DataClasses.SmartRFCamStatusMode;
- import kr.co.icontrols.wallpadcall.declare.Declare;
- import kr.co.icontrols.wallpadcall.declare.Declare.DEVICENAME;
- import kr.co.icontrols.wallpadcall.declare.Global;
- import kr.co.icontrols.wallpadcall.declare.Global.BOARD_TYPE;
- import kr.co.icontrols.wallpadcall.declare.Global.CALLACTION;
- import kr.co.icontrols.wallpadcall.declare.Global.CALLDIRECTION;
- import kr.co.icontrols.wallpadcall.declare.Global.CALLRESULT;
- import kr.co.icontrols.wallpadcall.declare.Global.ConfigValues;
- import kr.co.icontrols.wallpadcall.declare.ID;
- import kr.co.icontrols.wallpadcall.imap.Request_check_sip_activation;
- import kr.co.icontrols.wallpadcall.imap.Request_lobby_open;
- import kr.co.icontrols.wallpadcall.imap.Request_start_talking;
- import kr.co.icontrols.wallpadsupport.WpadImageView;
- import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
- import kr.co.icontrols.wallpadsupport.WpadScale;
- import kr.co.icontrols.wallpadsupport.WpadScreen;
- import kr.co.icontrols.wallpadsupport.WpadSound.SND;
- import kr.co.icontrols.wallpadsupport.WpadTextView;
- import static kr.co.icontrols.callengine.remotecall.RemoteCallMSG.REMOTECALL_CMD.CMD_MULTICALL;
- public class TalkLobby extends WpadScreen implements CallEventListener, MainEventListener {
- private final String TAG = "TalkLobby";
- boolean bLOG = true;
- private void LOG(String log) {
- if (bLOG) Log.v(TAG, log);
- }
- boolean bLOG_DEBUG = false;
- private void LOG_DEBUG(String log) {
- if (bLOG_DEBUG) Log.d(TAG, log);
- }
- boolean bLOG_INFO = true;
- private void LOG_INFO(String log) {
- if (bLOG_INFO) Log.i(TAG, log);
- }
- boolean bLOG_WARN = true;
- private void LOG_WARN(String log) {
- if (bLOG_WARN) Log.i(TAG, log);
- }
- WpadImageView SCREEN_BG;
- WpadImageView IMG_LOBBY_BACKGROUND;
- WpadImageView IMG_VIDEO_MODULE;
- WpadImageView IMG_VOLUME;
- WpadImageView BTN_TALK;
- WpadImageView BTN_END;
- WpadImageView BTN_SAVE_PICTURE;
- WpadImageView BTN_DOOROPEN;
- WpadImageView BTN_RELIEF_FILTER_01, BTN_RELIEF_FILTER_02; //, BTN_RELIEF_FILTER_03, BTN_RELIEF_FILTER_04;
- SeekBar SEEKBAR_VOLUME;
- WpadTextView TXT_VOLUME_LEVEL;
- WpadTextView TXT_UPDATE_INFO;
- WpadImageView IMG_UPDATE_INFO;
- WpadImageView IMG_UPDATE_INFO_ICON;
- WpadImageView BTN_UPDATE_INFO;
- int nCurrentVolume = 0;
- Context mContext;
- public TalkLobby(Context context, RelativeLayout layout) {
- super(context, layout);
- try {
- mContext = context;
- Initialize();
- SCREEN_BG = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, R.drawable.bg_body, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.BG);
- ViewRegistration(layout, SCREEN_BG, 0, 0);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- IMG_LOBBY_BACKGROUND = new WpadImageView(context, TOUCH_KIND.NONE, 729, 544, R.drawable.bg_lobby, 0, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.BACKGROUND);
- ViewRegistration(layout, IMG_LOBBY_BACKGROUND, Common.ImgPosition.GetX(101), Common.ImgPosition.GetY(110));
- IMG_VIDEO_MODULE = new WpadImageView(context, TOUCH_KIND.NONE, 727, 540, R.drawable.image_lobby, 0, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.VIDEO_MODULE);
- ViewRegistration(layout, IMG_VIDEO_MODULE, Common.ImgPosition.GetX(103), Common.ImgPosition.GetY(112));
- }
- else {
- IMG_LOBBY_BACKGROUND = new WpadImageView(context, TOUCH_KIND.NONE, 722, 544, R.drawable.bg_lobby, 0, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.BACKGROUND);
- ViewRegistration(layout, IMG_LOBBY_BACKGROUND, Common.ImgPosition.GetX(93), Common.ImgPosition.GetY(110));
- IMG_VIDEO_MODULE = new WpadImageView(context, TOUCH_KIND.NONE, 720, 540, R.drawable.image_lobby, 0, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.VIDEO_MODULE);
- ViewRegistration(layout, IMG_VIDEO_MODULE, Common.ImgPosition.GetX(95), Common.ImgPosition.GetY(112));
- }
- IMG_VOLUME = new WpadImageView(context, TOUCH_KIND.NONE, 40, 40, R.drawable.bar_icon_sound, 0, ID.SCREEN.TALKLOBBY.ELEMENT.IMAGE.VOLUME);
- ViewRegistration(layout, IMG_VOLUME, Common.ImgPosition.GetX(454), Common.ImgPosition.GetY(707));
- TXT_VOLUME_LEVEL = new WpadTextView(context, false, 40, 40, Gravity.CENTER, Color.WHITE, Common.fontsize._30, false, ID.SCREEN.TALKLOBBY.ELEMENT.TEXT.VOLUME_LEVEL);
- ViewRegistration(layout, TXT_VOLUME_LEVEL, Common.ImgPosition.GetX(785), Common.ImgPosition.GetY(705));
- if (WpadScale.getWidthPixels() == WpadScale.DEFAULT_WIDTH_PIXELS) {
- LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- LinearLayout volumeLayout = (LinearLayout) inflater.inflate(R.layout.volume_seekbar_1280, null);
- LayoutParams volumeParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- int volMarginLeft = WpadScale.getWidth(Common.ImgPosition.GetX(507));
- int volMarginTop = WpadScale.getHeight(Common.ImgPosition.GetY(707));
- volumeParams.setMargins(volMarginLeft, volMarginTop, 0, 0);
- volumeLayout.setLayoutParams(volumeParams);
- SEEKBAR_VOLUME = (SeekBar) volumeLayout.findViewById(R.id.volumeSeekBar);
- SEEKBAR_VOLUME.setMax(100);
- SEEKBAR_VOLUME.setOnSeekBarChangeListener(mOnVolumeChangeListener);
- layout.addView(volumeLayout);
- }
- else {
- LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- LinearLayout volumeLayout = (LinearLayout) inflater.inflate(R.layout.volume_seekbar, null);
- LayoutParams volumeParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- int volMarginLeft = WpadScale.getWidth(Common.ImgPosition.GetX(502));
- int volMarginTop = WpadScale.getHeight(Common.ImgPosition.GetY(703));
- volumeParams.setMargins(volMarginLeft, volMarginTop, 0, 0);
- volumeLayout.setLayoutParams(volumeParams);
- SEEKBAR_VOLUME = (SeekBar) volumeLayout.findViewById(R.id.volumeSeekBar);
- SEEKBAR_VOLUME.setMax(100);
- SEEKBAR_VOLUME.setOnSeekBarChangeListener(mOnVolumeChangeListener);
- layout.addView(volumeLayout);
- }
- // 안심통화
- if (ConfigValues.bReliefCall) {
- BTN_TALK = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_call_normal, R.drawable.btn_call_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.TALK);
- ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
- BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled);
- BTN_END = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_endl_normal, R.drawable.btn_endl_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.END);
- ViewRegistration(layout, BTN_END, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(320));
- BTN_END.setButtonEventOffEnable(R.drawable.btn_endl_disabled);
- BTN_SAVE_PICTURE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_photo_normal, R.drawable.btn_photo_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.SAVE_PICTURE);
- ViewRegistration(layout, BTN_SAVE_PICTURE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
- BTN_DOOROPEN = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_open_normal, R.drawable.btn_open_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.DOOROPEN);
- ViewRegistration(layout, BTN_DOOROPEN, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(320));
- BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_open_disabled);
- /**
- * JEFF, 2020.01.02
- * 안심통화는 1, 2 단계만 지원한다.
- */
- int[] filterImg_01 = {R.drawable.btn_big_filter_1_normal, R.drawable.btn_big_filter_1_pressed};
- int[] filterSelectedImg_01 = {R.drawable.btn_big_filter_1_selected, R.drawable.btn_big_filter_1_selected};
- int[] filterImg_02 = {R.drawable.btn_big_filter_2_normal, R.drawable.btn_big_filter_2_pressed};
- int[] filterSelectedImg_02 = {R.drawable.btn_big_filter_2_selected, R.drawable.btn_big_filter_2_selected};
- // int[] filterImg_03 = {R.drawable.btn_filter_3_normal, R.drawable.btn_filter_3_pressed};
- // int[] filterSelectedImg_03 = {R.drawable.btn_filter_3_selected, R.drawable.btn_filter_3_selected};
- // int[] filterImg_04 = {R.drawable.btn_filter_4_normal, R.drawable.btn_filter_4_pressed};
- // int[] filterSelectedImg_04 = {R.drawable.btn_filter_4_selected, R.drawable.btn_filter_4_selected};
- BTN_RELIEF_FILTER_01 = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 124, filterImg_01, filterSelectedImg_01, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_01);
- ViewRegistration(layout, BTN_RELIEF_FILTER_01, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(530));
- BTN_RELIEF_FILTER_02 = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 124, filterImg_02, filterSelectedImg_02, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_02);
- ViewRegistration(layout, BTN_RELIEF_FILTER_02, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(530));
- // BTN_RELIEF_FILTER_03 = new WpadImageView(context, TOUCH_KIND.BUTTON, 93, 124, filterImg_03, filterSelectedImg_03, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_03);
- // ViewRegistration(layout, BTN_RELIEF_FILTER_03, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(530));
- //
- // BTN_RELIEF_FILTER_04 = new WpadImageView(context, TOUCH_KIND.BUTTON, 94, 124, filterImg_04, filterSelectedImg_04, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_04);
- // ViewRegistration(layout, BTN_RELIEF_FILTER_04, Common.ImgPosition.GetX(1094), Common.ImgPosition.GetY(530));
- }
- else {
- BTN_TALK = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_lobby_call_normal, R.drawable.btn_lobby_call_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.TALK);
- ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
- BTN_TALK.setButtonEventOffEnable(R.drawable.btn_lobby_call_disabled);
- BTN_END = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_lobby_end_normal, R.drawable.btn_lobby_end_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.END);
- ViewRegistration(layout, BTN_END, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(382));
- BTN_END.setButtonEventOffEnable(R.drawable.btn_lobby_end_disabled);
- BTN_SAVE_PICTURE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_lobby_photo_normal, R.drawable.btn_lobby_photo_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.SAVE_PICTURE);
- ViewRegistration(layout, BTN_SAVE_PICTURE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
- BTN_DOOROPEN = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_lobby_open_normal, R.drawable.btn_lobby_open_pressed, ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.DOOROPEN);
- ViewRegistration(layout, BTN_DOOROPEN, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(382));
- BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_lobby_open_disabled);
- BTN_RELIEF_FILTER_01 = null;
- BTN_RELIEF_FILTER_02 = null;
- // BTN_RELIEF_FILTER_03 = null;
- // BTN_RELIEF_FILTER_04 = null;
- }
- sendReliefFilterSelectBR(nSelectedFilter);
- displayScreenValues();
- sendHandlerMsg(HANDLERMSG.PROC_ADDCALL, 0, 0, null);
- MainActivity.mCallController.mVideoJNI.setComposite(true);
- MainActivity.mCallController.mVideoJNI.decoderStartOperation();
- MainActivity.mCallController.mCurrentScreenId_update = ID.SCREEN.SCREEN_TALKLOBBY;
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ScreenTalkLobby(Context context, RelativeLayout layout)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- protected void Initialize() {
- try {
- LOG_INFO("[Initialize]");
- if (MainActivity.mCallController.mCallInfo.getLOBBY() != CALLSTATUS.IDLE) ((MainActivity) mContext).setMenuBTNEnable(false);
- else ((MainActivity) mContext).setMenuBTNEnable(true);
- MainActivity.mCallController.setCallEventListener(this);
- ((MainActivity) mContext).setMainEventListener(this);
- int mMarginLeft = ((MainActivity) mContext).TopBackBtn.getVisibility() == View.VISIBLE ? 893 : 1019;
- ((MainActivity) mContext).setManualBtnVisible(((MainActivity) mContext).getManualUse(), mMarginLeft);
- ((MainActivity) mContext).setTopHideBtnVisible(true);
- super.setFinishTimerCreate(Common.FINISH_TIME_START_SCREEN);
- getVolume();
- if (MainActivity.bFFMPEGEnable) ((MainActivity)mContext).showRemoteVideo(false, false);
- MainActivity.mCallController.mVideoJNI.setDecoderInfo_V40(76, 85, 576, 405); // 영상 좌표 재설정 (세대 통화 멀티콜 이후 상황 대비)
- bEnableVisitorPic = true;
- nSelectedFilter = 0;
- // bEnableVisitorPic = false; // 부재중 방문객 사진 저장은 임시로 삭제한다.
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] Initialize()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void initCallVariables() {
- try {
- nSelectedFilter = 0;
- RemoteIDInfo.InitVariables();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] initCallVariables()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onClose() {
- super.onClose();
- try {
- LOG_INFO("[onClose]");
- MainActivity.m_iReliefCallNum = 0;
- ctrlAlphaBlending(false);
- //MainActivity.mCallController.mVideoJNI.decoderStopOperation();
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- if (TalkLobbyHandler != null) {
- TalkLobbyHandler.removeMessages(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE);
- TalkLobbyHandler.removeMessages(HANDLERMSG.SAVE_VISITORPICTURE);
- TalkLobbyHandler.removeMessages(HANDLERMSG.TAKE_VISITORPICTURE);
- }
- if (mPathCheckHandler != null) {
- mPathCheckHandler.removeMessages(0);
- mPathCheckHandler.removeMessages(1);
- }
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- ((MainActivity) mContext).m_bMissCall_Lobby = false;
- //MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.NONE, true);
- initCallVariables();
- if (ConfigValues.bReliefCall) selectReliefCallFilter(nSelectedFilter);
- MainActivity.mCallController.releaseCallEventListener();
- ((MainActivity) mContext).releaseMainEventListener();
- //((MainActivity)mContext).startVideoEncoding(false, false, false);
- //MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- Global.add1stCallHistoryInfoFinal();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onClose()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onBrReceive(Intent intent) {
- super.onBrReceive(intent);
- try {
- LOG_INFO("[onBrReceive] intent : " + intent);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onBrReceive()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onTouchEvent(View v, MotionEvent event) {
- try {
- int nEvent = event.getAction();
- int nID = v.getId();
- if (nEvent == MotionEvent.ACTION_UP) {
- LOG("[onTouchEvent] nID [" + nID + "], nEvent [" + nEvent + "]");
- if (ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.TALK <= nID && nID <= ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_02) {
- // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
- if (MainActivity.mCallController.mCallInfo.getLOBBY() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
- if (nID == ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.TALK) {enableEndBTN(false);
- enableOpenDoorBTN(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, null, 2000);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_OPENDOOR_BTN, 0, 0, null, 1000);
- //enableOpenDoorBTN(false);
- doTalk(CALLOWNER.WALLPAD);
- // Handler mHandler = new Handler();
- // mHandler.postDelayed(new Runnable() {
- // public void run() { // 시간 지난 후 실행할 코딩
- // enableOpenDoorBTN(true);
- // }
- // }, 1000);
- } else if (nID == ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.END) {
- bEnableVisitorPic = false;
- doEnd();
- } else if (nID == ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.SAVE_PICTURE) {
- String strVisitorPicResult = MainActivity.mCallController.saveVisitorPicture(CALLTYPE.LOBBY, MainActivity.mCallController.mCallInfo.getLOBBY(), RemoteIDInfo.strSIPID, true, false, false);
- LOG_INFO("[onTouchEvent] strVisitorPicResult [" + strVisitorPicResult + "]");
- enableSavePicBTN(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
- } else if (nID == ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.DOOROPEN) {
- if (!bSentiMAP) {
- sendHandlerMsgDelayed(HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null,3000); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
- doDoorOpen();
- //doEnd();
- }
- } else if (ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_01 <= nID && nID <= ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_04) {
- LOG_INFO("[onTouchEvent] [RELIEF_FILTER] BUTTON");
- enableEndBTN(false);
- enableOpenDoorBTN(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, null, 2000);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_OPENDOOR_BTN, 0, 0, null, 1000);
- selectReliefCallFilter(nID);
- doTalk(CALLOWNER.WALLPAD); // 통화시작 전에 필터버튼 클릭하면 변조되어 통화 시작
- }
- }
- else {
- Log.w(TAG, "[onTouchEvent] The touch event is not supported!! nID -> nID");
- }
- }
- else {
- Log.w(TAG, "[onTouchEvent] The touch event is not supported!! nEvent -> nEvent");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onTouchEvent(View v, MotionEvent event)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- public void onMainTouchEvent(MAINEVENT eEvent) {
- try {
- LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "]");
- if (eEvent == MAINEVENT.BTN_HOME) {
- if (MainActivity.mCallController.mCallInfo.getLOBBY() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
- finishWallpadCallApp();
- } else if (eEvent == MAINEVENT.BTN_HOME_MOBILE) {
- finishWallpadCallApp();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onMainTouchEvent(MAINEVENT eEvent)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onKeyDown(int keyCode, KeyEvent event) {
- LOG_INFO("[onKeyDown] keyCode [" + keyCode + "], event.getAction() [" + event.getAction() + "]");
- if (keyCode == Declare.BTN.TALK || keyCode == Declare.BTN.TALK_V40) {
- doTalkByBTN(CALLOWNER.WALLPAD);
- } else if (keyCode == Declare.BTN.DOOR_OPEN || keyCode == Declare.BTN.DOOR_OPEN_V40) {
- if (!bSentiMAP) {
- sendHandlerMsgDelayed(HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null, 3000); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
- doDoorOpen();
- //doEnd();
- }
- } else if (keyCode == Declare.BTN.PLAY_DECODED_VIDEO || keyCode == Declare.BTN.PLAY_DECODED_VIDEO_V40) {
- //ctrlAlphaBlending(true);
- if(((MainActivity) mContext).strCallPopupInfo.equals("yes"))
- {
- //Toast.makeText(mContext, "상대 로비폰을 업데이트 해주세요.", Toast.LENGTH_LONG).show();
- ctrlAlphaBlending(false);
- ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_UPDATEINFO);
- ((MainActivity) mContext).strCallPopupInfo = "NONE";
- Handler mHandler = new Handler();
- mHandler.postDelayed(new Runnable() {
- public void run() { // 시간 지난 후 실행할 코딩
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_UPDATEINFO);
- ctrlAlphaBlending(true);
- }
- }, 3000);
- }
- else {
- ctrlAlphaBlending(true);
- }
- }
- super.onKeyDown(keyCode, event);
- }
- @Override
- public void onCallEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strRemoteIP, String strRemoteSIPID, String strMessage) {
- try {
- LOG_INFO("[onCallEvent] eCallOwner [" + eCallOwner + "], eCallStatus [" + eCallStatus + "], eCallType [" + eCallType + "], strRemoteIP [" + strRemoteIP + "], strRemoteSIPID [" + strRemoteSIPID + "], strMessage [" + strMessage + "]");
- if (eCallType == CALLTYPE.NONE) return;
- if (eCallType == CALLTYPE.LOBBY) {
- MainActivity.mCallController.setRemoteInfo(strRemoteSIPID, strRemoteIP);
- sendHandlerMsg(HANDLERMSG.SET_BTN_STATUS, 0, 0, null);
- if (eCallStatus == CALLSTATUS.CALLED) {
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.LOBBY, false);
- if (Global.getRecordingStatus()) {
- // 거동수상자 녹화 중 호출 => 녹화 종료 및 팝업 닫힘 => 호출 지속
- LOG_WARN("[onCallEvent] STRANGER RECORDING IS RUNNING!!");
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_VIDEORECORD);
- ((MainActivity) (this.getContext())).stopNSaveRecordingFile(true, false);
- }
- Global.playMelodyRepeat(eCallType);
- super.setFinishTimerDestroy();
- MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED);
- ((MainActivity) mContext).displayRemoteID(RemoteIDInfo.strName);
- Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- ((MainActivity) mContext).m_bMissCall = false;
- ((MainActivity) mContext).m_bMissCall_Lobby = false;
- MainActivity.mCallController.acceptMoIPCall(false);
- MainActivity.mCallController.mCallInfo.setCallOwner(CALLOWNER.WALLPAD);
- if (ConfigValues.bUnoccupiedMode) {
- sendHandlerMsgDelayed(HANDLERMSG.SAVE_VISITORPICTURE, 0, 0, null, 5000); // 5초
- sendHandlerMsgDelayed(HANDLERMSG.SAVE_VISITORPICTURE, 0, 0, null, 10000); // 10초
- sendHandlerMsgDelayed(HANDLERMSG.CALL_FORWARD, 0, 0, null, 15000); // 15초
- } else {
- // 부재중인 경우를 대비하여 임시저장한다.
- sendHandlerMsgDelayed(HANDLERMSG.TAKE_VISITORPICTURE, 0, 0, strRemoteSIPID, 5000); // 5초
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- }
- else if (eCallStatus == CALLSTATUS.TALKING) {
- Global.stopMelodyRepeat();
- if (eCallOwner == CALLOWNER.MOBILE) {
- // 모바일에서 로비 호출 수신!! (방문객 원격통화)
- RemoteCallManager.bMobileTalk = true;
- ((MainActivity) mContext).showRemoteCallNoticeText(true); // 방문객원격통화 팝업 삭제 -> 상단 문구로 대체
- // ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_REMOTECALL);
- MainActivity.mCallController.acceptMoIPCall(true);
- send_start_talking_request_mobile(RemoteIDInfo.strIP);
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- }
- else {
- if (ConfigValues.bRemoteCall) RemoteCallManager.bMobileTalk = false;
- if (eCallOwner != CALLOWNER.WALLPAD) {
- ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- MainActivity.mCallController.setTalkPath(CALLPATH.SUBPHONE_MOIP);
- if (eCallOwner == CALLOWNER.SUB_WALLPAD) MainActivity.mCallController.setSubWallPadAudioPath();
- }
- else {
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.SET_TEMPSYSTEM_VOLUME, 0, 0);// 통화 중 임의 볼륨값 설정 seulki
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.NONE, false);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- MainActivity.mCallController.setTalkPath(CALLPATH.MOIP_IHND101_LOBBY);
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- MainActivity.mCallController.setTalkPath(CALLPATH.MOIP_IHN1010_LOBBY);
- }
- else {
- MainActivity.mCallController.setTalkPath(CALLPATH.MOIP);
- }
- }
- mPathCheckHandler.sendEmptyMessage(0);
- }
- MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.RESIDENCEnLOBBY);
- Global.change1stCallLogAction(CALLACTION.TALK);
- ((MainActivity) mContext).m_bMissCall_Lobby = true;
- }
- else if (eCallStatus == CALLSTATUS.END) {
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_ALL);
- ((MainActivity) mContext).finishManual(ID.MANUAL.MANUAL_ALL);
- ((MainActivity) mContext).displayRemoteID(null);
- if (eCallOwner == CALLOWNER.MOBILE) {
- MainActivity.mCallController.quitMoIPCall();
- // ((MainActivity) mContext).showRemoteCallNoticeText(false);
- }
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- MainActivity.mCallController.MultiCallScenarioManager();
- ctrlAlphaBlending(false);
- if(!((MainActivity) mContext).m_bMissCall_Lobby)
- ((MainActivity) mContext).m_bMissCall = true;
- ((MainActivity) mContext).m_bMissCall_Lobby = false;
- if(eCallOwner == CALLOWNER.WALLPAD)
- MainActivity.mSubPhoneController.notifyEndCall(eCallOwner, CALLTYPE.LOBBY);
- } else if (eCallStatus == CALLSTATUS.REJECT) {
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- ((MainActivity) mContext).displayRemoteID(null);
- MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- MainActivity.mCallController.stop2ndCallTimer();
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- Global.change1stCallLogAction(CALLACTION.REJECT);
- Global.add1stCallHistoryInfoFinal();
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- MainActivity.mCallController.MultiCallScenarioManager();
- //ctrlAlphaBlending(false);
- } else if (eCallStatus == CALLSTATUS.BUSY) {
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- ((MainActivity) mContext).displayRemoteID(null);
- MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- Global.change1stCallLogAction(CALLACTION.BUSY);
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- MainActivity.mCallController.MultiCallScenarioManager();
- } else if (eCallStatus == CALLSTATUS.CANCEL) {
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- ((MainActivity) mContext).displayRemoteID(null);
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- MainActivity.mCallController.stop2ndCallTimer();
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- Global.change1stCallLogAction(CALLACTION.CANCEL);
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- MainActivity.mCallController.MultiCallScenarioManager();
- //ctrlAlphaBlending(false);
- } else if (eCallStatus == CALLSTATUS.TIMEOUT_1STCALL) {
- bEnableVisitorPic = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- ((MainActivity) mContext).m_bMissCall = true;
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- if (eCallOwner != CALLOWNER.WALLPAD) {
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- }
- MainActivity.mCallController.quitMoIPCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.LOBBY, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_ALL);
- ((MainActivity) mContext).finishManual(ID.MANUAL.MANUAL_ALL);
- initCallVariables();
- ((MainActivity) mContext).displayRemoteID(null);
- Global.change1stCallLogAction(CALLACTION.CANCEL);
- Global.add1stCallHistoryInfoFinal();
- nSelectedFilter = 0;
- sendReliefFilterSelectBR(nSelectedFilter);
- MainActivity.mCallController.MultiCallScenarioManager();
- } else if (eCallStatus == CALLSTATUS.DOOR_OPEN) {
- if(!((MainActivity) mContext).m_bMissCall_Lobby)
- ((MainActivity) mContext).m_bMissCall = true;
- ((MainActivity) mContext).m_bMissCall_Lobby = false;
- sendHandlerMsg(HANDLERMSG.DOOR_OPEN, 0, 0, null); // 방문객 원격통화 모바일에서 문열림
- } else {
- Log.w(TAG, "[onCallEvent] Incorrect eCallStatus!!! eCallStatus = " + eCallStatus);
- }
- } else {
- onMultiCallEvent(eCallOwner, eCallStatus, eCallType, strRemoteIP, strRemoteSIPID, strMessage);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onCallEvent(CALLSTATUS eCallStatus, CALLTYPE eCallType, String strRemoteIP, String strRemoteSIPID, String strMessage)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- public void onMultiCallEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strRemoteIP, String strRemoteSIPID, String strMessage) {
- try {
- LOG_INFO("[onMultiCallEvent] eCallOwner [" + eCallOwner + "], eCallStatus [" + eCallStatus + "], eCallType [" + eCallType + "], strRemoteIP [" + strRemoteIP + "], strRemoteSIPID [" + strRemoteSIPID + "], strMessage [" + strMessage + "]");
- MainActivity.mCallController.mCallInfo.printCallStatus();
- MainActivity.mCallController.mCallInfo.printMultiCallStatus();
- if (eCallStatus == CALLSTATUS.CALLED) {
- if (eCallType == CALLTYPE.FRONT) {
- playFrontCamBell(true);
- if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
- // 멀티콜 없음
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.LOBBY, eCallType, eCallStatus, CALLOWNER.NONE, strRemoteSIPID, "", "", "세대현관", strRemoteIP);
- MainActivity.mCallController.mCallInfo.setMultiCallInfo(MCInfo);
- Global.make2ndCallHistoryInfo(eCallType.toString(), "NONE", CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- CALLSTATUS eLobbyCallStatus = MainActivity.mCallController.mCallInfo.getLOBBY();
- /**
- * JEFF, 2020.01.02
- * 모든통화에서 멀티콜 발생시 알림 팝업만 띄우고 busy처리 하도록 시나리오 수정
- */
- if (eLobbyCallStatus == CALLSTATUS.CALLING || eLobbyCallStatus == CALLSTATUS.CALLED || eLobbyCallStatus == CALLSTATUS.TALKING) {
- if (eCallOwner == CALLOWNER.WALLPAD || eCallOwner == CALLOWNER.NONE) {
- ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
- }
- else {
- if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.mCallInfo.setCallStatus(MainActivity.mCallController.mCallInfo.getMultiCallType(), CALLSTATUS.IDLE);
- doMultiCallReject();
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, null, 1000);
- }
- }
- else {
- LOG_WARN("[onMultiCallEvent] Invalid eLobbyCallStatus [" + eLobbyCallStatus + "]");
- }
- // if (eLobbyCallStatus == CALLSTATUS.CALLING || eLobbyCallStatus == CALLSTATUS.CALLED) {
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
- // } else if (eLobbyCallStatus == CALLSTATUS.TALKING) {
- // if (eCallOwner == CALLOWNER.MOBILE) {
- // // 방문객원격통화 멀티콜
- // MainActivity.mRemoteCallController.sendCmdToRemoteCall(CMD_MULTICALL, strRemoteSIPID, strRemoteIP, eCallType);
- // doMultiCallReject();
- // } else {
- // MainActivity.mCallController.set2ndCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED);
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL);
- // }
- // }
- // else {
- // LOG_WARN("[onMultiCallEvent] Invalid eLobbyCallStatus [" + eLobbyCallStatus + "]");
- // }
- } else {
- // 멀티콜 있음
- sendHandlerMsgDelayed(HANDLERMSG.OFF_FRONT, 0, 0, null, 2000);
- MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- return;
- }
- } else if (eCallType == CALLTYPE.LOBBY || eCallType == CALLTYPE.GUARD || eCallType == CALLTYPE.RESIDENCE) {
- if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
- // 멀티콜 없음
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.LOBBY, eCallType, eCallStatus, CALLOWNER.NONE, strRemoteSIPID, Integer.toString(MainActivity.mCallController.getRemoteDong(strRemoteSIPID)),
- Integer.toString(MainActivity.mCallController.getRemoteID(strRemoteSIPID)), MainActivity.mCallController.getRemoteName(strRemoteSIPID, strRemoteIP), strRemoteIP);
- MainActivity.mCallController.mCallInfo.setMultiCallInfo(MCInfo);
- Global.make2ndCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- CALLSTATUS eLobbyCallStatus = MainActivity.mCallController.mCallInfo.getLOBBY();
- /**
- * JEFF, 2020.01.02
- * 모든통화에서 멀티콜 발생시 알림 팝업만 띄우고 busy처리 하도록 시나리오 수정
- */
- if (eLobbyCallStatus == CALLSTATUS.CALLING || eLobbyCallStatus == CALLSTATUS.CALLED || eLobbyCallStatus == CALLSTATUS.TALKING) {
- if (eCallOwner == CALLOWNER.WALLPAD || eCallOwner == CALLOWNER.NONE) {
- ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
- }
- else {
- if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.mCallInfo.setCallStatus(MainActivity.mCallController.mCallInfo.getMultiCallType(), CALLSTATUS.IDLE);
- doMultiCallReject();
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, null, 1000);
- }
- }
- else {
- LOG_WARN("[onMultiCallEvent] Invalid eLobbyCallStatus [" + eLobbyCallStatus + "]");
- }
- // if (eLobbyCallStatus == CALLSTATUS.CALLING || eLobbyCallStatus == CALLSTATUS.CALLED) {
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
- // } else if (eLobbyCallStatus == CALLSTATUS.TALKING) {
- // if (eCallOwner == CALLOWNER.MOBILE) {
- // // 방문객원격통화 멀티콜
- // MainActivity.mRemoteCallController.sendCmdToRemoteCall(CMD_MULTICALL, strRemoteSIPID, strRemoteIP, eCallType);
- // doMultiCallReject();
- // } else {
- // MainActivity.mCallController.set2ndCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED);
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL);
- // }
- // } else {
- // LOG_WARN("[onMultiCallEvent] Invalid eLobbyCallStatus [" + eLobbyCallStatus + "]");
- // }
- } else {
- // 멀티콜 있음
- MainActivity.mCallController.rejectMoIPMultiCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- }
- } else if (eCallType == CALLTYPE.PSTN) {
- TalkPSTN.bPSTNCalled = true;
- if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
- // 멀티콜 없음
- if (eCallOwner == CALLOWNER.MOBILE) {
- // 방문객원격통화 멀티콜
- MainActivity.mRemoteCallController.sendCmdToRemoteCall(CMD_MULTICALL, strRemoteSIPID, strRemoteIP, eCallType);
- doMultiCallReject();
- } else {
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.FRONT, eCallType, eCallStatus, CALLOWNER.NONE, strRemoteSIPID, "", "", "NONE", strRemoteIP);
- MainActivity.mCallController.mCallInfo.setMultiCallInfo(MCInfo);
- Global.make2ndCallHistoryInfo(eCallType.toString(), "NONE", CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL);
- }
- } else {
- // 멀티콜 있음
- // 기존 멀티콜을 거절하고, 국선을 멀티콜로 설정한다.
- CALLTYPE eMulticallType = MainActivity.mCallController.mCallInfo.getMultiCallType();
- if (eMulticallType == CALLTYPE.FRONT) playFrontCamBell(false);
- else if (eMulticallType == CALLTYPE.LOBBY || eMulticallType == CALLTYPE.GUARD || eMulticallType == CALLTYPE.RESIDENCE) MainActivity.mCallController.rejectMoIPMultiCall();
- else LOG_WARN("[onMultiCallEvent] Invalid eMultiCallType [" + eMulticallType + "]");
- MainActivity.mCallController.mCallInfo.setCallStatus(eMulticallType, CALLSTATUS.IDLE);
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- MainActivity.mCallController.stop2ndCallTimer();
- Global.add2ndCallHistoryInfo(CALLRESULT.IN_MISS);
- LOG_WARN("[onMultiCallEvent] Another multicall is processing. Change multicall to PSTN multicall!!");
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.LOBBY, eCallType, eCallStatus, CALLOWNER.NONE, strRemoteSIPID, "", "", "NONE", strRemoteIP);
- MainActivity.mCallController.mCallInfo.setMultiCallInfo(MCInfo);
- Global.make2ndCallHistoryInfo(eCallType.toString(), "NONE", CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- MainActivity.mCallController.mPopupEventListener.onMulticallChange(eCallType, eCallStatus, "");
- }
- } else {
- LOG_WARN("[onMultiCallEvent] Invalid CallType [" + eCallType + "]");
- }
- } else if (eCallStatus == CALLSTATUS.CALLERID) {
- MainActivity.mCallController.mCallInfo.updateMultiCallName(strRemoteSIPID);
- Global.change2ndCallLogSIPID(CALLTYPE.PSTN.toString() + ":" + strRemoteSIPID);
- } else if (eCallStatus == CALLSTATUS.END) {
- MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- if (MainActivity.mCallController.mCallInfo.getMultiCallType() == eCallType) {
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- MainActivity.mCallController.stop2ndCallTimer();
- Global.add2ndCallHistoryInfo(CALLRESULT.IN_MISS);
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_MULTICALL);
- } else LOG_WARN("[onMultiCallEvent] Invalid CallType [" + eCallType + "]");
- } else if (eCallStatus == CALLSTATUS.CANCEL) {
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop2ndCallTimer();
- Global.add2ndCallHistoryInfo(CALLRESULT.IN_REJECT);
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_MULTICALL);
- } else if (eCallStatus == CALLSTATUS.TIMEOUT_2NDCALL) {
- // 거동수상자 녹화기능 수정중 (추후 동작상태보고 수정)
- // if (eCallType == CALLTYPE.FRONT_RECORD) {
- // // [스마트현관카메라] 거동수상자 녹화 팝업 미선택시 녹화 시작
- // ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_MULTICALL_RECORD);
- // MainActivity.mCallController.stop2ndCallTimer();
- // MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- // doMultiCallAccept();
- // }
- // else {
- // doMultiCallReject();
- // Global.add2ndCallHistoryInfo(CALLRESULT.IN_MISS);
- // MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- // MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- // ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_MULTICALL);
- // }
- doMultiCallReject();
- Global.add2ndCallHistoryInfo(CALLRESULT.IN_MISS);
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_MULTICALL);
- } else if (eCallStatus == CALLSTATUS.RECORDING) {
- // [스마트현관카메라] 로비 통화상태중(호출수신 또는 통화중) 거동수상자 감지 이벤트 발생하는 경우
- LOG("[onMultiCallEvent] MainActivity.mCallController.mCallInfo.getMultiCallStatus() = " + MainActivity.mCallController.mCallInfo.getMultiCallStatus());
- if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.LOBBY, eCallType, eCallStatus, CALLOWNER.NONE, strRemoteSIPID, "", "", "세대현관", strRemoteIP);
- MainActivity.mCallController.mCallInfo.setMultiCallInfo(MCInfo);
- CALLSTATUS eLobbyCallStatus = MainActivity.mCallController.mCallInfo.getLOBBY();
- LOG("[onMultiCallEvent] eLobbyCallStatus [" + eLobbyCallStatus + "]");
- if (eLobbyCallStatus == CALLSTATUS.CALLED || eLobbyCallStatus == CALLSTATUS.TALKING) {
- MainActivity.mCallController.set2ndCallTimer(eCallType, MainActivity.mCallController.mCTT.WAIT_RECORD);
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_RECORD);
- ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE); // 멀티콜 시나리오가 변경됨에 따라 팝업 수정
- } else {
- LOG_WARN("[onMultiCallEvent] Invalid eLobbyCallStatus [" + eLobbyCallStatus + "]");
- }
- } else {
- // 멀티콜 있음
- }
- } else {
- LOG_WARN("[onMultiCallEvent] Invalid CallStatus [" + eCallStatus + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onMultiCallEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strRemoteIP, String strRemoteSIPID, String strMessage)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- public void onSubPhoneEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strTargetID, String strMessage) {
- try {
- LOG_INFO("[onSubPhoneEvent] eCallOwner [" + eCallOwner + "], eCallStatus [" + eCallStatus + "], eCallType [" + eCallType + "], strTargetID [" + strTargetID + "], strMessage [" + strMessage + "]");
- if (eCallOwner == CALLOWNER.UNIVERSAL_DEVICE && eCallStatus == CALLSTATUS.DOOR_OPEN) {
- if (doSubPhoneDoorOpen(eCallOwner, CALLTYPE.LOBBY))
- MainActivity.mSubPhoneController.sendACKDoorOpen(eCallOwner, CALLTYPE.LOBBY);
- }
- if (eCallType == CALLTYPE.NONE) return;
- if (eCallType == CALLTYPE.LOBBY) {
- if (eCallStatus == CALLSTATUS.TALKING) {
- if (eCallOwner != CALLOWNER.WALLPAD) {
- doTalk(eCallOwner);
- } else {
- MainActivity.mCallController.setTalkPath(CALLPATH.SUBPHONE_MOIP);
- }
- } else if (eCallStatus == CALLSTATUS.END) {
- if (eCallOwner != CALLOWNER.WALLPAD) {
- doEnd();
- }
- } else if (eCallStatus == CALLSTATUS.DOOR_OPEN) {
- if (!bSentiMAP) {
- if (doSubPhoneDoorOpen(eCallOwner, eCallType)) {
- MainActivity.mSubPhoneController.sendACKDoorOpen(eCallOwner, eCallType);
- Thread.sleep(2000);
- doEnd();
- }
- }
- } else {
- Log.w(TAG, "[onSubPhoneEvent] Incorrect eCallStatus!!! eCallStatus = " + eCallStatus);
- }
- } else {
- Log.w(TAG, "[onSubPhoneEvent] Incorrect eCallType!!! eCallType = " + eCallType);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onSubPhoneEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strMessage)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- public void onVideoSet(boolean bSet, String strRemoteSIPID) {
- try {
- LOG_INFO("[onVideoSet] bSet [" + bSet + "], strRemoteSIPID [" + strRemoteSIPID + "]");
- if (bSet) {
- if (!strRemoteSIPID.contains(DEVICENAME.strType_Lobby)) {
- Log.e(TAG, "[onVideoSet] Device name is not matched!!!");
- return;
- }
- }
- if (!bSet) ctrlAlphaBlending(bSet);
- MainActivity.mCallController.mSIPInterface.videoSet(bSet, false, bSet);
- //((MainActivity)mContext).startVideoEncoding(bSet, false, bSet);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onVideoSet(boolean bSet, String strRemoteSIPID)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- public void onShowRemoteVideo(boolean bShow) {
- try {
- LOG_INFO("[onShowRemoteVideo] bShow [" + bShow + "]");
- if (MainActivity.bFFMPEGEnable) ((MainActivity)mContext).showRemoteVideo(bShow, false);
- if (bShow) {
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
- }
- else {
- enableSavePicBTN(false);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onShowRemoteVideo(boolean bShow)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onPopupResult(Intent data) {
- try {
- int nScreen = data.getIntExtra("SCREEN", -1);
- int nID = data.getIntExtra("POPUP_BTN", -1);
- boolean bFinish = data.getBooleanExtra("FINISH_FLAG", false);
- Log.d(TAG, "[onPopupResult] nScreen: " + nScreen + ", nID: " + nID + ", bFinish: " + bFinish);
- if (nScreen == ID.POPUP.POPUP_MULTICALL) {
- if (nID == ID.POPUP.MUTICALL.ELEMENT.BUTTON.ACCEPT) {
- LOG_INFO("[onPopupResult] ID.POPUP.MUTICALL.ELEMENT.BUTTON.ACCEPT");
- MainActivity.mCallController.stop2ndCallTimer();
- //MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- ctrlAlphaBlending(false);
- doMultiCallAccept();
- } else if (nID == ID.POPUP.MUTICALL.ELEMENT.BUTTON.REJECT) {
- LOG_INFO("[onPopupResult] ID.POPUP.MUTICALL.ELEMENT.BUTTON.REJECT");
- if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.mCallInfo.setCallStatus(MainActivity.mCallController.mCallInfo.getMultiCallType(), CALLSTATUS.IDLE);
- doMultiCallReject();
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 현재 통화패스가 로비통화일 경우 멀티콜 거절시 GUI 화면이 아래로(영상이 위로)
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, null, 1000);
- }
- if (bFinish) MainActivity.mIOInterface.ctrlPopupGUI(false); // 현재 통화패스가 로비통화일 경우 멀티콜 팝업 닫히면 GUI 화면이 아래로(영상이 위로)
- } else if (nScreen == ID.POPUP.POPUP_NOTICE_SUBPHONETALK) {
- if (nID == ID.POPUP.NOTICE_SUBPHONETALK.ELEMENT.BUTTON.END) {
- LOG_INFO("[onPopupResult] ID.POPUP.NOTICE_SUBPHONETALK.ELEMENT.BUTTON.END");
- MainActivity.mCallController.stop2ndCallTimer();
- doEnd();
- }
- }
- else if (nScreen == ID.POPUP.POPUP_MULTICALL_NOTICE) {
- if (nID == ID.POPUP.MUTICALL_NOTICE.ELEMENT.BUTTON.CONFIRM) {
- LOG_INFO("[onPopupResult] ID.POPUP.POPUP_MULTICALL_NOTICE.ELEMENT.BUTTON.CONFIRM");
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 현재 화면이 로비통화일 경우 멀티콜 알림 팝업 닫힐시 GUI 화면이 아래로(영상이 위로)
- /**
- * JEFF, 2020.01.01
- * 모든 통화에서 멀티콜을 막음
- */
- if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.mCallInfo.setCallStatus(MainActivity.mCallController.mCallInfo.getMultiCallType(), CALLSTATUS.IDLE);
- doMultiCallReject();
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, null, 1000);
- }
- }
- else if (nScreen == ID.POPUP.POPUP_MULTICALL_RECORD) {
- if (nID == ID.POPUP.MULTICALL_RECORD.ELEMENT.BUTTON.OK) {
- LOG_INFO("[onPopupResult] ID.POPUP.MULTICALL_RECORD.ELEMENT.BUTTON.OK");
- // [스마트현관카메라] 현재통화 종료 및 영상 녹화 시작
- MainActivity.mCallController.stop2ndCallTimer();
- //MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- MainActivity.mCallController.mSIPInterface.videoSet(false, false, false);
- ctrlAlphaBlending(false);
- doMultiCallAccept();
- } else if (nID == ID.POPUP.MULTICALL_RECORD.ELEMENT.BUTTON.CANCEL) {
- LOG_INFO("[onPopupResult] ID.POPUP.MULTICALL_RECORD.ELEMENT.BUTTON.CANCEL");
- // [스마트현관카메라] 거동수상자 녹화 취소 및 현재 통화상태 유지
- MainActivity.mCallController.stop2ndCallTimer();
- doMultiCallReject();
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 현재 통화패스가 로비통화일 경우 멀티콜 거절시 GUI 화면이 아래로(영상이 위로)
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, null, 1000);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF); // LED OFF
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF); // MODE OFF
- }
- } else if (nScreen == ID.POPUP.POPUP_NOTICE_REMOTECALL) {
- if (nID == ID.POPUP.NOTICE_REMOTECALL.ELEMENT.BUTTON.END) {
- LOG_INFO("[onPopupResult] ID.POPUP.NOTICE_REMOTECALL.ELEMENT.BUTTON.END");
- MainActivity.mRemoteCallController.sendCloseRemoteCall();
- MainActivity.mCallController.quitMoIPCall();
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onPopupResult(Intent data)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doTalk(CALLOWNER eCallOwner) {
- try {
- LOG_INFO("[doTalk] eCallOwner [" + eCallOwner + "], nSelectedFilter [" + nSelectedFilter + "]");
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- //MainActivity.mCallController.acceptMoIPCall(false);
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- send_start_talking_request(RemoteIDInfo.strIP);
- enableSavePicBTN(true);
- }
- else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- //MainActivity.mCallController.acceptMoIPCall(false);
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- send_start_talking_request(RemoteIDInfo.strIP);
- enableSavePicBTN(true);
- }
- else {
- LOG_INFO("[doTalk] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doTalk(CALLOWNER eCallOwner)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doEnd() {
- try {
- if (MainActivity.mCallController.mCallInfo.getIDLECnt() != MainActivity.mCallController.mCallInfo.IDLECNT_MAX) {
- LOG_INFO("[doEnd] CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- ctrlAlphaBlending(false);
- //MainActivity.mCallController.mVideoJNI.setPreviewInfo_V40(0, 0, 0, 0);
- //MainActivity.mIOInterface.ctrlPopupGUI_Resi(false, false);
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- Global.change1stCallLogAction(CALLACTION.REJECT);
- Global.stopMelodyRepeat();
- MainActivity.mCallController.quitMoIPCall();
- }
- else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.MOBILE)
- MainActivity.mRemoteCallController.sendCloseRemoteCall();
- MainActivity.mCallController.quitMoIPCall();
- }
- else {
- LOG_INFO("[doEnd] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- MainActivity.mCallController.quitMoIPCall();
- }
- } else {
- LOG_INFO("[doEnd] IDLE Cnt is not MAX [" + MainActivity.mCallController.mCallInfo.IDLECNT_MAX + "]");
- MainActivity.mCallController.mCallInfo.printCallStatus();
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doEnd()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doTalkByBTN(CALLOWNER eCallOwner) {
- try {
- LOG_INFO("[doTalkByBTN] CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- send_start_talking_request(RemoteIDInfo.strIP);
- //MainActivity.mCallController.acceptMoIPCall(false);
- //MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- MainActivity.mCallController.quitMoIPCall();
- } else {
- LOG_INFO("[doTalkByBTN] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doTalkByBTN(CALLOWNER eCallOwner)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doDoorOpen() {
- try {
- if(!((MainActivity) mContext).m_bMissCall_Lobby)
- ((MainActivity) mContext).m_bMissCall = true;
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- Global.stopMelodyRepeat();
- // Global.changeVolumeMoIPMode(CALLTYPE.NONE);
- if (!send_lobby_open_request(RemoteIDInfo.strIP)) {
- MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
- }
- Global.change1stCallLogAction(CALLACTION.DOOR);
- } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- // Global.changeVolumeMoIPMode(CALLTYPE.NONE);
- if (!send_lobby_open_request(RemoteIDInfo.strIP)) {
- MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
- }
- Global.change1stCallLogAction(CALLACTION.TALK_DOOR);
- } else {
- LOG_INFO("[doDoorOpen] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doDoorOpen() : " + e);
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private boolean doSubPhoneDoorOpen(CALLOWNER eCallOwner, CALLTYPE eCallType) {
- try {
- LOG_WARN("[doSubPhoneDoorOpen] eCallOwner [" + eCallOwner + "], eCallType [" + eCallType + "]");
- if (eCallType != CALLTYPE.LOBBY) {
- LOG_WARN("[doSubPhoneDoorOpen] eCallType is wrong eCallType [" + eCallType + "]");
- return false;
- }
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || eCallOwner == CALLOWNER.UNIVERSAL_DEVICE) {
- Global.stopMelodyRepeat();
- if (!send_lobby_open_request(RemoteIDInfo.strIP)) {
- MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
- return false;
- }
- return true;
- }
- return false;
- } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || eCallOwner == CALLOWNER.UNIVERSAL_DEVICE) {
- if (!send_lobby_open_request(RemoteIDInfo.strIP)) {
- MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
- return false;
- }
- return true;
- }
- return false;
- } else {
- LOG_INFO("[doDoorOpen] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- return false;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- return false;
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doSubPhoneDoorOpen(CALLOWNER eCallOwner, CALLTYPE eCallType)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- return false;
- }
- }
- private void doMultiCallAccept() {
- try {
- LOG("[doMultiCallAccept]");
- MainActivity.mCallController.mCallInfo.setMultiCallAcceptFlag(true);
- doEnd();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doMultiCallAccept()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doMultiCallReject() {
- try {
- CALLTYPE eMultiCallType = MainActivity.mCallController.mCallInfo.getMultiCallType();
- Log.d(TAG, "[doMultiCallReject] eMultiCallType [" + eMultiCallType + "]");
- if (eMultiCallType == CALLTYPE.FRONT) {
- playFrontCamBell(false);
- MainActivity.mCallController.mCallInfo.setCallStatus(eMultiCallType, CALLSTATUS.IDLE);
- } else if (eMultiCallType == CALLTYPE.LOBBY || eMultiCallType == CALLTYPE.GUARD || eMultiCallType == CALLTYPE.RESIDENCE) {
- MainActivity.mCallController.rejectMoIPMultiCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(eMultiCallType, CALLSTATUS.IDLE);
- } else if (eMultiCallType == CALLTYPE.PSTN) {
- if(MainActivity.mPSTNController!=null)
- MainActivity.mPSTNController.sendReject();
- MainActivity.mCallController.onPSTNEvent(CALLEVENTTYPE.CANCEL_CALL, null, null);
- MainActivity.mCallController.mCallInfo.setCallStatus(eMultiCallType, CALLSTATUS.IDLE);
- } else {
- LOG_WARN("[doMultiCallReject] Invalid eMultiCallType [" + eMultiCallType + "]");
- }
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doMultiCallReject()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- boolean bMultiCallAccept = false; // 통화 버튼 활성화 여부를 판단하기 위한 플래그 (멀티콜 수락시 통화버튼 활성화 하면 안됨)
- private void procAddCall() {
- try {
- LOG("[procAddCall]");
- CALLTYPE eMType = MainActivity.mCallController.mCallInfo.getMultiCallType();
- CALLSTATUS eMStatus = MainActivity.mCallController.mCallInfo.getMultiCallStatus();
- CALLOWNER eCallOwner = MainActivity.mCallController.mCallInfo.getMultiCallOwner();
- LOG("[procAddCall] eMType [" + eMType + "], eMStatus [" + eMStatus + "], CallOwner [" + eCallOwner + "]");
- if (eMType == CALLTYPE.LOBBY && eMStatus == CALLSTATUS.CALLED) {
- RemoteIDInfo.strIP = MainActivity.mCallController.mCallInfo.getMultiCall_IP();
- Global.replace1stBy2ndCallHistory();
- doTalk(eCallOwner);
- if (MainActivity.mCallController.mCallInfo.getMultiCallAccept()) {
- // 멀티콜 수락 (통화시작)
- bMultiCallAccept = true;
- LOG("[procAddCall] bMultiCallAccept [" + bMultiCallAccept + "]");
- if (MainActivity.mCallController.mCallInfo.getCallOwner() != CALLOWNER.WALLPAD) {
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.LOBBY, false);
- }
- super.setFinishTimerDestroy();
- MainActivity.mCallController.set1stCallTimer(eMType, MainActivity.mCallController.mCTT.RESIDENCEnLOBBY);
- doTalk(eCallOwner);
- } else {
- // 멀티콜 수신중 (호출수신중)
- if (MainActivity.mCallController.mCallInfo.getCallOwner() != CALLOWNER.WALLPAD) {
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.LOBBY, false);
- }
- //MainActivity.mCallController.mSIPInterface.videoSet(true, false, true);
- MainActivity.mCallController.mSIPInterface.videoSet(false, false, true);
- if (eCallOwner == CALLOWNER.WALLPAD) ctrlAlphaBlending(true); // seulki
- Global.playMelodyRepeat(eMType);
- super.setFinishTimerDestroy();
- MainActivity.mCallController.set1stCallTimer(eMType, MainActivity.mCallController.mCTT.CALLED);
- }
- sendHandlerMsg(HANDLERMSG.SET_BTN_STATUS, 0, 0, null);
- ((MainActivity) mContext).displayRemoteID(MainActivity.mCallController.mCallInfo.getMultiCall_Name());
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- } else {
- LOG("[procAddCall] No MultiCall!!");
- // 멀티콜 없음
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] procAddCall()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void playFrontCamBell(boolean bBell) {
- try {
- MainActivity.mIOInterface.ctrlFrontCamPower(bBell);
- MainActivity.mIOInterface.ctrlFrontCamBell(bBell);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- if (bBell) {
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- } else {
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] playFrontCamBell(boolean bBell)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void ctrlAlphaBlending(boolean bON) {
- try {
- LOG_INFO("[ctrlAlphaBlending] bON [" + bON + "]");
- int BOARDTYPE = ConfigValues.DEVICE_BOARDTYPE;
- if (BOARDTYPE == BOARD_TYPE.V40_IGW300 || BOARDTYPE == BOARD_TYPE.V40 || BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT || BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if (bON) {
- // IMG_VIDEO_MODULE.setImageResource(R.drawable.video_black_back_test_4);
- // 다담 Alphablending 적용을 위한 컬러키 수정 편의를 위하여
- IMG_VIDEO_MODULE.setImageResource(0);
- IMG_VIDEO_MODULE.setBackgroundColor(Color.argb(0, 0, 0, 0));
- }
- else {
- IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
- }
- MainActivity.mIOInterface.ctrlPopupGUI(!bON);
- }
- else {
- Log.w(TAG, "[ctrlAlphaBlending] Not supported BOARDTYPE!! [" + BOARDTYPE + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ctrlAlphaBlending(boolean bON)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void displayScreenValues() {
- try {
- getVolume();
- drawVolume();
- if (ConfigValues.bReliefCall) {
- selectReliefCallFilter(nSelectedFilter);
- }
- enableSavePicBTN(false);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] displayScreenValues()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setBTNStatus() {
- try {
- // LOG("[setBTNStatus] MainActivity.mCallController.mCallInfo.getLOBBY [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- // 로비 통화 호출 수신 3초 후 통화시작/통화종료/문열림 가능하도록 버튼 처리
- enableTalkBTN(false);
- enableEndBTN(false);
- enableOpenDoorBTN(false);
- LOG("[setBTNStatus] bMultiCallAccept [" + bMultiCallAccept + "]");
- if (!bMultiCallAccept) {
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_TALK_BTN, 0, 0, null, 2000); // 멀티콜 수락시 통화버튼 활성화 안함
- }
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, null, 2000);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_OPENDOOR_BTN, 0, 0, null, 2000);
- if (ConfigValues.bReliefCall) {
- BTN_RELIEF_FILTER_01.setButtonEventOffDisable();
- BTN_RELIEF_FILTER_02.setButtonEventOffDisable();
- // BTN_RELIEF_FILTER_03.setButtonEventOffDisable();
- // BTN_RELIEF_FILTER_04.setButtonEventOffDisable();
- }
- bSentiMAP = false;
- runFlickerCallLED();
- } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- enableTalkBTN(false);
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.MOBILE) {
- enableSavePicBTN(false);
- enableOpenDoorBTN(false);
- }
- setOnCallLED();
- } else {
- ((MainActivity) mContext).setMenuBTNEnable(true);
- enableTalkBTN(false);
- enableEndBTN(false);
- enableOpenDoorBTN(false);
- enableSavePicBTN(false);
- if (ConfigValues.bReliefCall) {
- BTN_RELIEF_FILTER_01.setButtonEventOffEnable(R.drawable.btn_big_filter_1_normal);
- BTN_RELIEF_FILTER_02.setButtonEventOffEnable(R.drawable.btn_big_filter_2_normal);
- // BTN_RELIEF_FILTER_03.setButtonEventOffEnable(R.drawable.btn_filter_3_normal);
- // BTN_RELIEF_FILTER_04.setButtonEventOffEnable(R.drawable.btn_filter_4_normal);
- }
- setOffCallLED();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setBTNStatus()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setBTNLEDStatus() {
- try {
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
- runFlickerCallLED();
- } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- setOnCallLED();
- } else {
- setOffCallLED();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setBTNLEDStatus()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void enableTalkBTN(boolean bEnable) {
- try {
- LOG("[enableTalkBTN] bEnable [" + bEnable + "]");
- if (bEnable) {
- // 이벤트 on
- if (ConfigValues.bReliefCall)
- BTN_TALK.setImageResource(R.drawable.btn_call_normal);
- else BTN_TALK.setImageResource(R.drawable.btn_lobby_call_normal);
- BTN_TALK.setButtonEventOffDisable();
- } else {
- // 이벤트 off
- if (ConfigValues.bReliefCall)
- BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled);
- else BTN_TALK.setButtonEventOffEnable(R.drawable.btn_lobby_call_disabled);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableTalkBTN(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void enableEndBTN(boolean bEnable) {
- try {
- LOG("[enableEndBTN] bEnable [" + bEnable + "]");
- if (bEnable) {
- // 이벤트 on
- if (ConfigValues.bReliefCall)
- BTN_END.setImageResource(R.drawable.btn_endl_normal);
- else BTN_END.setImageResource(R.drawable.btn_lobby_end_normal);
- BTN_END.setButtonEventOffDisable();
- ((MainActivity) mContext).TopHomeBtn.setButtonEventOffDisable();
- } else {
- // 이벤트 off
- if (ConfigValues.bReliefCall)
- BTN_END.setButtonEventOffEnable(R.drawable.btn_endl_disabled);
- else BTN_END.setButtonEventOffEnable(R.drawable.btn_lobby_end_disabled);
- ((MainActivity) mContext).TopHomeBtn.setButtonEventOffEnable();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setEndBtnStatus(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void enableOpenDoorBTN(boolean bEnable) {
- try {
- LOG("[enableOpenDoorBTN] bEnable [" + bEnable + "]");
- if (bEnable) {
- // 이벤트 on
- if (ConfigValues.bReliefCall)
- BTN_DOOROPEN.setImageResource(R.drawable.btn_open_normal);
- else BTN_DOOROPEN.setImageResource(R.drawable.btn_lobby_open_normal);
- BTN_DOOROPEN.setButtonEventOffDisable();
- } else {
- // 이벤트 off
- if (ConfigValues.bReliefCall)
- BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_open_disabled);
- else BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_lobby_open_disabled);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableOpenDoorBTN(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void enableSavePicBTN(boolean bEnable) {
- try {
- if (bEnable) {
- if (ConfigValues.bReliefCall)
- BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_photo_normal);
- else BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_lobby_photo_normal);
- BTN_SAVE_PICTURE.setButtonEventOffDisable();
- } else {
- if (ConfigValues.bReliefCall)
- BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
- else BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_lobby_photo_disabled);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableSavePicBTN(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- boolean bSentiMAP = false;
- int nCurrentMicGain = 0;
- private boolean send_lobby_open_request(String strTargetIP) {
- LOG_INFO("[send_lobby_open_request] strTargetIP [" + strTargetIP + "]");
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- nCurrentMicGain = MainActivity.mIOInterface.getMICGain();
- try {
- bSentiMAP = true;
- Request_lobby_open lobby_open = new Request_lobby_open(mContext);
- if (lobby_open.send_lobby_open(strTargetIP, null)) {
- lobby_open.setResultCtrl(new RetProci() {
- @Override
- public void ProcSuccess() {
- LOG_INFO("[send_lobby_open_request] ProcSuccess()");
- // hideLobbyVideo();
- // if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
- // MainActivity.mIOInterface.setMICGain(0); // 월패드에 출력되는 문열림 멘트가 월패드 마이크를 통해 로비폰에 전달되므로, 멘트 출력전에 Micgain을 0으로 설정한다.
- // }
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- // MainActivity.mSound.Play(SND.mode.OPENDOOR);
- mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
- // 출입 데이터 기록(로비 문열림)
- // WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
- // WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
- // WpadAccessData.closeDB();
- enableTalkBTN(false);
- enableEndBTN(false);
- enableOpenDoorBTN(false);
- enableSavePicBTN(false);
- if (ConfigValues.bReliefCall) {
- BTN_RELIEF_FILTER_01.setButtonEventOffEnable(R.drawable.btn_big_filter_1_normal);
- BTN_RELIEF_FILTER_02.setButtonEventOffEnable(R.drawable.btn_big_filter_2_normal);
- // BTN_RELIEF_FILTER_03.setButtonEventOffEnable(R.drawable.btn_filter_3_normal);
- // BTN_RELIEF_FILTER_04.setButtonEventOffEnable(R.drawable.btn_filter_4_normal);
- }
- }
- @Override
- public void ProcError() {
- LOG_INFO("[send_check_sip_activation_request] ProcError()");
- bSentiMAP = false;
- MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
- // mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
- }
- @Override
- public void ProcDoing() {
- LOG_INFO("[send_check_sip_activation_request] ProcDoing()");
- bSentiMAP = false;
- }
- });
- return true;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- return false;
- }
- // 방문자 사진 자동 저장
- boolean bEnableVisitorPic = false;
- private void startSaveVisitorPicture(CALLTYPE eCallType, CALLSTATUS eCallStatus) {
- try {
- Log.d(TAG, "[startSaveVisitorPicture] eCallType: " + eCallType);
- AutoPictureInfo mAutoPictureInfo = new AutoPictureInfo();
- mAutoPictureInfo.setData(ConfigValues.strDong, ConfigValues.strHo, eCallType,eCallStatus, RemoteIDInfo.strSIPID, "null");
- startAutoSaveVisitorPicture mstartAutoSaveVisitorPicture = new startAutoSaveVisitorPicture(mContext, mAutoPictureInfo, false);
- mstartAutoSaveVisitorPicture.start();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startSaveVisitorPicture()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void startTakeVisitorPicture(String strSIPID) {
- try {
- AutoPictureInfo mAutoPictureInfo = new AutoPictureInfo();
- mAutoPictureInfo.setData(ConfigValues.strDong, ConfigValues.strHo, CALLTYPE.LOBBY, MainActivity.mCallController.mCallInfo.getLOBBY(), strSIPID, "null");
- startMissedCallVisitorPicture mstartMIssedCallVisitorPicture = new startMissedCallVisitorPicture(mContext, mAutoPictureInfo, false);
- mstartMIssedCallVisitorPicture.start();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startTakeVisitorPicture()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- String strForwardingIP = "ERROR";
- private void runCallForward() {
- try {
- LOG("[checkCallForward] ConfigValues.bOccupiedMode [" + ConfigValues.bUnoccupiedMode + "]");
- if (ConfigValues.bUnoccupiedMode) {
- for (int i = 0; i < ConfigValues.mGuardListTable.getCnt(); i++) {
- if (ConfigValues.mGuardListTable.getGuardInfo(i).NAME().equals(("경비실"))) {
- strForwardingIP = ConfigValues.mGuardListTable.getGuardInfo(i).IP();
- if (!strForwardingIP.equals("ERROR")) {
- if (!send_check_sip_activation_request(strForwardingIP))
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- else return;
- } else {
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- } else {
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- }
- } else {
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] runCallForward()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private boolean send_check_sip_activation_request(final String strTargetIP) {
- try {
- Request_check_sip_activation check_sip_activation = new Request_check_sip_activation(mContext);
- if (check_sip_activation.send_check_sip_activation(strTargetIP, null)) {
- check_sip_activation.setResultCtrl(new RetProci() {
- @Override
- public void ProcSuccess() {
- LOG_INFO("[send_check_sip_activation_request] ProcSuccess()");
- MainActivity.mCallController.mSIPInterface.requestCallForwardToStun(MainActivity.mCallController.makeCallForwarInfo(strTargetIP));
- }
- @Override
- public void ProcError() {
- LOG_INFO("[send_check_sip_activation_request] ProcError()");
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- @Override
- public void ProcDoing() {
- LOG_INFO("[send_check_sip_activation_request] ProcDoing()");
- }
- });
- return true;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- return false;
- }
- private boolean send_start_talking_request_mobile(String strTargetIP) {
- try {
- LOG_INFO("[send_start_talking_request_mobile] strTargetIP() "+ strTargetIP);
- Request_start_talking request_start_talking = new Request_start_talking(mContext);
- if (request_start_talking.send_start_talking(strTargetIP, null)) {
- request_start_talking.setResultCtrl(new RetProci() {
- @Override
- public void ProcSuccess() {
- LOG_INFO("[send_start_talking_request_mobile] ProcSuccess()");
- //((MainActivity) mContext).startLobbyCall();
- //MainActivity.mCallController.mSIPInterface.requestCallForwardToStun(MainActivity.mCallController.makeCallForwarInfo(strTargetIP));
- }
- @Override
- public void ProcError() {
- LOG_INFO("[send_start_talking_request_mobile] ProcError()");
- //MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- @Override
- public void ProcDoing() {
- LOG_INFO("[send_start_talking_request_mobile] ProcDoing()");
- }
- });
- return true;
- }
- } catch (Exception e) {
- Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
- e.printStackTrace();
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- return false;
- }
- private boolean send_start_talking_request(String strTargetIP) {
- try {
- LOG_INFO("[send_start_talking_request] strTargetIP() "+ strTargetIP);
- Request_start_talking request_start_talking = new Request_start_talking(mContext);
- if (request_start_talking.send_start_talking(strTargetIP, null)) {
- request_start_talking.setResultCtrl(new RetProci() {
- @Override
- public void ProcSuccess() {
- LOG_INFO("[send_start_talking_request] ProcSuccess()");
- ((MainActivity) mContext).startLobbyCall();
- //MainActivity.mCallController.mSIPInterface.requestCallForwardToStun(MainActivity.mCallController.makeCallForwarInfo(strTargetIP));
- }
- @Override
- public void ProcError() {
- LOG_INFO("[send_start_talking_request] ProcError()");
- ((MainActivity) mContext).startLobbyCall();
- //MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- @Override
- public void ProcDoing() {
- LOG_INFO("[send_start_talking_request] ProcDoing()");
- }
- });
- return true;
- }
- } catch (Exception e) {
- Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
- e.printStackTrace();
- MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
- }
- return false;
- }
- // 안심통화 관련
- int nSelectedFilter = 0; // 0: 변조안함 / 1~4: 필터 No
- boolean bReliefCallInit = false;
- private void selectReliefCallFilter(int nID) {
- try {
- int nFilter = nID - ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_01 + 1; // 현재 선택한 필터
- if (nFilter < 0) nFilter = 0;
- Log.d(TAG, "[selectReliefCallFilter] nID [" + nID + "], nFilter [" + nFilter + "], nSelectedFilter [" + nSelectedFilter + "]");
- if (nFilter == nSelectedFilter) {
- nSelectedFilter = 0;
- MainActivity.m_iReliefCallNum = nSelectedFilter;
- } else {
- nSelectedFilter = nFilter; // 기존 선택했던 필터
- MainActivity.m_iReliefCallNum = nSelectedFilter;
- LOG("[selectReliefCallFilter] nSelectedFilter [" + nSelectedFilter + "], bReliefCallInit [" + bReliefCallInit + "]");
- // 안심통화 초기화
- if (nSelectedFilter > 0) {
- if (!bReliefCallInit) {
- if (MainActivity.mReliefCallIF != null) {
- Log.d(TAG, "[selectReliefCallFilter] VRSoftInit = " + MainActivity.mReliefCallIF.VRSoftInit(Declare.RELIEFCALL.RELIEFCALL_CERTIFYNAME, Declare.RELIEFCALL.RELIEFCALL_BUFFERSIZE_LOBBY));
- bReliefCallInit = true;
- }
- }
- }
- }
- sendHandlerMsg(HANDLERMSG.SEND_BROADCAST_FILTER, 0, 0, null); // BR
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] selectReliefCallFilter(int nID)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setFilterBTNStatus(int nFilter) {
- try {
- Log.d(TAG, "[setFilterBTNStatus] nFilter [" + nFilter + "]");
- switch (nFilter) {
- case 1:
- BTN_RELIEF_FILTER_01.setButtonRearImage();
- BTN_RELIEF_FILTER_02.setButtonFrontImage();
- // BTN_RELIEF_FILTER_03.setButtonFrontImage();
- // BTN_RELIEF_FILTER_04.setButtonFrontImage();
- break;
- case 2:
- BTN_RELIEF_FILTER_01.setButtonFrontImage();
- BTN_RELIEF_FILTER_02.setButtonRearImage();
- // BTN_RELIEF_FILTER_03.setButtonFrontImage();
- // BTN_RELIEF_FILTER_04.setButtonFrontImage();
- break;
- case 3:
- BTN_RELIEF_FILTER_01.setButtonFrontImage();
- BTN_RELIEF_FILTER_02.setButtonFrontImage();
- // BTN_RELIEF_FILTER_03.setButtonRearImage();
- // BTN_RELIEF_FILTER_04.setButtonFrontImage();
- break;
- case 4:
- BTN_RELIEF_FILTER_01.setButtonFrontImage();
- BTN_RELIEF_FILTER_02.setButtonFrontImage();
- // BTN_RELIEF_FILTER_03.setButtonFrontImage();
- // BTN_RELIEF_FILTER_04.setButtonRearImage();
- break;
- default:
- BTN_RELIEF_FILTER_01.setButtonFrontImage();
- BTN_RELIEF_FILTER_02.setButtonFrontImage();
- // BTN_RELIEF_FILTER_03.setButtonFrontImage();
- // BTN_RELIEF_FILTER_04.setButtonFrontImage();
- break;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setFilterBTNStatus()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- // 음량
- SeekBar.OnSeekBarChangeListener mOnVolumeChangeListener = new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- int nCtrlLevel = getCtrlLevel(progress);
- if (nCurrentVolume != nCtrlLevel) {
- nCurrentVolume = nCtrlLevel;
- showVolume(nCurrentVolume);
- // ctrlVolume(false);
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- // Log.d(TAG, "[onStopTrackingTouch] nCurrentVolume:" + nCurrentVolume);
- nCurrentVolume = getCtrlLevel(seekBar.getProgress());
- ctrlVolume(true);
- }
- };
- private void getVolume() {
- try {
- nCurrentVolume = Global.getLobbyVolume();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] getVolume()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setVolume(int nValue) {
- try {
- if (!Global.setLobbyVolume(nValue)) {
- LOG_WARN("[setVolume] Fail to set volume!! nValue [" + nValue + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setVolume()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void ctrlVolume(boolean bSave) {
- try {
- if (bSave) setVolume(nCurrentVolume);
- CALLSTATUS eCallStatus = MainActivity.mCallController.mCallInfo.getLOBBY();
- LOG("[ctrlVolume] eCallStatus [" + eCallStatus + "]");
- if (eCallStatus == CALLSTATUS.TALKING) {
- Global.setV40WallPadVolume_LOBBY(nCurrentVolume);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ctrlVolume()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void showVolume(int nValue) {
- try {
- // Log.d(TAG, "[showVolume] nValue [" + nValue + "]");
- if (TXT_VOLUME_LEVEL != null) TXT_VOLUME_LEVEL.setText(Integer.toString(nValue));
- else Log.w(TAG, "[showVolume] TXT_VOLUME_LEVEL is null!!");
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] showVolume(nValue)");
- }
- }
- private void drawVolume() {
- try {
- if (SEEKBAR_VOLUME != null) {
- SEEKBAR_VOLUME.setProgress(ctrlSeekBarThumb(nCurrentVolume));
- showVolume(nCurrentVolume);
- }
- else Log.w(TAG, "[drawVolume] SEEKBAR_VOLUME is null!!");
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] drawVolume()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private int getCtrlLevel(int nValue) {
- try {
- // Log.d(TAG, "[getCtrlLevel] nValue: " + nValue);
- if (nValue == 0) return 1;
- int result = nValue / 10;
- if ((nValue % 10) != 0) result++;
- // Log.d(TAG, "[getCtrlLevel] result: " + result);
- return result;
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- return 1;
- } catch (Exception e) {
- Log.e(TAG, "[Exception] getCtrlLevel(nValue)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- return 1;
- }
- }
- private int ctrlSeekBarThumb(int nValue) {
- try {
- int progress;
- if (nValue == 1) progress = 1;
- else if (nValue == 10) progress = 100;
- else progress = (nValue - 1) * 11;
- return progress;
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- return 1;
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ctrlSeekBarThumb()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- return 1;
- }
- }
- // LED
- boolean bFlickeringCallLED = false;
- boolean bStatusFlickeringCallLED = false;
- private void runFlickerCallLED() {
- try {
- LOG("[runFlickerCallLED] bFlickeringCallLED [" + bFlickeringCallLED + "]");
- if (!bFlickeringCallLED) {
- bFlickeringCallLED = true;
- sendHandlerMsg(HANDLERMSG.FLICKER_LED_CALL, 0, 0, null);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] runFlickerCallLED()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setOnCallLED() {
- try {
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- bFlickeringCallLED = false;
- bStatusFlickeringCallLED = true;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setOnCallLED()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setOffCallLED() {
- try {
- LOG("[setOffCallLED] bStatusFlickeringCallLED [" + bStatusFlickeringCallLED + "]");
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- bFlickeringCallLED = false;
- if (bStatusFlickeringCallLED) {
- bStatusFlickeringCallLED = false;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setOffCallLED()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void ctrlCallLED() {
- try {
- LOG_INFO("[ctrlCallLED] bFlickeringCallLED [" + bFlickeringCallLED + "], bStatusFlickeringCallLED [" + bStatusFlickeringCallLED + "]");
- LOG_INFO("[ctrlCallLED] MainActivity.mCallController.mCallInfo.getLOBBY() [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if ((MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLING) || (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED)) {
- if (bFlickeringCallLED) {
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- bStatusFlickeringCallLED = !bStatusFlickeringCallLED;
- sendHandlerMsgDelayed(HANDLERMSG.FLICKER_LED_CALL, 0, 0, null, 1000);
- }
- }
- else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- bStatusFlickeringCallLED = true;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- }
- else {
- bStatusFlickeringCallLED = false;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- LOG_INFO("[ctrlCallLED] bFlickeringCallLED [" + bFlickeringCallLED + "], bStatusFlickeringCallLED [" + bStatusFlickeringCallLED + "]");
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ctrlCallLED()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- // Handlersend
- public final class HANDLERMSG {
- public final static int PROC_ADDCALL = 100;
- public final static int DOOR_OPEN = 110;
- public final static int SAVE_VISITORPICTURE = 120;
- public final static int TAKE_VISITORPICTURE = 125;
- public final static int CALL_FORWARD = 130;
- public final static int ENABLE_SAVE_VISITORPICTURE = 140;
- public final static int FLICKER_LED_CALL = 160;
- public final static int REFRESH_BTNLED_STATUS = 170;
- public final static int SET_BTN_STATUS = 175;
- public final static int ENABLE_TALK_BTN = 176;
- public final static int ENABLE_END_BTN = 177;
- public final static int ENABLE_OPENDOOR_BTN = 178;
- public final static int DO_TALK = 180;
- public final static int OFF_FRONT = 200;
- public final static int SET_VOLUME_TABLE = 300;
- public final static int SEND_BROADCAST_FILTER = 400;
- public final static int HIDE_LOBBYVIDEO = 500;
- }
- public Handler TalkLobbyHandler = new Handler(Looper.getMainLooper()) {
- public void handleMessage(Message msg) {
- LOG("[TalkLobbyHandler] TalkLobbyHandler : what [" + msg.what + "], arg1 [" + msg.arg1 + "], arg2 [" + msg.arg2 + "], obj [" + msg.obj + "]");
- switch (msg.what) {
- case HANDLERMSG.PROC_ADDCALL:
- procAddCall();
- break;
- case HANDLERMSG.DOOR_OPEN:
- doDoorOpen();
- break;
- case HANDLERMSG.SAVE_VISITORPICTURE:
- if (bEnableVisitorPic) startSaveVisitorPicture(CALLTYPE.LOBBY, MainActivity.mCallController.mCallInfo.getLOBBY());
- break;
- case HANDLERMSG.CALL_FORWARD:
- if (bEnableVisitorPic) runCallForward();
- break;
- case HANDLERMSG.ENABLE_SAVE_VISITORPICTURE:
- if (MainActivity.mCallController == null) return;
- if (MainActivity.mCallController.mCallInfo == null) return;
- if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED || MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
- BTN_SAVE_PICTURE.setButtonEventOffDisable();
- }
- break;
- case HANDLERMSG.TAKE_VISITORPICTURE:
- if (bEnableVisitorPic) startTakeVisitorPicture((String) msg.obj);
- break;
- case HANDLERMSG.FLICKER_LED_CALL:
- ctrlCallLED();
- break;
- case HANDLERMSG.DO_TALK:
- doTalk((CALLOWNER) msg.obj);
- break;
- case HANDLERMSG.REFRESH_BTNLED_STATUS:
- setBTNLEDStatus();
- break;
- case HANDLERMSG.SET_BTN_STATUS:
- setBTNStatus();
- break;
- case HANDLERMSG.ENABLE_TALK_BTN:
- enableTalkBTN(true);
- break;
- case HANDLERMSG.ENABLE_END_BTN:
- enableEndBTN(true);
- break;
- case HANDLERMSG.ENABLE_OPENDOOR_BTN:
- enableOpenDoorBTN(true);
- break;
- case HANDLERMSG.OFF_FRONT:
- playFrontCamBell(false);
- break;
- case HANDLERMSG.SET_VOLUME_TABLE:
- Global.setV40WallPadVolume_LOBBY(nCurrentVolume);
- break;
- case HANDLERMSG.SEND_BROADCAST_FILTER:
- // 필터선택하면 BR 전송
- Log.d(TAG, "[TalkLobbyHandler] SEND_BROADCAST_FILTER -> nSelectedFilter [" + nSelectedFilter + "]");
- setFilterBTNStatus(nSelectedFilter);
- sendReliefFilterSelectBR(nSelectedFilter);
- break;
- case HANDLERMSG.HIDE_LOBBYVIDEO:
- if (IMG_VIDEO_MODULE != null) IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlPopupGUI(true);
- doEnd();
- break;
- default:
- break;
- }
- }
- };
- public void sendHandlerMsg(int what, int arg1, int arg2, Object obj) {
- try {
- LOG("[sendHandlerMsg] what [" + what + "], arg1 [" + arg1 + "], arg2 [" + arg2 + "], obj [" + obj + "]");
- if(TalkLobbyHandler!=null)
- {
- Message HandleMsg = TalkLobbyHandler.obtainMessage();
- HandleMsg.what = what;
- HandleMsg.arg1 = arg1;
- HandleMsg.arg2 = arg2;
- HandleMsg.obj = obj;
- TalkLobbyHandler.sendMessage(HandleMsg);
- }
- }
- catch (RuntimeException e)
- {
- Log.e(TAG, "[Exception] sendHandlerMsg(msg)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- catch (Exception e) {
- Log.e(TAG, "[Exception] sendHandlerMsg(msg)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- public void sendHandlerMsgDelayed(int what, int arg1, int arg2, Object obj, long delay) {
- try {
- LOG("[sendHandlerMsgDelayed] what [" + what + "], arg1 [" + arg1 + "], arg2 [" + arg2 + "], obj [" + obj + "], delay [" + delay + "]");
- if(TalkLobbyHandler!=null)
- {
- Message HandleMsg = TalkLobbyHandler.obtainMessage();
- HandleMsg.what = what;
- HandleMsg.arg1 = arg1;
- HandleMsg.arg2 = arg2;
- HandleMsg.obj = obj;
- TalkLobbyHandler.sendMessageDelayed(HandleMsg, delay);
- }
- }
- catch (RuntimeException r)
- {
- Log.e(TAG, "[Exception] sendHandlerMsgDelayed(msg)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, r);
- }
- catch (Exception e) {
- Log.e(TAG, "[Exception] sendHandlerMsgDelayed(msg)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void sendReliefFilterSelectBR(int nSelectedFilter) {
- try {
- Log.i(TAG, "[sendReliefFilterSelectBR] nSelectedFilter = " + nSelectedFilter);
- Intent intent = new Intent();
- intent.setAction(Declare.BR.NOTIFY_CHANGE_LOBBY_FILTER);
- intent.putExtra(Declare.BR.RELIEFCALL_FILTER, nSelectedFilter);
- getContext().sendBroadcast(intent);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] sendReliefFilterSelectBR(int nSelectedFilter)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- int nCheckCnt1 = 0, nCheckCnt2 = 0;
- protected Handler mPathCheckHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // Log.d(TAG, "[mPathCheckHandler.handleMessage]");
- if (msg.what == 0) {
- nCheckCnt1++;
- if (nCheckCnt1 > 200) {
- mPathCheckHandler.removeMessages(0);
- mPathCheckHandler.removeMessages(1);
- } else {
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- if (MainActivity.mCallController.getTalkPath() == CALLPATH.MOIP_IHND101_LOBBY)
- mPathCheckHandler.sendEmptyMessageDelayed(1, 50);
- else mPathCheckHandler.sendEmptyMessageDelayed(0, 50);
- } else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if (MainActivity.mCallController.getTalkPath() == CALLPATH.MOIP_IHN1010_LOBBY)
- mPathCheckHandler.sendEmptyMessageDelayed(1, 50);
- else mPathCheckHandler.sendEmptyMessageDelayed(0, 50);
- }
- }
- } else if (msg.what == 1) {
- Log.d(TAG, "[mPathCheckHandler.handleMessage] Handler finish!!");
- sendHandlerMsg(HANDLERMSG.SET_VOLUME_TABLE, 0, 0, null);
- } else if (msg.what == 2) {
- nCheckCnt2++;
- if (nCheckCnt2 > 200) {
- mPathCheckHandler.removeMessages(2);
- mPathCheckHandler.removeMessages(3);
- }
- else {
- if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) mPathCheckHandler.sendEmptyMessageDelayed(3, 100);
- else mPathCheckHandler.sendEmptyMessageDelayed(2, 50);
- }
- }
- else if (msg.what == 3) {
- //Global.stopMelodyRepeat();
- Log.d(TAG, "[mPathCheckHandler.handleMessage] Handler finish!! PATH [NORMAL] -> play dooropen ment!");
- int nMentDuration = MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
- try {
- Log.d(TAG, "[mPathCheckHandler.handleMessage] nMentDuration -> " + nMentDuration);
- Thread.sleep(nMentDuration + 1500);
- } catch (InterruptedException e) {
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- MainActivity.mIOInterface.setMICGain(nCurrentMicGain);
- }
- }
- };
- private void finishWallpadCallApp() {
- try {
- doEnd();
- if (MainActivity.mCallController.mCallInfo.getPSTNCallHold()) return;
- ((MainActivity) mContext).finishWallPadCall();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] finishWallpadCallApp()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void hideLobbyVideo() {
- try {
- Log.i(TAG, "[hideLobbyVideo]");
- class hideLobbyVideo extends Thread {
- @Override
- public void run() {
- super.run();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- sendHandlerMsg(HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null);
- }
- }
- hideLobbyVideo th_hideLobbyVideo = new hideLobbyVideo();
- th_hideLobbyVideo.start();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] hideLobbyVideo");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- }
|