Преглед изворни кода

[WallPadMain]
1. 최신 jar 추가
- 공지사항, 전자액자, 날씨, 메모, 일정표 가져오기

2. DB설정에 따른 아이콘 보여주기 유무 추가(부가 서비스)
- 공지사항, 전자액자, 날씨, 메모, 일정표 가져오기 추가

3. DB설정에 따른 날씨 UI 표시

jglee пре 2 година
родитељ
комит
4179167136

BIN
WallPadMain/libs/WallPadAPI.jar


+ 68 - 0
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/screen/MAIN.java

@@ -28,6 +28,7 @@ import com.artncore.wallpadapi.Sdb_LivingRoomLightAPI;
 import com.artncore.wallpadapi.WallPadAPI;
 import com.util.LogUtil;
 
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 
@@ -162,6 +163,8 @@ public class MAIN extends WpadScreen {
 //    private ShortcutManager mShortcutManager = null;
     private boolean m_ElevatorDirectCall = false;
     boolean bNonInternetSupport = false;
+    //jglee - 날씨 정보 DB 설정에 따라 보여주기 설정
+    boolean bWeather = false;
     int DEVICE_OPERATION_MODE = Common.MODE_NOMAL;
 
     public MAIN(Context context, RelativeLayout layout, WallPadAPI wallpadapi, CallSubMenuScreen callAPK, int nDeviceOperationMode) {
@@ -222,6 +225,14 @@ public class MAIN extends WpadScreen {
 
             getWeatherInfo();
             updateWeather();
+
+            //jglee - 날씨 정보 DB 설정에 따라 보여주기 설정
+            if(!bWeather)
+            {
+                if(IMG_WEATHER!=null) IMG_WEATHER.setVisibility(View.INVISIBLE);
+            }
+
+
             displayNotificatoinIcon();
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
@@ -240,6 +251,7 @@ public class MAIN extends WpadScreen {
 
             WallpadDeviceSet mWallpadDeviceSet = new WallpadDeviceSet(mContext);
             bNonInternetSupport = mWallpadDeviceSet.Get_NonInternetSupportUse();
+            bWeather = mWallpadDeviceSet.Get_Weather();
             mWallpadDeviceSet.closeDB();
             Log.d(TAG, "[initScreen] bNonInternetSupport [" + bNonInternetSupport + "]");
 
@@ -371,6 +383,8 @@ public class MAIN extends WpadScreen {
     }
 
     private void getWeatherInfo() {
+        //jglee - 날씨 정보 DB 설정에 따라 보여주기 설정
+        if(!bWeather) return;
         try {
             Log.i(TAG, "[getWeatherInfo] bNonInternetSupport = " + bNonInternetSupport);
             if (!bNonInternetSupport && !getIsSubWallpad()) {
@@ -449,6 +463,9 @@ public class MAIN extends WpadScreen {
 
 //            mIconInfoTable.printValue();
 
+            //jglee - 즐겨찾기 이슈 수정을 위해(실제 올라가있는 아이콘과 DB를 비교하기 위하여 생선된 변수
+            ArrayList<WallpadStatusData.WidgetItem> listDelShortIcon = null;
+
             MainActivity.nShortcutCnt = MainActivity.MainScreenShortcutList.size();
             for (int i = 0; i < MainActivity.nShortcutCnt && i < MainActivity.nShortcutMax; i++) {
                 Log.d(TAG, "[registerShortcutIcon] MainScreenShortcutList.get(" + i + ").idx() : " + MainActivity.MainScreenShortcutList.get(i).idx + ", MainScreenShortcutList.get(" + i + ").widgetID() : " + MainActivity.MainScreenShortcutList.get(i).widgetID);
@@ -473,9 +490,58 @@ public class MAIN extends WpadScreen {
                     TXT_SHORTCUT_NAME[i].setText(mIconInfo.getIconName());
                 }
                 else {
+                    //여기서 이슈 발생 해당 아이콘 Table 에서 정보가 없음
+                    //여기서 다시 List 정리해서 해당 적용 필요
+                    if(listDelShortIcon == null)
+                        listDelShortIcon = new ArrayList<WallpadStatusData.WidgetItem>();
+                    Log.w(TAG, "Del Add Icon ID : " + MainActivity.MainScreenShortcutList.get(i).widgetID);
+                    listDelShortIcon.add(MainActivity.MainScreenShortcutList.get(i));
+
                     Log.w(TAG, "[registerShortcutIcon] mIconInfo is null!!");
                 }
             }
+
+
+            //여기서 List에 갯수가 남아 있으면 해당 아이콘 삭제를 진행
+            if(listDelShortIcon!=null && listDelShortIcon.size() != 0)
+            {
+                for(int del_index = 0; del_index < listDelShortIcon.size() ; del_index++)
+                {
+                    int del_widget_id = listDelShortIcon.get(del_index).widgetID;
+                    try {
+                        if (MainActivity.MainScreenShortcutList != null) {
+                            for (int i = 0; i < MainActivity.MainScreenShortcutList.size(); i++) {
+                                if (MainActivity.MainScreenShortcutList.get(i).widgetID == del_widget_id) {
+                                    //데이터 수집 앱 이름
+                                    IconInfoTable.IconInfo mIconInfo = mIconInfoTable.getIconInfoByID(MainActivity.MainScreenShortcutList.get(i).widgetID);
+
+                                    if (!deleteShortcutDB(MainActivity.MainScreenShortcutList.get(i).idx)) {
+                                        Log.w(TAG, "[procDeleteShortcutPopupResult] deleteShortcutDB = false!!");
+                                    }
+                                }
+                            }
+                        }
+                    } catch (RuntimeException re) {
+                        LogUtil.errorLogInfo("", TAG, re);
+                    }
+                    catch (Exception e) {
+                        Log.e(TAG, "[Exception] procDeleteShortcutPopupResult(boolean bDelete, int nShortcutID)");
+                        //e.printStackTrace();
+                        LogUtil.errorLogInfo("", TAG, e);
+                    }
+                }
+                
+                //아이콘 재정렬
+                unRegisterWidgetIcon(getLayout());
+                reOrderingShortcut();
+                registerShortcutIcon(getLayout());
+            }
+
+            if(listDelShortIcon!=null)
+                listDelShortIcon.clear();
+
+            listDelShortIcon = null;
+
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         }
@@ -1022,6 +1088,8 @@ public class MAIN extends WpadScreen {
     }
 
     public void updateWeather() {
+        //jglee - 날씨 정보 DB 설정에 따라 보여주기 설정
+        if(!bWeather) return;
         try {
             Log.i(TAG, "[updateWeather] bNonInternetSupport = " + bNonInternetSupport);
             if (!bNonInternetSupport && !getIsSubWallpad()) {

+ 33 - 8
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/IconManager.java

@@ -60,6 +60,19 @@ public class IconManager {
     boolean bVisitedVehicleEnable = false;   // 방문 차량 등록
     boolean bBandLocationEnable = false;   // 밴드 위치 인식
     boolean bGuardingStreetLamp = false;   // 안전가로등 (효성중공업 현장 특화 기능)
+    //jglee - 2022.08.17 관리자설정 DB에 따라 보여주기 설정
+    //공지사항
+    boolean bNotice = false;
+    //전자액자
+    boolean bAutoPicture = false;
+    //날씨
+    boolean bWeather = false;
+    //메모
+    boolean bMemo = false;
+    //일정표
+    boolean bScedule = false;
+
+
 
     // 설정
     int nMobileDeviceRegEnable = WallpadDeviceSet.DO_NOT_USE;   // 모바일 기기 등록
@@ -180,7 +193,11 @@ public class IconManager {
             bVisitedVehicleEnable = mWallpadDeviceSet.getVisitedVehicleRegiUsage();   // 방문 차량 등록
             bBandLocationEnable = mWallpadDeviceSet.getBandLocationUsage();   // 위치 인식
             bGuardingStreetLamp = mWallpadDeviceSet.Get_SafeStreetLightUse();   // 안전가로등 (효성중공업 현장 특화기능)
-
+            bNotice = mWallpadDeviceSet.Get_Notice(); // jglee - 공지사항 추가
+            bAutoPicture = mWallpadDeviceSet.Get_AutoPicture(); //jglee - 전자액자
+            bWeather = mWallpadDeviceSet.Get_Weather(); //jglee - 날씨
+            bMemo = mWallpadDeviceSet.Get_Memo(); //jglee - 메모
+            bScedule = mWallpadDeviceSet.Get_Scedule(); //jglee - 일정표
             // 설정
             nMobileDeviceRegEnable = mWallpadDeviceSet.Get_MobileAppAuth_Use();   // 모바일 기기 등록
             nOccupancySensorEnable = mWallpadDeviceSet.Get_InnerRoomDetectSensor_Use();   // 재실센서 관리
@@ -451,27 +468,35 @@ public class IconManager {
             부가 App
              */
 
-            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_NOTICE.getID(), ID.ICONS.MENUS.ADD_NOTICE.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Notice,
-                    R.drawable.icon_add_notice_normal, R.drawable.icon_add_notice_pressed, R.drawable.icon_add_notice_pressed, R.drawable.icon_add_notice_pressed);
+            if(bNotice)
+            {
+                mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_NOTICE.getID(), ID.ICONS.MENUS.ADD_NOTICE.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Notice,
+                        R.drawable.icon_add_notice_normal, R.drawable.icon_add_notice_pressed, R.drawable.icon_add_notice_pressed, R.drawable.icon_add_notice_pressed);
+            }
 
-            if (!bNonInternetSupportEnable) {
+
+            if (!bNonInternetSupportEnable && bWeather) {
                 // 날씨
                 mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_WEATHER.getID(), ID.ICONS.MENUS.ADD_WEATHER.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Weather,
                         R.drawable.icon_add_weather_normal, R.drawable.icon_add_weather_pressed, R.drawable.icon_add_weather_pressed, R.drawable.icon_add_weather_pressed);
             }
 
             // 메모
-            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_MEMO.getID(), ID.ICONS.MENUS.ADD_MEMO.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Memo,
-                    R.drawable.icon_add_memo_normal, R.drawable.icon_add_memo_pressed, R.drawable.icon_add_memo_pressed, R.drawable.icon_add_memo_pressed);
+            if(bMemo)
+            {
+                mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_MEMO.getID(), ID.ICONS.MENUS.ADD_MEMO.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Memo,
+                        R.drawable.icon_add_memo_normal, R.drawable.icon_add_memo_pressed, R.drawable.icon_add_memo_pressed, R.drawable.icon_add_memo_pressed);
+            }
+
 
             // 전자액자
-            if (!bNonInternetSupportEnable) {
+            if (!bNonInternetSupportEnable && bAutoPicture) {
                 mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_E_FRAME.getID(), ID.ICONS.MENUS.ADD_E_FRAME.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.AutoPicture,
                         R.drawable.icon_add_eframe_normal, R.drawable.icon_add_eframe_pressed, R.drawable.icon_add_eframe_pressed, R.drawable.icon_add_eframe_pressed);
             }
 
             // 일정표
-            if (!bNonInternetSupportEnable) {
+            if (!bNonInternetSupportEnable && bScedule) {
                 mIconInfoTable.addIconInfo(ID.ICONS.MENUS.ADD_SCHEDULE.getID(), ID.ICONS.MENUS.ADD_SCHEDULE.getNameKR(), ID.LINKEDSCREEN.SubMenuAddService.Schedule,
                         R.drawable.icon_add_schedule_normal, R.drawable.icon_add_schedule_pressed, R.drawable.icon_add_schedule_pressed, R.drawable.icon_add_schedule_pressed);
             }