123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051 |
- package kr.co.icontrols.wallpadcall.screen;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- 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.WallPadDataMgr.WallpadAccessData;
- import com.artncore.WallPadDataMgr.WallpadStatusData;
- import com.artncore.commons.define;
- import com.artncore.wallpadapi.WallPadAPI;
- import com.util.LogUtil;
- import java.io.File;
- import java.util.Timer;
- import java.util.TimerTask;
- import kr.co.icontrols.callengine.engine.AutoSaveStrangerPicture.startAutoSaveStrangerPicture;
- 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.IGW300CMD;
- 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.Global.DOORLOCKTYPE;
- import kr.co.icontrols.wallpadcall.declare.Global.FRONTCAMERATYPE;
- import kr.co.icontrols.wallpadcall.declare.ID;
- import kr.co.icontrols.wallpadsupport.Version;
- 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;
- import static kr.co.icontrols.wallpadcall.declare.Declare.BR.ACNAME_MAIN_NOTI;
- public class TalkFront extends WpadScreen implements CallEventListener, MainEventListener {
- private final static String TAG = "TalkFront";
- 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.w(TAG, log);
- }
- WpadImageView SCREEN_BG;
- WpadImageView IMG_FRONT_BACKGROUND;
- WpadImageView IMG_VIDEO_MODULE;
- WpadImageView IMG_BRIGHTNESS;
- WpadImageView IMG_VOLUME;
- public static 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, SEEKBAR_BRIGHT;
- WpadTextView TXT_VOLUME_LEVEL, TXT_BRIGHT_LEVEL;
- int nCurrentBrightness = 0;
- int nCurrentVolume = 0;
- boolean bBlockSavePicBTN = false;
- Context mContext;
- WallPadAPI mWallPadAPI;
- public TalkFront(Context context, RelativeLayout layout, WallPadAPI wapi) {
- super(context, layout);
- try {
- mContext = context;
- mWallPadAPI = wapi;
- Initialize();
- SCREEN_BG = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, R.drawable.bg_body, ID.SCREEN.TALKFRONT.ELEMENT.IMAGE.BG);
- ViewRegistration(layout, SCREEN_BG, 0, 0);
- IMG_FRONT_BACKGROUND = new WpadImageView(context, TOUCH_KIND.NONE, 722, 544, R.drawable.bg_front, 0, ID.SCREEN.TALKFRONT.ELEMENT.IMAGE.BACKGROUND);
- ViewRegistration(layout, IMG_FRONT_BACKGROUND, Common.ImgPosition.GetX(93), Common.ImgPosition.GetY(110));
- IMG_VIDEO_MODULE = new WpadImageView(context, TOUCH_KIND.NONE, 720, 540, R.drawable.image_front, 0, ID.SCREEN.TALKFRONT.ELEMENT.IMAGE.VIDEO_MODULE);
- ViewRegistration(layout, IMG_VIDEO_MODULE, Common.ImgPosition.GetX(95), Common.ImgPosition.GetY(112));
- // 스마트현관카메라
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT) {
- // 스마트현관카메라일 경우 밝기조절 안하도록 임시 설정
- IMG_VOLUME = new WpadImageView(context, TOUCH_KIND.NONE, 40, 40, R.drawable.bar_icon_sound, 0, ID.SCREEN.TALKFRONT.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.TALKFRONT.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);
- }
- }
- else {
- IMG_VOLUME = new WpadImageView(context, TOUCH_KIND.NONE, 40, 40, R.drawable.bar_icon_sound, 0, ID.SCREEN.TALKFRONT.ELEMENT.IMAGE.VOLUME);
- ViewRegistration(layout, IMG_VOLUME, Common.ImgPosition.GetX(123), Common.ImgPosition.GetY(707));
- TXT_VOLUME_LEVEL = new WpadTextView(context, false, 40, 40, Gravity.CENTER, Color.WHITE, Common.fontsize._30, false, ID.SCREEN.TALKFRONT.ELEMENT.TEXT.VOLUME_LEVEL);
- ViewRegistration(layout, TXT_VOLUME_LEVEL, Common.ImgPosition.GetX(454), Common.ImgPosition.GetY(705));
- IMG_BRIGHTNESS = new WpadImageView(context, TOUCH_KIND.NONE, 40, 40, R.drawable.bar_icon_brightness, 0, ID.SCREEN.TALKFRONT.ELEMENT.IMAGE.BRIGHTNESS);
- ViewRegistration(layout, IMG_BRIGHTNESS, Common.ImgPosition.GetX(785), Common.ImgPosition.GetY(707));
- TXT_BRIGHT_LEVEL = new WpadTextView(context, false, 40, 40, Gravity.CENTER, Color.WHITE, Common.fontsize._30, false, ID.SCREEN.TALKFRONT.ELEMENT.TEXT.BRIGHT_LEVEL);
- ViewRegistration(layout, TXT_BRIGHT_LEVEL, Common.ImgPosition.GetX(1116), 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(176));
- 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);
- LinearLayout brightLayout = (LinearLayout) inflater.inflate(R.layout.bright_seekbar_1280, null);
- LayoutParams brightParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- int briMarginLeft = WpadScale.getWidth(Common.ImgPosition.GetX(838));
- int briMarginTop = WpadScale.getHeight(Common.ImgPosition.GetY(707));
- brightParams.setMargins(briMarginLeft, briMarginTop, 0, 0);
- brightLayout.setLayoutParams(brightParams);
- SEEKBAR_BRIGHT = (SeekBar) brightLayout.findViewById(R.id.brightSeekBar);
- SEEKBAR_BRIGHT.setMax(100);
- SEEKBAR_BRIGHT.setOnSeekBarChangeListener(mOnBrightChangeListener);
- layout.addView(brightLayout);
- }
- 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(171));
- 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);
- LinearLayout brightLayout = (LinearLayout) inflater.inflate(R.layout.bright_seekbar, null);
- LayoutParams brightParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- int briMarginLeft = WpadScale.getWidth(Common.ImgPosition.GetX(833));
- int briMarginTop = WpadScale.getHeight(Common.ImgPosition.GetY(703));
- brightParams.setMargins(briMarginLeft, briMarginTop, 0, 0);
- brightLayout.setLayoutParams(brightParams);
- SEEKBAR_BRIGHT = (SeekBar) brightLayout.findViewById(R.id.brightSeekBar);
- SEEKBAR_BRIGHT.setMax(100);
- SEEKBAR_BRIGHT.setOnSeekBarChangeListener(mOnBrightChangeListener);
- layout.addView(brightLayout);
- }
- //
- // // SeekBar (inflate)
- // 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(171));
- // 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);
- //
- // LinearLayout brightLayout = (LinearLayout) inflater.inflate(R.layout.bright_seekbar, null);
- // LayoutParams brightParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
- // int briMarginLeft = WpadScale.getWidth(Common.ImgPosition.GetX(833));
- // int briMarginTop = WpadScale.getHeight(Common.ImgPosition.GetY(703));
- // brightParams.setMargins(briMarginLeft, briMarginTop, 0, 0);
- // brightLayout.setLayoutParams(brightParams);
- // SEEKBAR_BRIGHT = (SeekBar) brightLayout.findViewById(R.id.brightSeekBar);
- // SEEKBAR_BRIGHT.setMax(100);
- // SEEKBAR_BRIGHT.setOnSeekBarChangeListener(mOnBrightChangeListener);
- // layout.addView(brightLayout);
- }
- // 안심통화
- 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.TALKFRONT.ELEMENT.BUTTON.TALK);
- ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
- BTN_END = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_endl_normal, R.drawable.btn_endl_pressed, ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.END);
- ViewRegistration(layout, BTN_END, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(320));
- BTN_SAVE_PICTURE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 210, R.drawable.btn_photo_normal, R.drawable.btn_photo_pressed, ID.SCREEN.TALKFRONT.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.TALKFRONT.ELEMENT.BUTTON.DOOROPEN);
- ViewRegistration(layout, BTN_DOOROPEN, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(320));
- if (ConfigValues.eDoorLockType == DOORLOCKTYPE.NOT_USE) 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.TALKFRONT.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.TALKFRONT.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.TALKFRONT.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.TALKFRONT.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_front_call_normal, R.drawable.btn_front_call_pressed, ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.TALK);
- ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
- BTN_END = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_front_end_normal, R.drawable.btn_front_end_pressed, ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.END);
- ViewRegistration(layout, BTN_END, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(382));
- BTN_SAVE_PICTURE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_front_photo_normal, R.drawable.btn_front_photo_pressed, ID.SCREEN.TALKFRONT.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_front_open_normal, R.drawable.btn_front_open_pressed, ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.DOOROPEN);
- ViewRegistration(layout, BTN_DOOROPEN, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(382));
- if (ConfigValues.eDoorLockType == DOORLOCKTYPE.NOT_USE) BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_front_open_disabled); // 도어락 시용안함일 경우 문열림 버튼 항상 비활성화
- BTN_RELIEF_FILTER_01 = null;
- BTN_RELIEF_FILTER_02 = null;
- // BTN_RELIEF_FILTER_03 = null;
- // BTN_RELIEF_FILTER_04 = null;
- }
- applyInitValues();
- sendHandlerMsg(HANDLERMSG.PROC_ADDCALL, 0, 0);
- // yjyoon. 녹화중지 이벤트 추가
- addBrActionFilter(Declare.BR.BR_REQUEST_RECORD_STOP);
- //ctrlAlphaBlending(false);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ScreenTalkFront(Context context, RelativeLayout layout)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- protected void Initialize() {
- try {
- if (MainActivity.mCallController.mCallInfo.getFRONT() != CALLSTATUS.IDLE) ((MainActivity) mContext).setMenuBTNEnable(false);
- else ((MainActivity) mContext).setMenuBTNEnable(true);
- int mMarginLeft = ((MainActivity) mContext).TopBackBtn.getVisibility() == View.VISIBLE ? 893 : 1019;
- ((MainActivity) mContext).setManualBtnVisible(((MainActivity) mContext).getManualUse(), mMarginLeft);
- ((MainActivity) mContext).setTopHideBtnVisible(true);
- MainActivity.mCallController.setCallEventListener(this);
- ((MainActivity) mContext).setMainEventListener(this);
- nSelectedFilter = 0;
- super.setFinishTimerCreate(Common.FINISH_TIME_START_SCREEN);
- getBrightness();
- getVolume();
- bEnableAutoVisitorPic = true;
- //yjyoon
- MainActivity.mIOInterface.ctrlPopupGUI(true); // 원소스
- //MainActivity.mIOInterface.ctrlPopupGUI(false); // 테스트. 이걸로 하면 로비 영상이 나옴
- //MainActivity.mCallController.mVideoJNI.setPreviewInfo_V40(0, 0, 0, 0);
- //MainActivity.mIOInterface.ctrlPopupGUI_Resi(false, false);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] Initialize()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void applyInitValues() {
- try {
- getBrightness();
- getVolume();
- drawBright();
- drawVolume();
- if (ConfigValues.bReliefCall) {
- sendReliefFilterSelectBR(nSelectedFilter);
- selectReliefCallFilter(nSelectedFilter, false);
- BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
- } else {
- BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_front_photo_disabled);
- }
- enableDoorOpenBTN(false);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] applyInitValues()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onClose() {
- super.onClose();
- try {
- LOG_INFO("[onClose]");
- stopAudioRecording();
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlFrontCamPower(false);
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
- sendReliefFilterSelectBR(0);
- if (TalkFrontHandler != null) {
- TalkFrontHandler.removeMessages(HANDLERMSG.MEDIA_RECORD_START);
- TalkFrontHandler.removeMessages(HANDLERMSG.MEDIA_RECORD_START_REMOTECALL);
- TalkFrontHandler.removeMessages(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE);
- TalkFrontHandler.removeMessages(HANDLERMSG.SAVE_VISITORPICTURE);
- TalkFrontHandler.removeMessages(HANDLERMSG.TAKE_VISITORPICTURE);
- }
- if (mCheckHandler != null) {
- mCheckHandler.removeMessages(0);
- mCheckHandler.removeMessages(1);
- }
- ((MainActivity) mContext).resetRecordTimer();
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF); // LED OFF
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF); // MODE OFF
- if (ConfigValues.bReliefCall) selectReliefCallFilter(nSelectedFilter, false);
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.NONE, true);
- MainActivity.mCallController.releaseCallEventListener();
- ((MainActivity) mContext).releaseMainEventListener();
- Global.stopMelodyRepeat();
- showFrontCam(false, false);
- MainActivity.bRecordingStatus = false;
- MainActivity.mCallController.stop1stCallTimer();
- MainActivity.mCallController.stop2ndCallTimer();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- RemoteIDInfo.InitVariables();
- 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 {
- String strAction = intent.getAction();
- if (strAction.equals(Declare.BR.BR_REQUEST_RECORD_STOP)) {
- Log.v("yjyoon", "TalkFront > onBrReceive : BR_RECORDSTOP START");
- LOG_INFO("[onBrReceive] strAction[" + strAction + "] bRecordingStatus[" + MainActivity.bRecordingStatus + "]");
- boolean bSave = true;
- try {
- int nKind = intent.getIntExtra(define.NOTIBR_KIND, 0);
- stopStrangerRecord(false, nKind); // 1: 현관콜 2:로비/세대/경비콜
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] stopStrangerRecord()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- Log.v("yjyoon", "TalkFront > onBrReceive : BR_RECORDSTOP END");
- }
- } 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) {
- super.onTouchEvent(v, event);
- try {
- int nEvent = event.getAction();
- int nID = v.getId();
- if (nEvent == MotionEvent.ACTION_UP) {
- if (ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.TALK <= nID && nID <= ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.RELIEF_FILTER_02) {
- // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
- if (MainActivity.mCallController.mCallInfo.getFRONT() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
- if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.TALK) {
- LOG_INFO("[onTouchEvent] [TALK] BUTTON");
- doTalk(CALLOWNER.WALLPAD);
- }
- else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.END) {
- LOG_INFO("[onTouchEvent] [END] BUTTON");
- bEnableAutoVisitorPic = false;
- doEnd();
- }
- else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.SAVE_PICTURE) {
- LOG_INFO("[onTouchEvent] [SAVE_PICTURE] BUTTON [bRemote_FrontCalled] = " + bRemote_FrontCalled);
- String strVisitorPicResult = MainActivity.mCallController.saveVisitorPicture(CALLTYPE.FRONT, MainActivity.mCallController.mCallInfo.getFRONT(), null, true, false, bRemote_FrontCalled);
- LOG_INFO("[onTouchEvent] strVisitorPicResult [" + strVisitorPicResult + "]");
- if (ConfigValues.bReliefCall) BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
- else BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_front_photo_disabled);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, 3000);
- }
- else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.DOOROPEN) {
- LOG_INFO("[onTouchEvent] [OPEN_DOOR] BUTTON");
- doDoorOpen();
- }
- else if (ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.RELIEF_FILTER_01 <= nID && nID <= ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.RELIEF_FILTER_04) {
- LOG_INFO("[onTouchEvent] [RELIEF_FILTER] BUTTON");
- selectReliefCallFilter(nID, true);
- 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.getFRONT() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
- ((MainActivity) mContext).showFrontVideo(false);
- 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) {
- 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) {
- doDoorOpen();
- }
- 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 + "]");
- MainActivity.mCallController.mCallInfo.printCallStatus();
- if (eCallType == CALLTYPE.NONE) return;
- if (eCallType == CALLTYPE.FRONT) {
- sendHandlerMsg(HANDLERMSG.SET_BTN_STATUS, 0, 0);
- if (eCallStatus == CALLSTATUS.CALLING) {
- bBlockSavePicBTN = false;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- if (eCallOwner != CALLOWNER.WALLPAD) {
- if (eCallOwner == CALLOWNER.MOBILE) {
- // [방문객원격통화] 모바일에서 현관 모니터링 요청
- ((MainActivity) mContext).showRemoteCallNoticeText(true); // 방문객원격통화 팝업 삭제 -> 상단 문구로 대체
- // ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_REMOTECALL);
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(6); // camera open check 이후 encoderStartOperation 시작 (방문객 원격통화 사용할 경우)
- } else {
- ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(4); // camera open check 이후 TV Out 시작
- } else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT)
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(4); // camera open check 이후 TV Out 시작
- } else {
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.FRONT, false);
- }
- }
- }
- showFrontCam(true, false);
- super.setFinishTimerDestroy();
- MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLING);
- Global.make1stCallHistoryInfo(CALLTYPE.FRONT.toString(), "NONE", CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
- ((MainActivity) mContext).m_bMissCall = false;
- }
- else if (eCallStatus == CALLSTATUS.CALLED) {
- bBlockSavePicBTN = false;
- if (MainActivity.bRecordingStatus) {
- // 녹화 중 현관 호출 => 녹화 종료 및 팝업 닫힘 => 현관 호출 지속
- LOG_WARN("[onCallEvent] STRANGER RECORDING IS RUNNING!!");
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_VIDEORECORD);
- ((MainActivity) (this.getContext())).stopNSaveRecordingFile(false, false);
- }
- showFrontCam(true, true);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) Global.playMelodyRepeat(eCallType);
- super.setFinishTimerDestroy();
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(4); // camera open check 이후 TV Out 시작
- if (ConfigValues.bRemoteCall) {
- bRemote_FrontCalled = true; // 방문객원격통화 + 현관호출(띵똥)을 통해 진입하는 경우 TRUE
- // ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(6); // camera open check 이후 encoderStartOperation 시작 (방문객 원격통화 사용할 경우)
- }
- MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED - 5);
- Global.make1stCallHistoryInfo(CALLTYPE.FRONT.toString(), "NONE", CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
- if (ConfigValues.bUnoccupiedMode) {
- // 외출방범 설정중
- sendHandlerMsgDelayed(HANDLERMSG.SAVE_VISITORPICTURE, 0, 0, 5000); // 5초
- sendHandlerMsgDelayed(HANDLERMSG.SAVE_VISITORPICTURE, 0, 0, 10000); // 10초
- }
- else {
- // 부재중인 경우를 대비하여 임시저장
- sendHandlerMsgDelayed(HANDLERMSG.TAKE_VISITORPICTURE, 0, 0, 5000); // 5초
- }
- }
- else if (eCallStatus == CALLSTATUS.TALKING) {
- MainActivity.mIOInterface.ctrlFrontCamBell(false);
- Global.stopMelodyRepeat();
- if (eCallOwner == CALLOWNER.MOBILE) {
- // 모바일에서 현관 호출 수신!! (방문객 원격통화)
- RemoteCallManager.bMobileTalk = true;
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- ((MainActivity) mContext).showRemoteCallNoticeText(true);
- sendHandlerMsg(HANDLERMSG.SET_PATH_DOOR_REMOTECALL, 0, 0);
- sendHandlerMsgDelayed(HANDLERMSG.START_AUDIO_RECORD, 0, 0, 1000);
- }
- else {
- if (ConfigValues.bRemoteCall) RemoteCallManager.bMobileTalk = false;
- if (eCallOwner != CALLOWNER.WALLPAD) {
- ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- MainActivity.mCallController.setTalkPath(CALLPATH.SUBPHONE_FRONT);
- if (eCallOwner == CALLOWNER.SUB_WALLPAD) MainActivity.mCallController.setSubWallPadAudioPath();
- }
- else {
- if (ConfigValues.bReliefCall) {
- // 안심통화
- LOG("[onCallEvent] nSelectedFilter [" + nSelectedFilter + "]");
- if (nSelectedFilter > 0) {
- sendHandlerMsg(HANDLERMSG.SET_PATH_DOOR_RELIEFCALL, 0, 0);
- startAudioRecording(false);
- } else {
- sendHandlerMsg(HANDLERMSG.SET_PATH_DOOR, 0, 0);
- stopAudioRecording();
- }
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.SET_RELIEFCALL_VOLUME, 0, 0); // 안심통화시 볼륨 11로 설정
- sendHandlerMsg(HANDLERMSG.SET_VOLUME_TABLE, 0, 0);
- } else {
- MainActivity.mCallController.setTalkPath(CALLPATH.FRONT);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.SET_TEMPSYSTEM_VOLUME, 0, 0); // 통화 중 임의 볼륨값 설정 seulki
- }
- }
- mCheckHandler.sendEmptyMessage(0);
- }
- MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.RESIDENCEnFRONT);
- Global.change1stCallLogAction(CALLACTION.TALK);
- Global.add1stCallHistoryInfoFinal();
- }
- else if (eCallStatus == CALLSTATUS.END) {
- ((MainActivity) mContext).setBlockFrontCall();
- bBlockSavePicBTN = true;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- sendHandlerMsg(HANDLERMSG.SET_PATH_NORMAL, 0, 0);
- sendHandlerMsg(HANDLERMSG.STOP_AUDIO_RECORD, 0, 0);
- if (ConfigValues.bRemoteCall) {
- sendHandlerMsgDelayed(HANDLERMSG.END_CALL_VIDEO, 0, 0, 1000); // 방문객원격통화를 사용하는 경우 인코딩 STOP 과정으로 인하여 통화패스 설정 지연이 발생하여 카메라를 오디오패스 이후 닫음
- ((MainActivity) mContext).showFrontVideo(false);
- } else {
- sendHandlerMsg(HANDLERMSG.END_CALL_VIDEO, 0, 0);
- }
- if (eCallOwner == CALLOWNER.MOBILE) {
- ((MainActivity) mContext).showRemoteCallNoticeText(false);
- } else {
- if (eCallOwner != CALLOWNER.WALLPAD) ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
- }
- // MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- Global.add1stCallHistoryInfoFinal();
- ((MainActivity) mContext).setBlockFrontCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- else if (eCallStatus == CALLSTATUS.REJECT) {
- ((MainActivity) mContext).setBlockFrontCall();
- bBlockSavePicBTN = true;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- showFrontCam(false, false);
- // MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- Global.change1stCallLogAction(CALLACTION.REJECT);
- Global.add1stCallHistoryInfoFinal();
- ((MainActivity) mContext).setBlockFrontCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- else if (eCallStatus == CALLSTATUS.BUSY) {
- ((MainActivity) mContext).setBlockFrontCall();
- bBlockSavePicBTN = true;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- showFrontCam(false, false);
- // MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- Global.change1stCallLogAction(CALLACTION.BUSY);
- Global.add1stCallHistoryInfoFinal();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- else if (eCallStatus == CALLSTATUS.CANCEL) {
- ((MainActivity) mContext).setBlockFrontCall();
- bBlockSavePicBTN = true;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- Global.stopMelodyRepeat();
- showFrontCam(false, false);
- // MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- Global.change1stCallLogAction(CALLACTION.CANCEL);
- Global.add1stCallHistoryInfoFinal();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- else if (eCallStatus == CALLSTATUS.TIMEOUT_1STCALL) {
- ((MainActivity) mContext).setBlockFrontCall();
- ((MainActivity) mContext).showFrontVideo(false);
- bBlockSavePicBTN = true;
- bEnableAutoVisitorPic = false;
- bRemote_FrontCalled = false;
- bReliefCallInit = false;
- ((MainActivity) mContext).m_bMissCall = true;
- Global.stopMelodyRepeat();
- showFrontCam(false, false);
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_ALL);
- ((MainActivity) mContext).finishManual(ID.MANUAL.MANUAL_ALL);
- sendHandlerMsg(HANDLERMSG.SET_PATH_NORMAL, 0, 0);
- // MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.stop1stCallTimer();
- MainActivity.mCallController.stop2ndCallTimer();
- Global.add1stCallHistoryInfoFinal();
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.IDLE);
- MainActivity.mCallController.MultiCallScenarioManager();
- }
- else if (eCallStatus == CALLSTATUS.DOOR_OPEN) {
- sendHandlerMsg(HANDLERMSG.DOOR_OPEN, 0, 0);
- } else if (eCallStatus == CALLSTATUS.RECORDING) {
- sendHandlerMsg(HANDLERMSG.SET_BTN_STATUS, 1, 0);
- // [스마트현관카메라] 거동수상자 녹화
- LOG("[onCallEvent] bRecordingStatus [" + MainActivity.bRecordingStatus + "]");
- if (!MainActivity.bRecordingStatus) {
- showFrontCam(true, false);
- super.setFinishTimerDestroy();
- if (ConfigValues.bRemoteCall) { // 방문객원격통화를 사용하는 경우 스트림서버에서 녹화 (거동수상자 영상을 전달하기 위해 인코딩)
- startStrangerRecord(true);
- } else {
- startStrangerRecord(false); // 방문객원격통화를 사용하지 않는 경우 월패드에서 녹화
- }
- } else {
- LOG_WARN("[onCallEvent] Recording is Already Running!!");
- }
- } else if (eCallStatus == CALLSTATUS.TAKINGPIC) {
- // [스마트현관카메라] 거동수상자 사진 촬영
- ((MainActivity) mContext).showStrangerNoticeText(true, false);
- showFrontCam(true, false);
- super.setFinishTimerDestroy();
- startStrangerTakePic();
- }
- 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(eCallOwner == CALLOWNER.NONE)
- return;
- if (eCallStatus == CALLSTATUS.CALLED) {
- if (eCallType == CALLTYPE.LOBBY || eCallType == CALLTYPE.GUARD || eCallType == CALLTYPE.RESIDENCE) {
- if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
- // 멀티콜 없음
- MultiCallInfo MCInfo = new MultiCallInfo();
- MCInfo.setMulticallInfo(CALLTYPE.FRONT, 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 eFrontCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- /**
- * JEFF, 2020.01.02
- * 모든통화에서 멀티콜 발생시 알림 팝업만 띄우고 busy처리 하도록 시나리오 수정
- */
- if (eFrontCallStatus == CALLSTATUS.CALLED || eFrontCallStatus == CALLSTATUS.CALLING || eFrontCallStatus == CALLSTATUS.TALKING || eFrontCallStatus == CALLSTATUS.RECORDING || eFrontCallStatus == CALLSTATUS.TAKINGPIC) {
- 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();
- doMultiCallReject();
- // CALLPATH eCallPath = MainActivity.mCallController.getTalkPath();
- // if (eCallPath == CALLPATH.MOIP_IHND101_LOBBY) MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 로비 통화일 경우 GUI 화면이 아래로(영상이 위로)
- // else if ((eCallPath == CALLPATH.MOIP_IHND101_GUARD && Global.ConfigValues.bGuardVideoEnable) || (eCallPath == CALLPATH.MOIP_IHN1010_LOBBY_GUARD && Global.ConfigValues.bGuardVideoEnable)) {
- // MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 경비(영상)통화일 경우 GUI 화면이 아래로(영상이 위로)
- // }
- // else if (eCallPath == CALLPATH.MOIP_V40_RESIDENCE && (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT)) {
- // MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 IHN-1010 이웃통화일 경우 GUI 화면이 아래로(영상이 위로)
- // }
- // else {
- // MainActivity.mIOInterface.ctrlPopupGUI(true); // 멀티콜 거절시 로비 또는 경비(영상)통화가 아닐 경우 GUI 화면이 위로
- // }
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, 1000);
- }
- }
- else {
- LOG_WARN("[onMultiCallEvent] Invalid eFrontCallStatus [" + eFrontCallStatus + "]");
- }
- // if (eFrontCallStatus == CALLSTATUS.CALLED) {
- // ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
- // }
- // else if (eFrontCallStatus == CALLSTATUS.CALLING || eFrontCallStatus == 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, MainActivity.mCallController.mCallInfo.getFRONT());
- // }
- // }
- // else {
- // LOG_WARN("[onMultiCallEvent] Invalid eFrontCallStatus [" + eFrontCallStatus + "]");
- // }
- }
- else {
- // 멀티콜 있음
- doMultiCallReject();
- }
- }
- 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, MainActivity.mCallController.mCallInfo.getFRONT());
- }
- }
- else {
- // 멀티콜 있음
- // 기존 멀티콜을 거절하고, 국선을 멀티콜로 설정한다.
- CALLTYPE eMulticallType = MainActivity.mCallController.mCallInfo.getMultiCallType();
- if (eMulticallType == CALLTYPE.LOBBY || eMulticallType == CALLTYPE.GUARD || eMulticallType == CALLTYPE.RESIDENCE)
- MainActivity.mCallController.rejectBusyMoIPCall();
- else LOG_WARN("[onMultiCallEvent] Invalid eMulticallType [" + eMulticallType + "]");
- 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.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.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) {
- 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 {
- 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.FRONT))
- MainActivity.mSubPhoneController.sendACKDoorOpen(eCallOwner, CALLTYPE.FRONT);
- }
- if (eCallType == CALLTYPE.NONE) return;
- if (eCallType == CALLTYPE.FRONT) {
- if (eCallStatus == CALLSTATUS.CALLING || eCallStatus == CALLSTATUS.TALKING) {
- if (eCallOwner != CALLOWNER.WALLPAD) {
- doTalk(eCallOwner);
- }
- } else if (eCallStatus == CALLSTATUS.END) {
- if (eCallOwner != CALLOWNER.WALLPAD) {
- doEnd();
- }
- } else if (eCallStatus == CALLSTATUS.DOOR_OPEN) {
- if (doSubPhoneDoorOpen(eCallOwner, eCallType))
- MainActivity.mSubPhoneController.sendACKDoorOpen(eCallOwner, eCallType);
- } 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 + "]");
- } 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 + "]");
- } 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);
- Log.d(TAG, "[onPopupResult] nScreen [" + nScreen + "], nID [" + nID + "]");
- 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();
- 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();
- doMultiCallReject();
- CALLPATH eCallPath;
- if(MainActivity.mCallController!=null)
- {
- eCallPath = MainActivity.mCallController.getTalkPath();
- if (eCallPath == CALLPATH.MOIP_IHND101_LOBBY) {
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 로비 통화일 경우 GUI 화면이 아래로(영상이 위로)
- }
- else if ((eCallPath == CALLPATH.MOIP_IHND101_GUARD && Global.ConfigValues.bGuardVideoEnable) || (eCallPath == CALLPATH.MOIP_IHN1010_LOBBY_GUARD && Global.ConfigValues.bGuardVideoEnable)) {
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 경비(영상)통화일 경우 GUI 화면이 아래로(영상이 위로)
- }
- else if (eCallPath == CALLPATH.MOIP_V40_RESIDENCE && (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT)) {
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 IHN-1010 이웃통화일 경우 GUI 화면이 아래로(영상이 위로)
- }
- else {
- MainActivity.mIOInterface.ctrlPopupGUI(true); // 멀티콜 거절시 로비 또는 경비(영상)통화가 아닐 경우 GUI 화면이 위로
- }
- }
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, 1000);
- }
- }
- 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_NOTICE_REMOTECALL) {
- if (nID == ID.POPUP.NOTICE_REMOTECALL.ELEMENT.BUTTON.END) {
- LOG_INFO("[onPopupResult] ID.POPUP.NOTICE_REMOTECALL.ELEMENT.BUTTON.END");
- doEnd();
- MainActivity.mRemoteCallController.sendCloseRemoteCall();
- }
- }
- 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");
- /**
- * JEFF, 2020.01.01
- * 모든 통화에서 멀티콜을 막음
- */
- if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
- MainActivity.mCallController.stop2ndCallTimer();
- doMultiCallReject();
- if(MainActivity.mCallController!=null)
- {
- CALLPATH eCallPath = MainActivity.mCallController.getTalkPath();
- if (eCallPath == CALLPATH.MOIP_IHND101_LOBBY) MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 로비 통화일 경우 GUI 화면이 아래로(영상이 위로)
- else if ((eCallPath == CALLPATH.MOIP_IHND101_GUARD && Global.ConfigValues.bGuardVideoEnable) || (eCallPath == CALLPATH.MOIP_IHN1010_LOBBY_GUARD && Global.ConfigValues.bGuardVideoEnable)) {
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 경비(영상)통화일 경우 GUI 화면이 아래로(영상이 위로)
- }
- else if (eCallPath == CALLPATH.MOIP_V40_RESIDENCE && (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT)) {
- MainActivity.mIOInterface.ctrlPopupGUI(false); // 멀티콜 거절시 IHN-1010 이웃통화일 경우 GUI 화면이 아래로(영상이 위로)
- }
- else {
- MainActivity.mIOInterface.ctrlPopupGUI(true); // 멀티콜 거절시 로비 또는 경비(영상)통화가 아닐 경우 GUI 화면이 위로
- }
- }
- sendHandlerMsgDelayed(HANDLERMSG.REFRESH_BTNLED_STATUS, 0, 0, 1000);
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] onPopupResult(Intent data)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- @Override
- protected void onOutSideTouchExit() {
- super.onOutSideTouchExit();
- }
- private void doTalk(CALLOWNER eCallOwner) {
- try {
- CALLSTATUS eFrontCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- LOG("[doTalk] eFrontCallStatus [" + eFrontCallStatus + "]");
- //ctrlAlphaBlending(false);
- //MainActivity.mIOInterface.ctrlPopupGUI(true);
- if (eFrontCallStatus == CALLSTATUS.IDLE) {
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.TRYING_CALL);
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.RECEIVE_CALL_ACK, CALLTYPE.FRONT);
- } else if (eFrontCallStatus == CALLSTATUS.CALLED || eFrontCallStatus == CALLSTATUS.CALLING) {
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.CONNECT_CALL, CALLTYPE.FRONT);
- } else {
- LOG_INFO("[doTalk] Invalid CALLSTATUS [" + eFrontCallStatus + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doTalk()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doEnd() {
- try {
- bBlockSavePicBTN = true;
- if (ConfigValues.bReliefCall) BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
- else BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_front_photo_disabled);
- if (MainActivity.mCallController.mCallInfo.getIDLECnt() != MainActivity.mCallController.mCallInfo.IDLECNT_MAX) {
- CALLSTATUS eCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- LOG("[doEnd] eCallStatus [" + eCallStatus + "]");
- if (eCallStatus == CALLSTATUS.CALLED) {
- Global.stopMelodyRepeat();
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.REJECT_CALL, CALLTYPE.FRONT);
- Global.change1stCallLogAction(CALLACTION.REJECT);
- }
- else if (eCallStatus == CALLSTATUS.TALKING || eCallStatus == CALLSTATUS.CALLING) {
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.MOBILE)
- MainActivity.mRemoteCallController.sendCloseRemoteCall();
- ((MainActivity) mContext).sendHandlerMsg(IGW300CMD.AUDIO_OFF, 0, 0); // 현관카메라로 음원이 나가는 것을 방지하기 위하여 path off (seulki)
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.FRONT);
- }
- else if (eCallStatus == CALLSTATUS.RECORDING) {
- stopStrangerRecord(true, 0);
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.FRONT);
- }
- else {
- LOG_INFO("[doEnd] Invalid CALLSTATUS [" + eCallStatus + "]");
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.MOBILE)
- MainActivity.mRemoteCallController.sendCloseRemoteCall();
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.FRONT);
- }
- }
- 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.d(TAG, "[doTalkByBTN] MainActivity.mCallController.mCallInfo.getFRONT() = " + MainActivity.mCallController.mCallInfo.getFRONT());
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.IDLE) {
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.FRONT, CALLSTATUS.TRYING_CALL);
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.RECEIVE_CALL_ACK, CALLTYPE.FRONT);
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) {
- MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.CONNECT_CALL, CALLTYPE.FRONT);
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.FRONT);
- }
- else {
- LOG_INFO("[doTalkByBTN] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- }
- } 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 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 boolean doDoorOpen() {
- try {
- Log.d(TAG, "[doDoorOpen] CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- if (ConfigValues.eDoorLockType == DOORLOCKTYPE.NOT_USE) return false;
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) {
- enableDoorOpenBTN(false);
- enableTalkBTN(false);
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- if (Global.ctrlFrontDoorOpen()) {
- // 출입 데이터 기록(모니터링 중 문열림)
- WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
- WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
- WpadAccessData.closeDB();
- sendHandlerMsgDelayed(HANDLERMSG.PLAYMENT_OPENDOOR, 0, 0, 1000);
- //if (ConfigValues.eDoorLockType == DOORLOCKTYPE.WIRELESS || ConfigValues.eDoorLockType == DOORLOCKTYPE.FINGERPRINT) {
- sendHandlerMsgDelayed(HANDLERMSG.RELEASE_OCCUPIEDMODE, 0, 0, 2000);
- //}
- sendHandlerMsgDelayed(HANDLERMSG.END_CALL, 0, 0, 3000);
- Global.change1stCallLogAction(CALLACTION.TALK_DOOR);
- MainActivity.mCallController.mCallInfo.setCallOwner(CALLOWNER.NONE);
- return true;
- }
- else {
- MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
- enableDoorOpenBTN(true);
- enableTalkBTN(true);
- return false;
- }
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED) {
- enableDoorOpenBTN(false);
- enableTalkBTN(false);
- Global.stopMelodyRepeat();
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- if (Global.ctrlFrontDoorOpen()) {
- // 출입 데이터 기록(호출 중 문열림)
- WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
- WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
- WpadAccessData.closeDB();
- sendHandlerMsgDelayed(HANDLERMSG.PLAYMENT_OPENDOOR, 0, 0, 1000);
- //if (ConfigValues.eDoorLockType == DOORLOCKTYPE.WIRELESS || ConfigValues.eDoorLockType == DOORLOCKTYPE.FINGERPRINT) {
- sendHandlerMsgDelayed(HANDLERMSG.RELEASE_OCCUPIEDMODE, 0, 0, 2000);
- //}
- sendHandlerMsgDelayed(HANDLERMSG.END_CALL, 0, 0, 3000);
- Global.change1stCallLogAction(CALLACTION.DOOR);
- MainActivity.mCallController.mCallInfo.setCallOwner(CALLOWNER.NONE);
- return true;
- } else {
- MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
- enableDoorOpenBTN(true);
- enableTalkBTN(true);
- return false;
- }
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
- enableDoorOpenBTN(false);
- if (Global.ctrlFrontDoorOpen()) {
- // 출입 데이터 기록(통화 중 문열림)
- WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
- WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
- WpadAccessData.closeDB();
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- ((MainActivity) mContext).sendHandlerMsg(IGW300CMD.AUDIO_OFF, 0, 0); // 현관카메라로 음원이 나가는 것을 방지하기 위하여 path off (seulki)
- // sendHandlerMsgDelayed(HANDLERMSG.SET_PATH_NORMAL, 0, 0, 2000);
- enableEndBTN(false); // 멘트 출력중일 경우 종료 버튼 이벤트 disable (seulki)
- //>> 220503.yjyoon
- // 안심통화 > 문열림버튼 클릭시 멘트가 작게 나오는 문제.
- // 멘트 재생 전 audio path를 normal 로 변경.
- sendHandlerMsg(HANDLERMSG.SET_PATH_NORMAL, 0, 0);
- sendHandlerMsg(HANDLERMSG.STOP_AUDIO_RECORD, 0, 0);
- //<<
- sendHandlerMsgDelayed(HANDLERMSG.PLAYMENT_OPENDOOR_TALKING, 0, 0, 1000);
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- sendHandlerMsgDelayed(HANDLERMSG.PLAYMENT_OPENDOOR_TALKING, 0, 0, 1000);
- }
- else {
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
- }
- //if (ConfigValues.eDoorLockType == DOORLOCKTYPE.WIRELESS || ConfigValues.eDoorLockType == DOORLOCKTYPE.FINGERPRINT) {
- sendHandlerMsgDelayed(HANDLERMSG.RELEASE_OCCUPIEDMODE, 0, 0, 2000);
- //}
- sendHandlerMsgDelayed(HANDLERMSG.END_CALL, 0, 0, 3000);
- Global.change1stCallLogAction(CALLACTION.TALK_DOOR);
- MainActivity.mCallController.mCallInfo.setCallOwner(CALLOWNER.NONE);
- return true;
- }
- else {
- MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
- enableDoorOpenBTN(true);
- // enableTalkBTN(true);
- return false;
- }
- } else {
- LOG_INFO("[doDoorOpen] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doDoorOpen()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- return false;
- }
- private boolean doSubPhoneDoorOpen(CALLOWNER eCallOwner, CALLTYPE eCallType) {
- try {
- LOG_WARN("[doSubPhoneDoorOpen] eCallOwner [" + eCallOwner + "], eCallType [" + eCallType + "]");
- if (eCallType != CALLTYPE.FRONT) {
- LOG_WARN("[doSubPhoneDoorOpen] eCallType is wrong eCallType [" + eCallType + "]");
- return false;
- }
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) {
- if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || eCallOwner == CALLOWNER.UNIVERSAL_DEVICE) {
- Global.stopMelodyRepeat();
- doDoorOpen();
- return true;
- }
- return false;
- } else if (MainActivity.mCallController.mCallInfo.getFRONT() == 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();
- doDoorOpen();
- return true;
- }
- return false;
- } else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
- if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || eCallOwner == CALLOWNER.UNIVERSAL_DEVICE) {
- doDoorOpen();
- return true;
- }
- return false;
- } else {
- LOG_INFO("[doSubPhoneDoorOpen] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- 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 {
- MainActivity.mCallController.mCallInfo.setMultiCallAcceptFlag(true);
- CALLSTATUS eCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- LOG("[doMultiCallAccept] eCallStatus [" + eCallStatus + "]");
- if (eCallStatus == CALLSTATUS.RECORDING) {
- showFrontCam(false, false);
- if (MainActivity.bRecordingStatus) {
- MainActivity.bRecordingStatus = false;
- ((MainActivity) (this.getContext())).mediaStopRecord(true);
- sendHandlerMsg(HANDLERMSG.SAVE_VISITOR_VIDEO_NOT_FINISH_APP, 0, 0);
- }
- MainActivity.mCallController.onFrontEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.FRONT);
- } else {
- 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();
- 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.rejectBusyMoIPCall();
- MainActivity.mCallController.mCallInfo.setCallStatus(eMultiCallType, CALLSTATUS.IDLE);
- } else if (eMultiCallType == CALLTYPE.PSTN) {
- if(MainActivity.mPSTNController!=null)
- MainActivity.mPSTNController.sendReject();
- if(MainActivity.mCallController!=null)
- MainActivity.mCallController.onPSTNEvent(CALLEVENTTYPE.CANCEL_CALL, null, null);
- MainActivity.mCallController.mCallInfo.setCallStatus(eMultiCallType, CALLSTATUS.IDLE);
- } else {
- LOG_WARN("[doMultiCallReject] Invalid eMultiCallType [" + eMultiCallType + "]");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doMultiCallReject()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void doAutoCall() {
- try {
- if (RemoteIDInfo.bAutoCall) {
- RemoteIDInfo.bAutoCall = false;
- doTalk(CALLOWNER.WALLPAD);
- } else {
- LOG("[doAutoCall] AutoCall is not activated!!");
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] doAutoCall()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void procAddCall() {
- try {
- CALLTYPE eMType = MainActivity.mCallController.mCallInfo.getMultiCallType();
- CALLSTATUS eMStatus = MainActivity.mCallController.mCallInfo.getMultiCallStatus();
- LOG("[procAddCall] eMType [" + eMType + "], eMStatus [" + eMStatus + "]");
- if (eMType == CALLTYPE.FRONT && eMStatus == CALLSTATUS.CALLED) {
- Global.replace1stBy2ndCallHistory();
- if (MainActivity.mCallController.mCallInfo.getMultiCallAccept()) {
- // 멀티콜 수락 (통화시작)
- showFrontCam(true, false);
- super.setFinishTimerDestroy();
- MainActivity.mCallController.set1stCallTimer(eMType, MainActivity.mCallController.mCTT.RESIDENCEnFRONT);
- doTalk(CALLOWNER.WALLPAD);
- }
- else {
- // 멀티콜 수신중 (호출수신중)
- sendHandlerMsg(HANDLERMSG.SET_BTN_STATUS, 0, 0);
- showFrontCam(true, true);
- Global.playMelodyRepeat(eMType);
- super.setFinishTimerDestroy();
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(4); // camera open check 이후 TV Out 시작
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT)
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(4); // camera open check 이후 TV Out 시작
- }
- else {
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.FRONT, false);
- }
- LOG("[procAddCall] ======= set1stCallTimer =======");
- MainActivity.mCallController.stop2ndCallTimer(); // 멀티콜 호출로 화면 전환될 경우 기존타이머 해제 후 타임아웃 재설정
- MainActivity.mCallController.set1stCallTimer(eMType, MainActivity.mCallController.mCTT.CALLED);
- }
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- }
- else if (eMType == CALLTYPE.FRONT && eMStatus == CALLSTATUS.RECORDING) {
- if (MainActivity.mCallController.mCallInfo.getMultiCallAccept()) {
- // [스마트현관카메라] 거동수상자 녹화 멀티콜 수락 (통화시작)
- showFrontCam(true, false);
- super.setFinishTimerDestroy();
- startStrangerRecord(false);
- }
- // else {
- // // 멀티콜 수신중 (호출수신중)
- // showFrontCam(true, false);
- // super.setFinishTimerDestroy();
- // startStrangerTakePic();
- // }
- }
- else {
- // LOG("[procAddCall] No MultiCall!! bFrontMonitoring [" + Global.bFrontMonitoring + "]");
- LOG("[procAddCall] No MultiCall!!");
- // 멀티콜 없음
- if (RemoteIDInfo.bAutoCall) {
- doAutoCall(); // 멀티콜 상황이 아닌경우 자동호출을 수행함
- MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
- }
- else {
- // 자동호출도 없는 경우, (현관 아이콘을 통해 현관통화 화면에 진입한 경우) 현관모니터링을 시작한다.
- // if (Global.bFrontMonitoring) doTalkByBTN(CALLOWNER.WALLPAD);
- }
- }
- // Global.bFrontMonitoring = false;
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] procAddCall()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void showFrontCam(boolean bOn, boolean bBell) {
- try {
- LOG("[showFrontCam] bOn [" + bOn + "], bBell [" + bBell + "] " );
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300) {
- if (bOn) {
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT) {
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_WALLPAD, 0, 0);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.VIDEO_MOIP);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1000);
- // ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 스마트현관카메라 밝기조절 안됨
- }
- else {
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_FRONT, 0, 0);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.VIDEO_FRONT);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1500);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 현관카메라 영상 생성 후 밝기 조절
- }
- }
- else {
- if (ConfigValues.bRemoteCall) {
- sendHandlerMsg(HANDLERMSG.STOP_VIDEO_RECORD, 0, 0);
- // startVideoEncoding(false, false, false);
- }
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.FRONT_BELL_OFF);
- ((MainActivity) mContext).removeFrontVideoLayout();
- MainActivity.mIOInterface.selectFrontCam(bOn);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- }
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
- if (bOn) {
- // 현관카메라 On
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMARTIOT) {
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_WALLPAD, 0, 0);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.VIDEO_MOIP);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1000);
- // ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 스마트현관카메라 밝기조절 안됨
- }
- else if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_HS) {
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_FRONT, 0, 0);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.VIDEO_FRONT);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1000);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 스마트현관카메라 밝기조절 안됨
- }
- else {
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_FRONT, 0, 0);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.VIDEO_FRONT);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1500);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 현관카메라 영상 생성 후 밝기 조절
- }
- }
- else {
- // 현관카메라 Off
- if (ConfigValues.bRemoteCall) {
- sendHandlerMsgDelayed(HANDLERMSG.STOP_VIDEO_RECORD, 0, 0, 500);
- }
- ((MainActivity) mContext).showFrontVideo(false);
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.interfaceIGW300(IGW300CMD.FRONT_BELL_OFF);
- // sendHandlerMsgDelayed(HANDLERMSG.REMOVE_FRONTVIDEO, 0, 0, 1000);
- // sendHandlerMsgDelayed(HANDLERMSG.SELECT_CAM_WALLPAD, 0, 0, 1500);
- // sendHandlerMsgDelayed(HANDLERMSG.FRONTCAM_OFF, 0, 0, 1500);
- sendHandlerMsg(HANDLERMSG.REMOVE_FRONTVIDEO, 0, 0);
- sendHandlerMsg(HANDLERMSG.SELECT_CAM_WALLPAD, 0, 0);
- sendHandlerMsg(HANDLERMSG.FRONTCAM_OFF, 0, 0);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- }
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40) {
- if (bOn) {
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_HS || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW) {
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1000);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0);
- } else {
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1500);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0);
- }
- }
- else {
- if (ConfigValues.bRemoteCall) {
- sendHandlerMsg(HANDLERMSG.STOP_VIDEO_RECORD, 0, 0);
- // startVideoEncoding(false, false, false);
- }
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).removeFrontVideoLayout();
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- }
- }
- else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if (bOn) {
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_ON);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_ON);
- if (ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_HS || ConfigValues.eFrontCameraType == FRONTCAMERATYPE.SMART_DW) {
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1000);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0);
- }
- else {
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).initFrontVideoLayout();
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).sendHandlerMsgDelayed(MainActivity.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, 1500);
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0);
- }
- }
- else {
- if (ConfigValues.bRemoteCall) {
- sendHandlerMsg(HANDLERMSG.STOP_VIDEO_RECORD, 0, 0);
- // startVideoEncoding(false, false, false);
- }
- ((MainActivity) mContext).showFrontVideo(false);
- ((MainActivity) mContext).removeFrontVideoLayout();
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- }
- }
- else {
- if (bOn) {
- MainActivity.mIOInterface.selectFrontCam(bOn);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- Global.ctrlCameraBrightness(nCurrentBrightness);
- ((MainActivity) mContext).initFrontVideoLayout();
- } else {
- ((MainActivity) mContext).removeFrontVideoLayout();
- MainActivity.mIOInterface.selectFrontCam(bOn);
- MainActivity.mIOInterface.ctrlFrontCamPower(bOn);
- }
- }
- if (bBell && MainActivity.mIOInterface!=null ) MainActivity.mIOInterface.ctrlFrontCamBell(bBell);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG,re);
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- if (MainActivity.mIOInterface != null) {
- MainActivity.mIOInterface.selectFrontCam(false);
- MainActivity.mIOInterface.ctrlFrontCamPower(false);
- }
- } catch (Exception e) {
- Log.e(TAG, "[Exception] showFrontCam(boolean bOn, boolean bBell)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- // 영상 오류 발생할 경우 카메라 전원 off
- ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
- ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
- if (MainActivity.mIOInterface != null) {
- MainActivity.mIOInterface.selectFrontCam(false);
- MainActivity.mIOInterface.ctrlFrontCamPower(false);
- }
- }
- }
- 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 setBTNStatus() {
- try {
- LOG_INFO("[setBTNStatus] MainActivity.mCallController.mCallInfo.getFRONT() [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.MOBILE) {
- enableTalkBTN(false);
- enableDoorOpenBTN(false);
- enableFilterBTN(false);
- } else {
- BTN_TALK.setButtonEventOffDisable();
- BTN_END.setButtonEventOffDisable();
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, 3000);
- if (ConfigValues.eDoorLockType != DOORLOCKTYPE.NOT_USE) BTN_DOOROPEN.setButtonEventOffDisable();
- enableFilterBTN(true);
- }
- runFlickerCallLED();
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- enableTalkBTN(false); // IHN-1010에서 현관 단일콜일 경우 띵똥 소리 출력 중인 경우에는 통화버튼 disable
- } else {
- // yjyoon. 녹화 중 현관콜 처리. 2443 boardtype은 V40_IGW300_NOUGAT.
- enableTalkBTN(true);
- }
- enableEndBTN(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, 3000); // 통화 시작 후 3초 후 종료 버튼 활성화 (다담 김명준선임 요청 19.09.30)
- enableDoorOpenBTN(false);
- if (ConfigValues.eDoorLockType != DOORLOCKTYPE.NOT_USE) sendHandlerMsgDelayed(HANDLERMSG.ENABLE_OPEN_DOOR, 0, 0, 3000);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, 3000);
- enableFilterBTN(true);
- runFlickerCallLED();
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- enableTalkBTN(false);
- enableEndBTN(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, 3000); // 통화 시작 후 3초 후 종료 버튼 활성화 (다담 김명준선임 요청 19.09.30)
- enableDoorOpenBTN(false);
- if (MainActivity.mCallController.mCallInfo.getCallOwner() == CALLOWNER.WALLPAD) {
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, 3000);
- if (ConfigValues.eDoorLockType != DOORLOCKTYPE.NOT_USE) sendHandlerMsgDelayed(HANDLERMSG.ENABLE_OPEN_DOOR, 0, 0, 3000); // 통화중 문열림 버튼 enable delay (바로 누르면 멘트 묵음 증상 발생 seulki)
- } else {
- enableSavePicBTN(false);
- }
- setOnCallLED();
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.RECORDING) {
- ((MainActivity) mContext).setMenuBTNEnable(false);
- enableTalkBTN(false);
- enableEndBTN(false);
- enableDoorOpenBTN(false);
- enableSavePicBTN(false);
- enableFilterBTN(false); // 녹화중 안심통화 버튼 비활성화
- enableVolumeSeekBar(false);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, 4000);
- }
- else {
- ((MainActivity) mContext).setMenuBTNEnable(true);
- enableTalkBTN(false);
- enableEndBTN(false);
- enableDoorOpenBTN(false);
- enableSavePicBTN(false);
- enableFilterBTN(false);
- 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 {
- LOG_INFO("[setBTNLEDStatus] MainActivity.mCallController.mCallInfo.getFRONT() [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED) {
- runFlickerCallLED();
- } else if (MainActivity.mCallController.mCallInfo.getFRONT() == 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 {
- if (bEnable) BTN_TALK.setButtonEventOffDisable();
- else {
- if (ConfigValues.bReliefCall) BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled);
- else BTN_TALK.setButtonEventOffEnable(R.drawable.btn_front_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);
- }
- }
- // 통화종료 버튼(종료, 홈) 상태 처리 (seulki)
- private void enableEndBTN(boolean bEnable) {
- try {
- LOG("[setEndBtnStatus] bEnable [" + bEnable + "]");
- if (bEnable) {
- // 이벤트 on
- if (ConfigValues.bReliefCall) BTN_END.setImageResource(R.drawable.btn_endl_normal);
- else BTN_END.setImageResource(R.drawable.btn_front_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_front_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 enableDoorOpenBTN(boolean bEnable) {
- try {
- if (ConfigValues.eDoorLockType != DOORLOCKTYPE.NOT_USE) { // 도어락 문열림 미연동시 문열림 버튼 비활성화
- if (bEnable) {
- if (ConfigValues.bReliefCall) BTN_DOOROPEN.setImageResource(R.drawable.btn_open_normal);
- else BTN_DOOROPEN.setImageResource(R.drawable.btn_front_open_normal);
- BTN_DOOROPEN.setButtonEventOffDisable();
- } else {
- if (ConfigValues.bReliefCall) BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_open_disabled);
- else BTN_DOOROPEN.setButtonEventOffEnable(R.drawable.btn_front_open_disabled);
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableDoorOpenBTN(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_front_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_front_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);
- }
- }
- private void enableFilterBTN(boolean bEnable) {
- try {
- if (ConfigValues.bReliefCall) {
- if (bEnable) {
- if (MainActivity.mCallController.mCallInfo != null) {
- if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.RECORDING)
- return; // 거동수상자 녹화중인 경우에는 안심통화 필터버튼 비활성화 처리
- }
- BTN_RELIEF_FILTER_01.setButtonEventOffDisable();
- BTN_RELIEF_FILTER_02.setButtonEventOffDisable();
- // BTN_RELIEF_FILTER_03.setButtonEventOffDisable();
- // BTN_RELIEF_FILTER_04.setButtonEventOffDisable();
- } else {
- BTN_RELIEF_FILTER_01.setButtonEventOffEnable();
- BTN_RELIEF_FILTER_02.setButtonEventOffEnable();
- // BTN_RELIEF_FILTER_03.setButtonEventOffEnable();
- // BTN_RELIEF_FILTER_04.setButtonEventOffEnable();
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableFilterBTN(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void enableVolumeSeekBar(boolean bEnable) {
- try {
- if (bEnable) {
- if (SEEKBAR_VOLUME != null) SEEKBAR_VOLUME.setEnabled(true);
- } else {
- if (SEEKBAR_VOLUME != null) SEEKBAR_VOLUME.setEnabled(false);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] enableVolumeSeekBar(boolean bEnable)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- String MAIN_SCREEN_NOW_UPDATE = "MAIN_SCREEN_NOW_UPDATE";
- private void releaseOccupiedMode(int nDelayTime) {
- LOG_INFO("[releaseOccupiedMode] nDelayTime [" + nDelayTime + "]");
- WallpadStatusData DBMGR = new WallpadStatusData(mContext);
- try {
- // 재택방범중에 현관문을 열면 마그네틱 센서로 인해 비상이 울린다.
- // 이때문에 현관문을 열면 재택방범을 자동으로 해제한다.
- int nAlarmStatus = DBMGR.GetAlarmStatus();
- if (nAlarmStatus == WallpadStatusData.GUARD_IN) {
- try {
- Thread.sleep(nDelayTime);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- DBMGR.SetAlarmStatus(WallpadStatusData.ALARM_NONE);
- // MainActivity.mSound.PlayMent(SND.mode.NORMALMODE_COMEBACK);
- sendHandlerMsgDelayed(HANDLERMSG.PLAYMENT_NORMALMODE_COMEBACK, 0, 0, 100);
- Intent intent = new Intent(MAIN_SCREEN_NOW_UPDATE, null);
- mContext.sendBroadcast(intent);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] releaseOccupiedMode(int nDelayTime)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- DBMGR.closeDB();
- }
- // 방문자 사진 자동 저장
- boolean bEnableAutoVisitorPic = false;
- boolean bRemote_FrontCalled = false; // 방문객원격통화 + 현관호출(띵똥)을 통해진입일 경우 TRUE
- private void startSaveVisitorPicture() {
- try {
- AutoPictureInfo mAutoPictureInfo = new AutoPictureInfo();
- mAutoPictureInfo.setData(ConfigValues.strDong, ConfigValues.strHo, CALLTYPE.FRONT, MainActivity.mCallController.mCallInfo.getFRONT(), MainActivity.mCallController.makeSIPID(CALLTYPE.RESIDENCE, ConfigValues.strDong, ConfigValues.strHo), "null");
- startAutoSaveVisitorPicture mStartAutoSaveVisitorPicture = new startAutoSaveVisitorPicture(mContext, mAutoPictureInfo, bRemote_FrontCalled);
- if (bEnableAutoVisitorPic) mStartAutoSaveVisitorPicture.start();
- else {
- mAutoPictureInfo = null;
- mStartAutoSaveVisitorPicture = null;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startSaveVisitorPicture()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- // 거동수상자 사진 자동 저장
- private void startSaveStrangerPicture() {
- try {
- Log.d(TAG, "[startSaveStrangerPicture]");
- ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_TAKEPICTURE);
- AutoPictureInfo mAutoPictureInfo = new AutoPictureInfo();
- mAutoPictureInfo.setData(ConfigValues.strDong, ConfigValues.strHo, CALLTYPE.FRONT, MainActivity.mCallController.mCallInfo.getFRONT(), MainActivity.mCallController.makeSIPID(CALLTYPE.RESIDENCE, ConfigValues.strDong, ConfigValues.strHo), "null");
- startAutoSaveStrangerPicture mStartAutoSaveStrangerPicture = new startAutoSaveStrangerPicture(mContext, mAutoPictureInfo);
- mStartAutoSaveStrangerPicture.start();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startSaveStrangerPicture()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void startTakeVisitorPicture() {
- try {
- Log.d(TAG, "[startTakeVisitorPicture]");
- AutoPictureInfo mAutoPictureInfo = new AutoPictureInfo();
- mAutoPictureInfo.setData(ConfigValues.strDong, ConfigValues.strHo, CALLTYPE.FRONT, MainActivity.mCallController.mCallInfo.getFRONT(), MainActivity.mCallController.makeSIPID(CALLTYPE.FRONT, ConfigValues.strDong, ConfigValues.strHo), "null");
- startMissedCallVisitorPicture mStartMissedCallVisitorPicture = new startMissedCallVisitorPicture(mContext, mAutoPictureInfo, bRemote_FrontCalled);
- if (bEnableAutoVisitorPic) mStartMissedCallVisitorPicture.start();
- else {
- mAutoPictureInfo = null;
- mStartMissedCallVisitorPicture = null;
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startTakeVisitorPicture()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- 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);
- }
- } 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);
- }
- else {
- Log.w(TAG, "[setOnCallLED] Not supported boardtype!! -> " + ConfigValues.DEVICE_BOARDTYPE);
- }
- } 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);
- }
- }
- else {
- Log.w(TAG, "[setOffCallLED] Not supported boardtype!! -> " + ConfigValues.DEVICE_BOARDTYPE);
- }
- } 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.getFRONT() [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
- if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
- if ((MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) || (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED)) {
- if (bFlickeringCallLED) {
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- bStatusFlickeringCallLED = !bStatusFlickeringCallLED;
- sendHandlerMsgDelayed(HANDLERMSG.FLICKER_LED_CALL, 0, 0, 1000);
- }
- }
- else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
- bStatusFlickeringCallLED = true;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- }
- else {
- bStatusFlickeringCallLED = false;
- MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
- LOG_INFO("[ctrlCallLED] bFlickeringCallLED [" + bFlickeringCallLED + "], bStatusFlickeringCallLED [" + bStatusFlickeringCallLED + "]");
- }
- }
- else {
- Log.w(TAG, "[ctrlCallLED] Not supported boardtype!! -> " + ConfigValues.DEVICE_BOARDTYPE);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] ctrlCallLED()");
- //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.getFrontVolume();
- // Log.d(TAG, "[getVolume] nCurrentVolume: " + nCurrentVolume);
- } 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 {
- Log.d(TAG, "[setVolume]");
- if (!Global.setFrontVolume(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(nValue)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void ctrlVolume(boolean bSave) {
- try {
- if (bSave) setVolume(nCurrentVolume);
- CALLSTATUS eCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- LOG("[ctrlVolume] eCallStatus: " + eCallStatus);
- if (eCallStatus == CALLSTATUS.TALKING) {
- Global.setV40WallPadVolume(nCurrentVolume);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.d(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);
- }
- }
- // 밝기
- SeekBar.OnSeekBarChangeListener mOnBrightChangeListener = new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- int nCtrlLevel = getCtrlLevel(progress);
- if (nCurrentBrightness != nCtrlLevel) {
- nCurrentBrightness = nCtrlLevel;
- showBright(nCurrentBrightness);
- // ctrlBright(false);
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- nCurrentBrightness = getCtrlLevel(seekBar.getProgress());
- ctrlBright(true);
- }
- };
- private void getBrightness() {
- try {
- nCurrentBrightness = Global.getFrontCamBrightness();
- LOG("[getBrightness] nCurrentBrightness: " + nCurrentBrightness);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] getBrightness()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void setBrightness(int nValue) {
- try {
- if (!Global.setFrontCamBrightness(nValue))
- LOG_WARN("[setVolume] Fail to set Brightness!! nValue: " + nValue);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setBrightness(nValue)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void ctrlBright(boolean bSave) {
- try {
- if (bSave) setBrightness(nCurrentBrightness);
- CALLSTATUS eCallStatus = MainActivity.mCallController.mCallInfo.getFRONT();
- LOG("[ctrlBright] eCallStatus: " + eCallStatus);
- if (ConfigValues.eFrontCameraType != FRONTCAMERATYPE.SMARTIOT) { // 스마트현관카메라 밝기조절 안됨
- if ((eCallStatus == CALLSTATUS.CALLING) || (eCallStatus == CALLSTATUS.CALLED) || (eCallStatus == CALLSTATUS.TALKING)) {
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.CTRL_FRONTVIDEO_BRIGHTNESS, nCurrentBrightness, 0); // 현관카메라 영상 생성 후 밝기 조절
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.d(TAG, "[Exception] ctrlBright(boolean bSave)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void showBright(int nValue) {
- try {
- // Log.d(TAG, "[showVolume] nValue [" + nValue + "]");
- if (TXT_BRIGHT_LEVEL != null) TXT_BRIGHT_LEVEL.setText(Integer.toString(nValue));
- else Log.w(TAG, "[showVolume] TXT_BRIGHT_LEVEL is null!!");
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] showBright(nValue)");
- }
- }
- private void drawBright() {
- try {
- if (SEEKBAR_BRIGHT != null) {
- SEEKBAR_BRIGHT.setProgress(ctrlSeekBarThumb(nCurrentBrightness));
- showBright(nCurrentBrightness);
- }
- else Log.w(TAG, "[drawVolume] SEEKBAR_BRIGHT is null!!");
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] drawBright()");
- //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;
- }
- }
- /* ================================================================================================
- * 스마트현관카메라 거동수상자 영상 녹화 / 사진 촬영
- ================================================================================================ */
- // 녹화
- private final String VIDEO_TEMP_PATH = define.BESTIN_LOCATION + "VisitorVideo.mp4";
- // 사진
- private int TAKINGPIC_PERIOD = 0;
- private boolean startStrangerRecord(boolean bRemoteCall) {
- try {
- Log.d(TAG, "[startStrangerRecord] bRecordingStatus [" + MainActivity.bRecordingStatus + "], bRemoteCall [" + bRemoteCall + "]");
- if (!MainActivity.bRecordingStatus) {
- MainActivity.bRecordingStatus = true;
- if (((MainActivity) mContext).mRecordTimer != null) {
- ((MainActivity) mContext).mRecordTimer.cancel();
- // ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_VIDEORECORD);
- if (bRemoteCall) sendHandlerMsgDelayed(HANDLERMSG.MEDIA_RECORD_START_REMOTECALL, 0, 0, 0);
- else sendHandlerMsgDelayed(HANDLERMSG.MEDIA_RECORD_START, 0, 0, 0); // 녹화 시작
- return true;
- }
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startStrangerRecord()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- return false;
- }
- private void stopStrangerRecord(boolean bSave, int bCallFront) {
- try {
- LOG("[stopStrangerRecord] bSave [" + bSave + "] bCallFront[" + bCallFront + "]");
- if (bCallFront == 1) {
- // 현관콜. FrontCam 유지
- showFrontCam(true, false);
- } else {
- showFrontCam(false, false);
- }
- if (MainActivity.bRecordingStatus) {
- MainActivity.bRecordingStatus = false;
- ((MainActivity) (this.getContext())).mediaStopRecord(true);
- if (((MainActivity) mContext).mCurRecordTime <= 3 || !bSave) {
- LOG_WARN("[stopStrangerRecord] Not Save Recording File!!");
- File tempFile = new File(VIDEO_TEMP_PATH);
- if (tempFile.isFile()) {
- tempFile.delete();
- }
- // yjyoon. 녹화 중 새로운 콜인 경우 앱을 종료하지 않는다.
- if (bCallFront == 0) {
- finishWallpadCallApp();
- }
- }
- else {
- // yjyoon
- // 영상 저장 후 앱 종료. 앱 종료를 막기 위해 arg1 = 1 설정
- sendHandlerMsg(HANDLERMSG.SAVE_VISITOR_VIDEO_FINISH_APP, bCallFront == 0 ? 0 : 1, 0);
- }
- Log.v("yjyoon", "Call TalkFront ###Common.BR_MAIN_NOTI.STOP_RECORDING");
- // yjyoon. WallPadMain으로 녹화 종료 이벤트 발생. Common.bWallPadRecoder 값 변경.
- Intent newIntent = new Intent(); // 녹화 종료 BR 전송
- newIntent.setAction(ACNAME_MAIN_NOTI);
- newIntent.putExtra("KIND", /**Common.BR_MAIN_NOTI.STOP_RECORDING*/1027);
- getContext().sendBroadcast(newIntent);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] stopStrangerRecord()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- Timer TAKEPICTimer = null;
- private void startStrangerTakePic() {
- try {
- LOG("[startStrangerTakePic] TAKINGPIC_PERIOD [" + TAKINGPIC_PERIOD + "]");
- if (TAKEPICTimer != null) TAKEPICTimer.cancel();
- TAKEPICTimer = new Timer();
- TAKEPICTimer.scheduleAtFixedRate(new TAKEPICTimerTask(), 3000, 1000);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startStrangerTakePic()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- int takePicCnt = 0;
- class TAKEPICTimerTask extends TimerTask {
- public void run() {
- if (TAKEPICTimer == null) return;
- takePicCnt++;
- Log.d(TAG, "[TAKEPICTimerTask] takePicCnt [" + takePicCnt + "]");
- if (takePicCnt <= 5) {
- sendHandlerMsg(HANDLERMSG.SAVE_STRANGERPICTURE, 0, 0);
- } else {
- TAKEPICTimer.cancel();
- TAKEPICTimer = null;
- sendHandlerMsgDelayed(HANDLERMSG.FINISH_TAKE_STRANGERPIC, 0, 0, 1000);
- }
- }
- }
- /* ================================================================================================
- * 방문객 원격통화
- ================================================================================================ */
- // ============================== 음성 ==============================
- /*
- [방문객 원격통화] - bRemoteCall TRUE일 경우
- 1. 현관 음성 녹음 후(Analog -> Digital)
- 2. 모바일로 전송 (sendMedia Library 사용)
- [안심통화] - bRemoteCall FALSE일 경우
- 1. 현관 음성 녹음(Analog -> Digital)
- 2. AudioTrack play
- */
- private void startAudioRecording(boolean bRemoteCall) {
- try {
- LOG("[startAudioRecording] bRemoteCall [" + bRemoteCall + "]");
- if (MainActivity.mAudioRecordController == null)
- LOG_WARN("[startAudioRecording] mAudioRecordController is null!");
- if (MainActivity.mAudioRecordController != null) {
- MainActivity.mAudioRecordController.startAudioRecording(bRemoteCall);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startAudioRecording(boolean bMobile)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- private void stopAudioRecording() {
- try {
- if (MainActivity.mAudioRecordController != null) {
- MainActivity.mAudioRecordController.stopAudioRecording();
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] stopAudioRecording(boolean bEnd)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- // ============================== 영상 ==============================
- public static void startVideoEncoding(boolean bSet, boolean bEncoding, boolean bDecoding) {
- try {
- Log.d(TAG, "[startVideoEncoding] bSet [" + bSet + "], bEncoding [" + bEncoding + "], bDecoding [" + bDecoding + "]");
- if (MainActivity.mVideoController == null)
- Log.w(TAG, "[startVideoEncoding] mVideoController is null!");
- if (MainActivity.mVideoController != null) {
- MainActivity.mVideoController.startVideoEncoding(bSet, bEncoding, bDecoding);
- }
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] startVideoEncoding(boolean bSet, boolean bEncoding, boolean bDecoding)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- /* ================================================================================================
- * 안심통화
- ================================================================================================ */
- int nSelectedFilter = 0; // 0: 변조안함 / 1~4: 필터 No
- boolean bReliefCallInit = false;
- private void selectReliefCallFilter(int nID, boolean bSelect) {
- try {
- Log.d(TAG, "[selectReliefCallFilter] bSelect [" + bSelect + "]");
- int nFilter = nID - ID.SCREEN.TALKFRONT.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;
- } else {
- nSelectedFilter = nFilter; // 기존 선택했던 필터
- 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_FRONT));
- bReliefCallInit = true;
- }
- }
- }
- }
- setFilterBTNStatus(nSelectedFilter);
- sendHandlerMsg(HANDLERMSG.SEND_BROADCAST_FILTER, 0, 0); // BR
- if (bSelect) {
- if (nSelectedFilter == 0) {
- if (MainActivity.mCallController.getTalkPath() != CALLPATH.FRONT) {
- sendHandlerMsg(HANDLERMSG.SET_PATH_DOOR, 0, 0);
- stopAudioRecording();
- }
- } else if (1 <= nSelectedFilter && nSelectedFilter <= 4) {
- if (MainActivity.mCallController.getTalkPath() != CALLPATH.DOOR_RELIEFCALL) {
- sendHandlerMsg(HANDLERMSG.SET_PATH_DOOR_RELIEFCALL, 0, 0);
- startAudioRecording(false);
- // 220415 yjyoon. 모드 전환시 볼륨 재설정. 그러지 않을 경우 월패드에서 현관 음성이 들리지 않음
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.SET_RELIEFCALL_VOLUME, 0, 0); // 안심통화시 볼륨 11로 설정
- sendHandlerMsg(HANDLERMSG.SET_VOLUME_TABLE, 0, 0);
- }
- }, 300);
- }
- } else {
- LOG_WARN("[selectReliefCallFilter] nSelectedFilter is not correct!! [nSelectedFilter] " + nSelectedFilter);
- }
- }
- } 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;
- }
- sendHandlerMsg(HANDLERMSG.SET_FILTER_BTN_DISABLE, 0, 0); // 필터버튼 클릭 후 3초간 버튼 Disable
- sendHandlerMsgDelayed(HANDLERMSG.SET_FILTER_BTN_ENABLE, 0, 0, 3000); // 3초 후 버튼 Enable (통화패스 변경 지연 때문)
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] setFilterBTNStatus()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- // Handler
- public final class HANDLERMSG {
- public final static int PROC_ADDCALL = 100;
- public final static int DOOR_OPEN = 110;
- public final static int SHOW_FRONTCAM_CALLED = 120;
- public final static int SHOW_FRONTCAM_SUBPHONE = 130;
- public final static int START_CALL_VIDEO = 140;
- public final static int END_CALL_VIDEO = 145;
- public final static int END_CALL = 150;
- public final static int START_VIDEO_RECORD = 151;
- public final static int STOP_VIDEO_RECORD = 152;
- public final static int STOP_AUDIO_RECORD = 153;
- public final static int SET_PATH_NORMAL = 155;
- public final static int SET_PATH_DOOR = 156;
- public final static int SET_PATH_DOOR_RELIEFCALL = 157;
- public final static int SET_PATH_DOOR_REMOTECALL = 158;
- public final static int START_AUDIO_RECORD = 159;
- public final static int SAVE_VISITORPICTURE = 160;
- public final static int SAVE_STRANGERPICTURE = 163;
- public final static int TAKE_VISITORPICTURE = 165;
- public final static int ENABLE_SAVE_VISITORPICTURE = 170;
- public final static int ENABLE_OPEN_DOOR = 175;
- public final static int ENABLE_END_BTN = 176;
- public final static int SET_BTN_STATUS = 177;
- public final static int ENABLE_BTN_TALK = 178;
- public final static int PLAYMENT_OPENDOOR = 180;
- public final static int PLAYMENT_OPENDOOR_TALKING = 181;
- public final static int PLAYMENT_RETRYDOOR = 185;
- public final static int RELEASE_OCCUPIEDMODE = 186;
- public final static int PLAYMENT_NORMALMODE_COMEBACK = 187;
- public final static int FLICKER_LED_CALL = 190;
- public final static int REFRESH_BTNLED_STATUS = 200;
- public final static int SELECT_CAM_FRONT = 210;
- public final static int SELECT_CAM_WALLPAD = 220;
- public final static int FRONTCAM_OFF = 230;
- public final static int REMOVE_FRONTVIDEO = 240;
- public final static int SET_VOLUME_TABLE = 300;
- public final static int SET_FILTER_BTN_DISABLE = 410;
- public final static int SET_FILTER_BTN_ENABLE = 420;
- public final static int SAVE_VISITOR_VIDEO_FINISH_APP = 500;
- public final static int SAVE_VISITOR_VIDEO_NOT_FINISH_APP = 510;
- public final static int SEND_BROADCAST_FILTER = 600;
- public final static int FINISH_TAKE_STRANGERPIC = 700;
- public final static int MEDIA_RECORD_START = 800;
- public final static int MEDIA_RECORD_START_REMOTECALL = 810;
- }
- public Handler TalkFrontHandler = new Handler(Looper.getMainLooper()) {
- public void handleMessage(Message msg) {
- LOG("[TalkFrontHandler] TalkFrontHandler : what [" + msg.what + "], arg1 [" + msg.arg1 + "], arg2 [" + msg.arg2 + "]");
- switch (msg.what) {
- case HANDLERMSG.PROC_ADDCALL:
- procAddCall();
- break;
- case HANDLERMSG.DOOR_OPEN:
- doDoorOpen();
- break;
- case HANDLERMSG.START_CALL_VIDEO:
- showFrontCam(true, false);
- break;
- case HANDLERMSG.END_CALL_VIDEO:
- showFrontCam(false, false);
- break;
- case HANDLERMSG.END_CALL:
- doEnd();
- break;
- case HANDLERMSG.START_VIDEO_RECORD:
- ((MainActivity)mContext).startVideoEncoding(true, true, true);
- break;
- case HANDLERMSG.STOP_VIDEO_RECORD:
- ((MainActivity)mContext).startVideoEncoding(false, false, false);
- break;
- case HANDLERMSG.STOP_AUDIO_RECORD:
- stopAudioRecording();
- break;
- case HANDLERMSG.SET_PATH_NORMAL:
- MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
- break;
- case HANDLERMSG.SET_PATH_DOOR:
- MainActivity.mCallController.setTalkPath(CALLPATH.FRONT);
- break;
- case HANDLERMSG.SET_PATH_DOOR_RELIEFCALL:
- MainActivity.mCallController.setTalkPath(CALLPATH.DOOR_RELIEFCALL);
- break;
- case HANDLERMSG.SET_PATH_DOOR_REMOTECALL:
- Log.d(TAG, "[TalkFrontHandler] SET_PATH_DOOR_REMOTECALL");
- MainActivity.mCallController.setTalkPath(CALLPATH.DOOR_REMOTECALL);
- break;
- case HANDLERMSG.START_AUDIO_RECORD:
- Log.d(TAG, "[TalkFrontHandler] START_AUDIO_RECORD");
- startAudioRecording(true);
- break;
- case HANDLERMSG.SAVE_VISITORPICTURE:
- Log.d(TAG, "[TalkFrontHandler] SAVE_VISITORPICTURE [bEnableAutoVisitorPic] = " + bEnableAutoVisitorPic + ", [bRemote_FrontCalled] = " + bRemote_FrontCalled);
- if (bEnableAutoVisitorPic) startSaveVisitorPicture();
- break;
- case HANDLERMSG.SAVE_STRANGERPICTURE:
- Log.d(TAG, "[TalkFrontHandler] SAVE_STRANGERPICTURE");
- if (((MainActivity) mContext).getStrangerTakePic()) startSaveStrangerPicture();
- break;
- case HANDLERMSG.TAKE_VISITORPICTURE:
- Log.d(TAG, "[TalkFrontHandler] TAKE_VISITORPICTURE [bEnableAutoVisitorPic] = " + bEnableAutoVisitorPic + ", [bRemote_FrontCalled] = " + bRemote_FrontCalled);
- if (bEnableAutoVisitorPic) startTakeVisitorPicture();
- break;
- case HANDLERMSG.ENABLE_SAVE_VISITORPICTURE:
- Log.d(TAG, "[TalkFrontHandler] ENABLE_SAVE_VISITORPICTURE");
- if (!bBlockSavePicBTN) {
- BTN_SAVE_PICTURE.setButtonEventOffDisable();
- }
- break;
- case HANDLERMSG.ENABLE_OPEN_DOOR:
- Log.d(TAG, "[TalkFrontHandler] ENABLE_OPEN_DOOR");
- BTN_DOOROPEN.setButtonEventOffDisable();
- break;
- case HANDLERMSG.ENABLE_END_BTN:
- Log.d(TAG, "[TalkFrontHandler] ENABLE_END_BTN");
- enableEndBTN(true);
- break;
- case HANDLERMSG.SET_BTN_STATUS:
- Log.d(TAG, "[TalkFrontHandler] SET_BTN_STATUS");
- setBTNStatus();
- break;
- case HANDLERMSG.ENABLE_BTN_TALK:
- Log.d(TAG, "[TalkFrontHandler] ENABLE_BTN_TALK");
- BTN_TALK.setButtonEventOffEnable();
- break;
- case HANDLERMSG.PLAYMENT_OPENDOOR:
- MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
- break;
- case HANDLERMSG.PLAYMENT_OPENDOOR_TALKING:
- int time = MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
- Log.d(TAG, "[TalkFrontHandler] PLAYMENT_OPENDOOR_TALKING -> time: " + time);
- sendHandlerMsgDelayed(HANDLERMSG.ENABLE_END_BTN, 0, 0, time + 500);
- break;
- case HANDLERMSG.PLAYMENT_RETRYDOOR:
- MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
- break;
- case HANDLERMSG.RELEASE_OCCUPIEDMODE:
- releaseOccupiedMode(Sound().getPlayMentRemainingTime());
- break;
- case HANDLERMSG.PLAYMENT_NORMALMODE_COMEBACK:
- MainActivity.mSound.PlayMent(SND.mode.NORMALMODE_COMEBACK);
- break;
- case HANDLERMSG.FLICKER_LED_CALL:
- ctrlCallLED();
- break;
- case HANDLERMSG.REFRESH_BTNLED_STATUS:
- setBTNLEDStatus();
- break;
- case HANDLERMSG.SELECT_CAM_FRONT:
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.selectFrontCam(true);
- else Log.w(TAG, "[TalkFrontHandler] MainActivity.mIOInterface is null!! -> SELECT_CAM_FRONT");
- break;
- case HANDLERMSG.SELECT_CAM_WALLPAD:
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.selectFrontCam(false);
- else Log.w(TAG, "[TalkFrontHandler] MainActivity.mIOInterface is null!! -> SELECT_CAM_WALLPAD");
- break;
- case HANDLERMSG.FRONTCAM_OFF:
- if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlFrontCamPower(false);
- else Log.w(TAG, "[TalkFrontHandler] MainActivity.mIOInterface is null!! -> FRONTCAM_OFF");
- break;
- case HANDLERMSG.REMOVE_FRONTVIDEO:
- ((MainActivity) mContext).removeFrontVideoLayout();
- break;
- case HANDLERMSG.SET_VOLUME_TABLE:
- Global.setV40WallPadVolume(nCurrentVolume);
- break;
- case HANDLERMSG.SET_FILTER_BTN_DISABLE:
- enableFilterBTN(false);
- break;
- case HANDLERMSG.SET_FILTER_BTN_ENABLE:
- enableFilterBTN(true);
- break;
- case HANDLERMSG.SAVE_VISITOR_VIDEO_FINISH_APP:
- Log.d(TAG, "[TalkFrontHandler] SAVE_VISITOR_VIDEO_FINISH_APP arg1[" + msg.arg1 + "]");
- if (msg.arg1 == 1) {
- // yjyoon. 거동수상자 녹화 중 현관콜이 들어왔을 때 앱 종료하지 않음.
- Log.v("yjyoon", "SAVE_VISITOR_VIDEO_FINISH_APP[false]");
- ((MainActivity) mContext).saveRecordingFile(false);
- } else {
- ((MainActivity) mContext).saveRecordingFile(true);
- }
- break;
- case HANDLERMSG.SAVE_VISITOR_VIDEO_NOT_FINISH_APP:
- Log.d(TAG, "[TalkFrontHandler] SAVE_VISITOR_VIDEO_NOT_FINISH_APP");
- ((MainActivity) mContext).saveRecordingFile(false);
- break;
- case HANDLERMSG.SEND_BROADCAST_FILTER:
- // 필터선택하면 BR 전송
- Log.d(TAG, "[TalkFrontHandler] SEND_BROADCAST_FILTER [nSelectedFilter] " + nSelectedFilter);
- setFilterBTNStatus(nSelectedFilter);
- sendReliefFilterSelectBR(nSelectedFilter);
- break;
- case HANDLERMSG.FINISH_TAKE_STRANGERPIC:
- ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_TAKEPICTURE);
- finishWallpadCallApp();
- break;
- case HANDLERMSG.MEDIA_RECORD_START:
- Log.d(TAG, "[TalkFrontHandler] MEDIA_RECORD_START");
- ((MainActivity) (mContext)).mediaStartRecord();
- if (((MainActivity) mContext).mRecordTimer != null) ((MainActivity) mContext).mRecordTimer.start();
- break;
- case HANDLERMSG.MEDIA_RECORD_START_REMOTECALL:
- Log.d(TAG, "[TalkFrontHandler] MEDIA_RECORD_START_REMOTECALL");
- ((MainActivity) mContext).mFrontCamOpenCheckHandler.sendEmptyMessage(6); // camera open check 이후 encoderStartOperation 시작 (방문객 원격통화 사용할 경우)
- ((MainActivity) mContext).showStrangerNoticeText(true, true);
- if (((MainActivity) mContext).mRecordTimer != null) ((MainActivity) mContext).mRecordTimer.start();
- break;
- default:
- break;
- }
- }
- };
- public void sendHandlerMsg(int what, int arg1, int arg2) {
- try {
- LOG("[sendHandlerMsg] what [" + what + "], arg1 [" + arg1 + "], arg2 [" + arg2 + "]");
- Message HandleMsg = TalkFrontHandler.obtainMessage();
- HandleMsg.what = what;
- HandleMsg.arg1 = arg1;
- HandleMsg.arg2 = arg2;
- TalkFrontHandler.sendMessage(HandleMsg);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] sendHandlerMsg(msg)");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- public void sendHandlerMsgDelayed(int what, int arg1, int arg2, long delay) {
- try {
- LOG("[sendHandlerMsgDelayed] what [" + what + "], arg1 [" + arg1 + "], arg2 [" + arg2 + "], delay [" + delay + "]");
- Message HandleMsg = TalkFrontHandler.obtainMessage();
- HandleMsg.what = what;
- HandleMsg.arg1 = arg1;
- HandleMsg.arg2 = arg2;
- TalkFrontHandler.sendMessageDelayed(HandleMsg, delay);
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } 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_FRONT_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 nCheckCnt = 0;
- protected Handler mCheckHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // Log.d(TAG, "[mCheckHandler.handleMessage]");
- if (msg.what == 0) {
- nCheckCnt++;
- if (nCheckCnt > 200) {
- mCheckHandler.removeMessages(0);
- mCheckHandler.removeMessages(1);
- } else {
- if (MainActivity.mCallController.getTalkPath() == CALLPATH.FRONT)
- mCheckHandler.sendEmptyMessageDelayed(1, 50);
- else mCheckHandler.sendEmptyMessageDelayed(0, 50);
- }
- } else if (msg.what == 1) {
- Log.d(TAG, "[mCheckHandler.handleMessage] Handler finish!! PATH [FRONT]");
- sendHandlerMsg(HANDLERMSG.SET_VOLUME_TABLE, 0, 0);
- }
- }
- };
- private void finishWallpadCallApp() {
- try {
- Log.d(TAG, "[finishWallpadCallApp]");
- doEnd();
- if (MainActivity.mCallController.mCallInfo.getPSTNCallHold()) return;
- ((MainActivity) mContext).finishWallPadCall();
- // super.finish();
- } catch (RuntimeException re) {
- LogUtil.errorLogInfo("", TAG, re);
- } catch (Exception e) {
- Log.e(TAG, "[Exception] finishWallpadCallApp()");
- //e.printStackTrace();
- LogUtil.errorLogInfo("", TAG, e);
- }
- }
- }
|