Browse Source

[WallPadMain]
1. 즐겨찾기 아이콘 정렬 시, Widget 아이디 값은 중복되나 idx 값이 다른 경우에 대한 예외처리 추가

jglee 2 năm trước cách đây
mục cha
commit
2dae3b8fa5

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

@@ -467,6 +467,20 @@ public class MAIN extends WpadScreen {
             ArrayList<WallpadStatusData.WidgetItem> listDelShortIcon = null;
 
             MainActivity.nShortcutCnt = MainActivity.MainScreenShortcutList.size();
+            //여기서 Widget자체에서 중복되는것을 확인해서 지운다.
+            ArrayList<Integer> OverlapShortIcon = new ArrayList<Integer>();
+            for (int i = 0; i < MainActivity.nShortcutCnt && i < MainActivity.nShortcutMax; i++) {
+                if(OverlapShortIcon.contains(MainActivity.MainScreenShortcutList.get(i).widgetID))
+                {
+                    //여기서 중복된 widget이 존재한다.
+                    //해당되는 idx를 지우는 것에 추가한다.
+                    if(listDelShortIcon == null)
+                        listDelShortIcon = new ArrayList<WallpadStatusData.WidgetItem>();
+                    listDelShortIcon.add(MainActivity.MainScreenShortcutList.get(i));
+                }
+                OverlapShortIcon.add(MainActivity.MainScreenShortcutList.get(i).widgetID);
+            }
+
             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);
                 //스마트 분전반 대신 KNX 분전반 아이콘으로 대체
@@ -540,6 +554,11 @@ public class MAIN extends WpadScreen {
             if(listDelShortIcon!=null)
                 listDelShortIcon.clear();
 
+            if(OverlapShortIcon!=null)
+                OverlapShortIcon.clear();
+
+            OverlapShortIcon = null;
+
             listDelShortIcon = null;
 
         } catch (RuntimeException re) {