/* * Copyright (C) 2014 Android WallPad Project * * FileName : PopupActivity.java * Project : Android WallPad Project * Company : HDC I-CONTROLS ( www.icontrols.co.kr ) * Author : Kang Sang Ho , lairu@icontrols.co.kr */ package kr.co.icontrols.wallpadmain; import com.artncore.WallPadDataMgr.WallpadDeviceSet; import com.artncore.WallPadDataMgr.WallpadStatusData; import com.artncore.commons.define; import com.artncore.wallpadapi.WallPadAPI; import com.util.LogUtil; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; import android.widget.RelativeLayout; import kr.co.icontrols.wallpadmain.declare.Common; import kr.co.icontrols.wallpadmain.declare.ID; import kr.co.icontrols.wallpadmain.declare.ID_OLD; import kr.co.icontrols.wallpadmain.popup.AddShortcut; import kr.co.icontrols.wallpadmain.popup.AdminPWInput; import kr.co.icontrols.wallpadmain.popup.AlarmUseEnergy_ServerConnect; import kr.co.icontrols.wallpadmain.popup.BandLocationAlarmReceived; import kr.co.icontrols.wallpadmain.popup.ChargingElectricVehicle; import kr.co.icontrols.wallpadmain.popup.ConfigurePreset; import kr.co.icontrols.wallpadmain.popup.DeviceLoading; import kr.co.icontrols.wallpadmain.popup.DuplicatedShortcut; import kr.co.icontrols.wallpadmain.popup.EventNotification; import kr.co.icontrols.wallpadmain.popup.GroupAdd; import kr.co.icontrols.wallpadmain.popup.GroupCtrl; import kr.co.icontrols.wallpadmain.popup.GroupEnergy; import kr.co.icontrols.wallpadmain.popup.GroupSecurity; import kr.co.icontrols.wallpadmain.popup.GroupSetting; import kr.co.icontrols.wallpadmain.popup.GroupTalk; import kr.co.icontrols.wallpadmain.popup.InterFloorNoiseError; import kr.co.icontrols.wallpadmain.popup.InterFloorNoiseOccured; import kr.co.icontrols.wallpadmain.popup.NoMoreShortcut; import kr.co.icontrols.wallpadmain.popup.NoticeDetectStranger; import kr.co.icontrols.wallpadmain.popup.PostReceived; import kr.co.icontrols.wallpadmain.popup.ReleaseInMode; import kr.co.icontrols.wallpadmain.popup.SmartKeyEmergency; import kr.co.icontrols.wallpadmain.popup.ParcelReceived; import kr.co.icontrols.wallpadmain.popup.ScheduleNotification; import kr.co.icontrols.wallpadmain.popup.EnergyUsageAlert; import kr.co.icontrols.wallpadmain.popup.VehicleArrived; import kr.co.icontrols.wallpadmain.popup.DeleteShortcut; import kr.co.icontrols.wallpadmain.popup.DiagnosticMode; import kr.co.icontrols.wallpadmain.popup.ElevatorCall; import kr.co.icontrols.wallpadmain.popup.CollectiveLightCTRL; import kr.co.icontrols.wallpadmain.popup.ModeLamp; import kr.co.icontrols.wallpadmain.popup.MorningCall; import kr.co.icontrols.wallpadmain.popup.ReleaseOutMode; import kr.co.icontrols.wallpadsupport.WpadActivity; import kr.co.icontrols.wallpadsupport.WpadScale; /** * @description * 월패드 [설정화면] 팝업화면 관리자 이다.
*/ public class PopupActivity extends WpadActivity { private final static String TAG = "PopupActivity"; private final boolean DEBUG_LOG_ON = true; private void DebugLogOutput(String s) { if(DEBUG_LOG_ON) Log.d(TAG, s); } // ================================================================================================= // [[ Declaration ]] region // ================================================================================================= private static Context mContext = null; public static Context getContext() { return mContext; } private WallPadAPI mWallPadAPI = null; private int OPERATION_MODE = Common.MODE; private WallpadStatusData wdb; // Layout private RelativeLayout AllLayout; // CurrentScreenId & mCurrentStyle private int mCurrentScreenId = -1; private int mCurrentStyle = -1; private int mTempCurrentScreenId = -1; public IOInterface mIOInterface = null; // CreateComplete private static boolean mCreateComplete = false; protected static boolean getCreateComplete() { return mCreateComplete; } protected static void setCreateComplete(boolean set) { mCreateComplete = set; } // Screen static AdminPWInput AdminPWInputPopup; static DeleteShortcut DeleteShortcutPopup; static AddShortcut AddShortcutPopup; static NoMoreShortcut NoMoreShortcutPopup; static DuplicatedShortcut DuplicatedShortcutPopup; static ElevatorCall ElevatorCallPopup; static ReleaseInMode ReleaseInModePopup; static ReleaseOutMode ReleaseOutModePopup; static MorningCall MorningCallPopup; static ParcelReceived ParcelReceivedPopup; static PostReceived PostReceivedPopup; static BandLocationAlarmReceived BandLocationPopup; static CollectiveLightCTRL CollectiveLightCTRLPopup; static ModeLamp ModeLampPopup; static DiagnosticMode DiagnosticPopup; static ScheduleNotification ScheduleNotificationPopup; // 등록된 일정 알림 팝업 static EnergyUsageAlert EnergyUsageAlertPopup; // 에너지 목표값 대비 사용량 근접 및 초과 알림 팝업 static VehicleArrived VehicleArrivedPopup; // 등록된 차량 도착 알림 static ChargingElectricVehicle ChargingElectricVehiclePopup; // 전기차 충전 알림 팝업 static AlarmUseEnergy_ServerConnect AlarmUseEnergy_ServerConnectPopup; // 에너지관리서버 연동 시 에너지 사용 알림 팝업 static SmartKeyEmergency SmartKeyEmergencyPopup; // 스마트키 비상 팝업 static EventNotification EventNotificationPopup; static ConfigurePreset ConfigurePresetPopup; static InterFloorNoiseOccured InterFloorNoiseOccuredPopup; static InterFloorNoiseError InterFloorNoiseErrorPopup; static DeviceLoading DeviceLoadingPopup; static GroupCtrl GroupCtrlPopup; static GroupTalk GroupTalkPopup; static GroupSecurity GroupSecurityPopup; static GroupAdd GroupAddPopup; static GroupEnergy GroupEnergyPopup; static GroupSetting GroupSettingPopup; static NoticeDetectStranger NoticeDetectStrangerPopup; public WallpadStatusData GetDBObj() { return wdb; } /** * Static Variables 초기화
* onCreate 도입부, onDestroy 종료시 삽입한다. */ private void setStaticVariablesInit() { mContext = null; mCreateComplete = false; if (AllLayout != null) { AllLayout.removeAllViews(); AllLayout = null; } } // ================================================================================================= // [[ Activity Life Cycle ]] region // ================================================================================================= /** * Activity Constructors */ @Override protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "-------------------------------------------------------------"); Log.i(TAG, "------------------ [START - PopupActivity] ------------------"); Log.i(TAG, "-------------------------------------------------------------"); super.onCreate(savedInstanceState); // 1. 변수 초기화 DebugLogOutput("[Create] - Step1 : EMData Create"); setStaticVariablesInit(); mContext = this; // 2. 자동 종료 셋팅 DebugLogOutput("[Create] - Step2 : Auto Finish Setting"); // 2-1. APP 종료 BR을 활성화 한다. super.setFinishBrEnable(true); // 3. API 호출 DebugLogOutput("[Create] - Step3 : API Call"); if (OPERATION_MODE == Common.MODE_NOMAL) { Log.d(TAG, "OperationMode = MODE_NOMAL"); mWallPadAPI = new WallPadAPI(this); } else if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) { Log.d(TAG, "OperationMode = MODE_BUSINESS_SAMPLE"); } try { wdb = new WallpadStatusData(this); } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { Log.e(TAG, "[ExceptionError] - onCreate->WallpadStatusData Create : " + e); } // 4. Layout registration DebugLogOutput("[Create] - Step4 : Layout registration"); // 4-1. mainLayout AllLayout = new RelativeLayout(this); AllLayout.setId(ID_OLD.popup.layout.ALL); super.setAllLayoutRegistration(AllLayout); // 5. Start ScreenId EMData Get Intent intent = getIntent(); int ScreenId = intent.getIntExtra("ScreenId", -1); Log.d(TAG, "ScreenId = " + ScreenId); if (ScreenId < 0) { Log.e(TAG, "[Error] ScreenId Out of range (" + ScreenId + ")"); finish(); } else { // 6. First Show Layout Find mCreateComplete = true; if (OPERATION_MODE == Common.MODE_NOMAL) { mTempCurrentScreenId = ScreenId; mWallPadApiCheckHandler.sendEmptyMessage(0); } else { if (setChangeScreen(ScreenId, false) == false) { Log.e(TAG, "[Error] setChangeScreen false..."); finish(); } } } Log.i(TAG, "End onCreate -------------------------------------------------"); } /** * (임시코드) WallPadAPI 초기생성시 Connect 에 시간이 걸리며,
* WallPadAPI 초기화후 바로 Get_GasValveController 등을 사용하여 API 를 가져올수 없기에,
* 본 딜레이 코드를 임시로 적용한다. */ @SuppressLint("HandlerLeak") protected Handler mWallPadApiCheckHandler = new Handler() { @SuppressLint("HandlerLeak") @Override public void handleMessage(Message msg) { if (msg.what == 0) { if (mWallPadAPI != null) { if (mWallPadAPI.Check_Connect()) mWallPadApiCheckHandler.sendEmptyMessageDelayed(1, 10); else mWallPadApiCheckHandler.sendEmptyMessageDelayed(0, 10); } } else if (msg.what == 1) { setChangeScreen(mTempCurrentScreenId, false); mIOInterface = new IOInterface(getContext(), mWallPadAPI); } } }; /** * onDestroy */ @Override protected void onDestroy() { try { super.onDestroy(); setChangeScreen(mCurrentScreenId, true); setStaticVariablesInit(); MainActivity.setPopupActivityRun(false); MainActivity.setInfoActivityRun(false); setInfoActivityRun(false); mCreateComplete = false; if( wdb != null )wdb.closeDB(); } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { LogUtil.errorLogInfo("", TAG, e); } Log.d(TAG, "*************************************************************"); Log.d(TAG, "****************** [END - PopupActivity] ******************"); Log.d(TAG, "*************************************************************"); } /** * onResume */ @Override protected void onResume() { super.onResume(); if(mWallPadAPI != null) mWallPadAPI.Resume(); NoticeDetectStranger.bTouch = false; Log.d(TAG, "@@@@@@@@ [onResume] @@@@@@@@"); } /** * onPause */ @Override protected void onPause() { super.onPause(); if(mWallPadAPI != null) mWallPadAPI.Pause(); Log.d(TAG, "[onPause] mCurrentScreenId [" + mCurrentScreenId + "]"); if (mCurrentScreenId == ID.POPUPS.POPUP_BANDLOCATIONALARM) ctrlLCDOff(); else if (mCurrentScreenId == ID.POPUPS.POPUP_NOTICESTRANGER) { // 타임아웃 종료시(화면터치로 인한 종료가 아닐 경우) 거동수상자 녹화 시작 boolean bResult = NoticeDetectStranger.bTouch; Log.d(TAG, "[onPause] bResult [" + bResult + "]"); if (!bResult) { int kind = -1; if (getSmartDoorCamType() == WallpadDeviceSet.DOORTYPE_IOT_SMART || getSmartDoorCamType() == WallpadDeviceSet.DOORTYPE_HYOSUNG_SMART || getSmartDoorCamType() == WallpadDeviceSet.DOORTYPE_DAEWOO_SMART) kind = define.NOTIFY_ACCEPT_RECORD_STRANGER; // BR 전송 Intent notiIntent = new Intent(); notiIntent.setAction(define.NOTIFY_ACNAME); notiIntent.putExtra(define.NOTIBR_KIND, kind); mContext.sendBroadcast(notiIntent); } } Log.d(TAG, "@@@@@@@@ [onPause] @@@@@@@@"); } /* ================================================================================================ * [BroadcastReceiver] Section ================================================================================================ */ /** * BroadcastReceiver.onReceive for [WpadActivity] */ @Override protected void onBrReceive(Intent intent) { super.onBrReceive(intent); Log.d(TAG, "Receive alert BR " + intent.getAction()); } /* ================================================================================================ * [Touch & Key Event] Section ================================================================================================ */ /** * TouchEvent for [WpadActivity] */ @Override protected void onTouchEvent(View v, MotionEvent event) { super.onTouchEvent(v, event); } /** * H/W Key Event */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { DebugLogOutput("onKeyDown - " + " / keyCode : " + keyCode + " / Action : " + event.getAction()); return super.onKeyDown(keyCode, event); } /* ================================================================================================ * [Screen] Section ================================================================================================ */ /** * Screen 에서 Screen 변경을 요청할 경우 호출된다.
* Override 사용하여 Screen 변경을 처리한다.
* * @param nScreenId - 변경할 Screen ID_OLD * @return (boolean) true : 성공, false : 실패 */ @Override protected boolean onChangeScreen(int nScreenId) { super.onChangeScreen(nScreenId); return setChangeScreen(nScreenId, false); } /** * Screen 등록자
* ScreenLayout 에 현재 Screen 을 삭제하고, 새로운 Screen 을 등록시킨다. * * @param nScreenId - 변경할 Screen ID_OLD * @param OnlyRemove - 현재 Screen 을 삭제만 할 경우 (onDestroy 에서 사용) * @return (boolean) true : 성공, false : 실패 */ public boolean setChangeScreen(int nScreenId, boolean OnlyRemove) { Log.d(TAG, "[setChangeScreen] CurrentScreenId [" + mCurrentScreenId + "], NextLayoutId [" + nScreenId + "], OnlyRemove [" + OnlyRemove + "]"); if (getCreateComplete() == false) { Log.w(TAG, "[Waring] setChangeLayout - CreateComplete is false !!!"); return false; } if (mCurrentScreenId == nScreenId && !OnlyRemove) { Log.w(TAG, "[Waring] Same Screen Called!!!"); return false; } //boolean remove = false; if (mCurrentScreenId > 0) { //remove = true; AllLayout.removeAllViews(); super.setCurrentScreen(null); } if (OnlyRemove) { switch (mCurrentScreenId) { case ID.POPUPS.POPUP_ADMINPWINPUT: AdminPWInputPopup.Close(); break; case ID.POPUPS.POPUP_RELEASEINMODE: ReleaseInModePopup.Close(); break; case ID.POPUPS.POPUP_RELEASEOUTMODE: ReleaseOutModePopup.Close(); break; case ID.POPUPS.POPUP_DELETESHORTCUT: DeleteShortcutPopup.Close(); break; case ID.POPUPS.POPUP_MORNINGCALL: MorningCallPopup.Close(); break; case ID.POPUPS.POPUP_PARCELRECEIVED: ParcelReceivedPopup.Close(); break; case ID.POPUPS.POPUP_POSTRECEIVED: PostReceivedPopup.Close(); break; case ID.POPUPS.POPUP_BANDLOCATIONALARM: BandLocationPopup.Close(); break; case ID.POPUPS.POPUP_COLLECTIVELIGHTCTRL: CollectiveLightCTRLPopup.Close(); break; case ID.POPUPS.POPUP_MOODLAMP: ModeLampPopup.Close(); break; case ID.POPUPS.POPUP_ADDSHORTCUT: AddShortcutPopup.Close(); break; case ID.POPUPS.POPUP_NOMORESHORTCUT: NoMoreShortcutPopup.Close(); break; case ID.POPUPS.POPUP_DUPLICATEDSHORTCUT: DuplicatedShortcutPopup.Close(); break; case ID.POPUPS.POPUP_ELEVATORCALL: ElevatorCallPopup.Close(); break; case ID.POPUPS.POPUP_SCHEDULENOTIFICATION: ScheduleNotificationPopup.Close(); break; case ID.POPUPS.POPUP_ENERGYUSAGEALERT: EnergyUsageAlertPopup.Close(); break; case ID.POPUPS.POPUP_VEHICLEARRIVED: VehicleArrivedPopup.Close(); break; case ID.POPUPS.POPUP_CHARGINGELECTRICVEHICLE: ChargingElectricVehiclePopup.Close(); break; case ID.POPUPS.POPUP_DIAGNOSTICMODE: DiagnosticPopup.Close(); break; case ID.POPUPS.POPUP_ENERGYMETERAGE: AlarmUseEnergy_ServerConnectPopup.Close(); break; case ID.POPUPS.POPUP_SMARTKEYEMERGENCY: SmartKeyEmergencyPopup.Close(); break; case ID.POPUPS.POPUP_EVENTNOTIFICATION: EventNotificationPopup.Close(); break; case ID.POPUPS.POPUP_CONFIGUREPRESET: ConfigurePresetPopup.Close(); break; case ID.POPUPS.POPUP_DEVICELOADING: DeviceLoadingPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_CTRL: GroupCtrlPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_TALK: GroupTalkPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_SECURITY: GroupSecurityPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_ADD: GroupAddPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_ENERGY: GroupEnergyPopup.Close(); break; case ID.POPUPS.POPUP_GROUP_SETTING: GroupSettingPopup.Close(); break; case ID.POPUPS.POPUP_INTERFLOORNOISEOCCURED: InterFloorNoiseOccuredPopup.Close(); break; case ID.POPUPS.POPUP_INTERFLOORNOISEERROR: InterFloorNoiseErrorPopup.Close(); break; case ID.POPUPS.POPUP_NOTICESTRANGER: NoticeDetectStrangerPopup.Close(); break; default: Log.e(TAG, "[Error] setChangeLayout - OnlyRemove Input ID_OLD Not found!!!"); return false; } return true; } if(Common.GetDeviceSampleMode(this)) OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE; else OPERATION_MODE = Common.MODE_NOMAL; // 1. 새로운 Layout 표시 int Style = Common.POPUP_STYLE_NOMAL; int FinishTime = Common.FINISH_TIME_POPUP_NORMAL_SEC; try { switch (nScreenId) { case ID.POPUPS.POPUP_ADMINPWINPUT: AdminPWInputPopup = new AdminPWInput(mContext, AllLayout); super.setCurrentScreen(AdminPWInputPopup); Style = Common.POPUP_STYLE_INPUT; break; case ID.POPUPS.POPUP_RELEASEINMODE: ReleaseInModePopup = new ReleaseInMode(mContext, AllLayout); super.setCurrentScreen(ReleaseInModePopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_RELEASEOUTMODE : ReleaseOutModePopup = new ReleaseOutMode(mContext, AllLayout); super.setCurrentScreen(ReleaseOutModePopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_DELETESHORTCUT: DeleteShortcutPopup = new DeleteShortcut(mContext, AllLayout); super.setCurrentScreen(DeleteShortcutPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_MORNINGCALL: FinishTime = 60 * 5 + 60 * 5 + 60 * 3 + 60; MorningCallPopup = new MorningCall(mContext, AllLayout); super.setCurrentScreen(MorningCallPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_PARCELRECEIVED: ParcelReceivedPopup = new ParcelReceived(mContext, AllLayout); super.setCurrentScreen(ParcelReceivedPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_POSTRECEIVED: PostReceivedPopup = new PostReceived(mContext, AllLayout); super.setCurrentScreen(PostReceivedPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_BANDLOCATIONALARM: BandLocationPopup = new BandLocationAlarmReceived(mContext, AllLayout); super.setCurrentScreen(BandLocationPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_COLLECTIVELIGHTCTRL: CollectiveLightCTRLPopup = new CollectiveLightCTRL(mContext, AllLayout , mWallPadAPI, OPERATION_MODE); super.setCurrentScreen(CollectiveLightCTRLPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_MOODLAMP: ModeLampPopup = new ModeLamp(mContext, AllLayout); super.setCurrentScreen(ModeLampPopup); Style = Common.POPUP_STYLE_INPUT; break; case ID.POPUPS.POPUP_ADDSHORTCUT: AddShortcutPopup = new AddShortcut(mContext, AllLayout); super.setCurrentScreen(AddShortcutPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_NOMORESHORTCUT: NoMoreShortcutPopup = new NoMoreShortcut(mContext, AllLayout); super.setCurrentScreen(NoMoreShortcutPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_DUPLICATEDSHORTCUT: DuplicatedShortcutPopup = new DuplicatedShortcut(mContext, AllLayout); super.setCurrentScreen(DuplicatedShortcutPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_ELEVATORCALL: ElevatorCallPopup = new ElevatorCall(mContext, AllLayout); super.setCurrentScreen(ElevatorCallPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_SCHEDULENOTIFICATION: ScheduleNotificationPopup = new ScheduleNotification(mContext, AllLayout); super.setCurrentScreen(ScheduleNotificationPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_ENERGYUSAGEALERT: FinishTime = 60 * 50; EnergyUsageAlertPopup = new EnergyUsageAlert(mContext, AllLayout); super.setCurrentScreen(EnergyUsageAlertPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_VEHICLEARRIVED: VehicleArrivedPopup = new VehicleArrived(mContext, AllLayout); super.setCurrentScreen(VehicleArrivedPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_CHARGINGELECTRICVEHICLE: ChargingElectricVehiclePopup = new ChargingElectricVehicle(mContext, AllLayout); super.setCurrentScreen(ChargingElectricVehiclePopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_DIAGNOSTICMODE : FinishTime = 60 * 5 + 60 * 5 + 60 * 3 + 60; DiagnosticPopup = new DiagnosticMode(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(DiagnosticPopup); Style = Common.FULL_SCREEN; break; case ID.POPUPS.POPUP_ENERGYMETERAGE: AlarmUseEnergy_ServerConnectPopup = new AlarmUseEnergy_ServerConnect(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(AlarmUseEnergy_ServerConnectPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_SMARTKEYEMERGENCY: SmartKeyEmergencyPopup = new SmartKeyEmergency(mContext, AllLayout); super.setCurrentScreen(SmartKeyEmergencyPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_EVENTNOTIFICATION: EventNotificationPopup = new EventNotification(mContext, AllLayout); super.setCurrentScreen(EventNotificationPopup); Style = Common.POPUP_STYLE_EVENTNOTIFICATION; break; case ID.POPUPS.POPUP_CONFIGUREPRESET: ConfigurePresetPopup = new ConfigurePreset(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(ConfigurePresetPopup); Style = Common.POPUP_STYLE_LIGHTPRESET; break; case ID.POPUPS.POPUP_DEVICELOADING: DeviceLoadingPopup = new DeviceLoading(mContext, AllLayout); super.setCurrentScreen(DeviceLoadingPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_GROUP_CTRL: GroupCtrlPopup = new GroupCtrl(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupCtrlPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_GROUP_TALK: GroupTalkPopup = new GroupTalk(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupTalkPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_GROUP_SECURITY: GroupSecurityPopup = new GroupSecurity(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupSecurityPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_GROUP_ADD: GroupAddPopup = new GroupAdd(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupAddPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_GROUP_ENERGY: GroupEnergyPopup = new GroupEnergy(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupEnergyPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_GROUP_SETTING: GroupSettingPopup = new GroupSetting(mContext, AllLayout, mWallPadAPI); super.setCurrentScreen(GroupSettingPopup); Style = Common.POPUP_STYLE_FUNCGROUP; break; case ID.POPUPS.POPUP_INTERFLOORNOISEOCCURED: InterFloorNoiseOccuredPopup = new InterFloorNoiseOccured(mContext, AllLayout); super.setCurrentScreen(InterFloorNoiseOccuredPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_INTERFLOORNOISEERROR: InterFloorNoiseErrorPopup = new InterFloorNoiseError(mContext, AllLayout); super.setCurrentScreen(InterFloorNoiseErrorPopup); Style = Common.POPUP_STYLE_NOMAL; break; case ID.POPUPS.POPUP_NOTICESTRANGER: FinishTime = 3; NoticeDetectStrangerPopup = new NoticeDetectStranger(mContext, AllLayout); super.setCurrentScreen(NoticeDetectStrangerPopup); Style = Common.POPUP_STYLE_NOMAL; break; default: Log.e(TAG, "[Error] setChangeLayout - OnlyRemove Input ID_OLD Not found!!!"); return false; } } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); mCurrentScreenId = -1; return false; } catch (Exception e) { Log.e(TAG, "[ExceptionError] - setChangeScreen->Screen Create : " + e); mCurrentScreenId = -1; LogUtil.errorLogInfo("", TAG, e); return false; } // 2. Style 변경시 WindowReSize if (mCurrentStyle != Style) { int ScreenWidth = WpadScale.getWidth(Common.getPopupScreenSize_W(Style)); int ScreenHigh = WpadScale.getHeight(Common.getPopupScreenSize_H(Style)); Log.e(TAG, "[setChangeScreen] ScreenWidth [" + ScreenWidth + "], ScreenHigh [" + ScreenHigh + "]"); if ((ScreenWidth <= 0) || (ScreenHigh <= 0)) { Log.e(TAG, "[Error] Style UnDefined !!! (" + Style + ")"); return false; } RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ScreenWidth, ScreenHigh); AllLayout.setLayoutParams(params); setContentView(AllLayout); super.WindowReSize(ScreenWidth, ScreenHigh, false); mCurrentStyle = Style; } // 3. FinishTimer Setting if(Common.FINISH_TIME_ENABLE) super.setFinishTimerCreate(FinishTime); mCurrentScreenId = nScreenId; return true; } // 팝업화면에서 매뉴얼 화면을 호출하기 위함(PopupActivity -> ManualActivity) private static int mCurrentInfoScreenId = -1; private static boolean InfoActivityRun = false; public static boolean getInfoActivityRun() { Log.d(TAG, "[getInfoActivityRun] InfoActivityRun [" + InfoActivityRun + "]"); return InfoActivityRun; } public static void setInfoActivityRun(boolean run) { InfoActivityRun = run; Log.d(TAG, "[setInfopActivityRun] InfoActivityRun [" + InfoActivityRun + "]"); if (!InfoActivityRun) resetCurrentInfoScreenID(); } public boolean StartInfo(int screenId) { Log.d(TAG, "[startManualPopup] ScreenId [" + screenId +"], mCurrentInfoScreenId [" + mCurrentInfoScreenId + "]" ); if (getInfoActivityRun() == true) { mCurrentInfoScreenId = screenId; return ((WpadActivity)(ManualActivity.getContext())).ChangeScreen(screenId); } else { if (mCurrentInfoScreenId == screenId) return false; mCurrentInfoScreenId = screenId; setInfoActivityRun(true); Intent intent = new Intent(mContext, ManualActivity.class); intent.putExtra("ScreenId", screenId); overridePendingTransition(0, 0); startActivityForResult(intent, 0); return true; } } public static void resetCurrentInfoScreenID() { try { mCurrentInfoScreenId = -1; } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { Log.e(TAG, "[Exception] resetCurrentInfoScreenID()"); LogUtil.errorLogInfo("", TAG, e); } } /** * 매뉴얼 버튼 사용 유무 * * @return boolean 타입 - true:사용, false:미사용 */ public boolean GetManualUse() { WallpadDeviceSet devSet = new WallpadDeviceSet(mContext); String[] DBinfo = devSet.GetSettingData("매뉴얼"); devSet.closeDB(); if (DBinfo != null) { if (DBinfo[1].indexOf("사용함") > 0) { Log.d(TAG, "[GetManualUse] Use Manual"); return true; } else { // 미사용 Log.d(TAG, "[GetManualUse] Not Use Manual"); return false; } } else { // 미사용 return false; } } private void ctrlLCDOff() { try { Log.d(TAG, "[ctrlLCDOff]"); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { Log.e(TAG, "[Exception] ctrlLCDOff()"); LogUtil.errorLogInfo("", TAG, e); } } private final int COMPONENT_USE = 1; private int getSmartDoorCamType() { try { WallpadDeviceSet mWallpadDeviceSet = new WallpadDeviceSet(getApplicationContext()); int[] nFrontCam = mWallpadDeviceSet.Get_RFDoorCAM_Info(); if (nFrontCam[0] == COMPONENT_USE) { if (nFrontCam[1] == WallpadDeviceSet.DOORTYPE_IOT_SMART || nFrontCam[1] == WallpadDeviceSet.DOORTYPE_HYOSUNG_SMART || nFrontCam[1] == WallpadDeviceSet.DOORTYPE_DAEWOO_SMART) { return nFrontCam[1]; } } } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { Log.e(TAG, "[Exception] getSmartDoorCamType()"); LogUtil.errorLogInfo("", TAG, e); } return -1; } public boolean GetEasyModeUXUse() { try { WallpadDeviceSet deviceSet = new WallpadDeviceSet(mContext); boolean bSupport = deviceSet.Get_EasyModeUX_Support(); deviceSet.closeDB(); WallpadStatusData data = new WallpadStatusData(mContext); boolean bUse = data.GetEasyModeUxUse(); data.closeDB(); Log.d(TAG, "[GetEasyModeUXUse] bSupport [" + bSupport + "], bUse [" + bUse + "]"); return bSupport & bUse; } catch (RuntimeException re) { LogUtil.errorLogInfo("", TAG, re); } catch (Exception e) { Log.e(TAG, "[Exception] GetEasyModeUXUse()"); LogUtil.errorLogInfo("", TAG, e); } return false; } @Override public void setFinishOnTouchOutside(boolean finish) { super.setFinishOnTouchOutside(finish); Log.d(TAG, "[setFinishOnTouchOutside] finish [" + finish + "]"); } }