@@ -59,122 +59,3 @@ class SortableItem {
5959 );
6060 }
6161}
62-
63- class SortableItemList {
64- static List <SortableItem > defaultNavItems = < SortableItem > [
65- SortableItem (
66- id: "home" ,
67- index: 1 ,
68- lightIcon: AssetUtil .homeLightIcon,
69- lightSelectedIcon: AssetUtil .homeLightSelectedIcon,
70- darkIcon: AssetUtil .homeDarkIcon,
71- darkSelectedIcon: AssetUtil .homeDarkSelectedIcon,
72- hidden: false ,
73- canBeHidden: false ,
74- ),
75- SortableItem (
76- id: "dynamic" ,
77- lightIcon: AssetUtil .dynamicLightIcon,
78- lightSelectedIcon: AssetUtil .dynamicLightSelectedIcon,
79- darkIcon: AssetUtil .dynamicDarkIcon,
80- darkSelectedIcon: AssetUtil .dynamicDarkSelectedIcon,
81- index: 2 ,
82- hidden: false ,
83- canBeHidden: false ,
84- ),
85- SortableItem (
86- id: "mine" ,
87- index: 4 ,
88- lightIcon: AssetUtil .mineLightIcon,
89- lightSelectedIcon: AssetUtil .mineLightSelectedIcon,
90- darkIcon: AssetUtil .mineDarkIcon,
91- darkSelectedIcon: AssetUtil .mineDarkSelectedIcon,
92- hidden: false ,
93- canBeHidden: false ,
94- ),
95- ];
96-
97- static Map <String , GlobalKey > navItemKeyMap = {
98- "home" : GlobalKey (),
99- 'dynamic' : GlobalKey (),
100- 'mine' : GlobalKey (),
101- };
102-
103- static Map <String , Widget > navItemPageMap = {
104- "home" : HomeScreen (key: navItemKeyMap['home' ]),
105- 'mine' : MineScreen (key: navItemKeyMap['mine' ]),
106- 'dynamic' : DynamicScreen (key: navItemKeyMap['dynamic' ]),
107- };
108-
109- static Widget getNavItemPage (String id) {
110- return navItemPageMap[id]! ;
111- }
112-
113- static GlobalKey getNavItemKey (String id) {
114- return navItemKeyMap[id]! ;
115- }
116-
117- static String getNavItemLabel (String id) {
118- Map <String , String > idToLabelMap = {
119- "home" : S .current.home,
120- 'dynamic' : S .current.dynamic ,
121- "mine" : S .current.mine,
122- };
123- return idToLabelMap[id] ?? "" ;
124- }
125-
126- List <SortableItem > items;
127- List <SortableItem > defaultItems;
128-
129- SortableItemList ({
130- required this .items,
131- required this .defaultItems,
132- });
133-
134- static int compare (SortableItem a, SortableItem b) {
135- return a.index - b.index;
136- }
137-
138- List <SortableItem > getList () {
139- items.sort (compare);
140- return items;
141- }
142-
143- List <SortableItem > mergeMeta (List <SortableItem > list) {
144- for (SortableItem updateItem in defaultItems) {
145- for (SortableItem item in list) {
146- if (updateItem.id == item.id) {
147- item.canBeHidden = updateItem.canBeHidden;
148- item.lightIcon = updateItem.lightIcon;
149- item.lightSelectedIcon = updateItem.lightSelectedIcon;
150- item.darkIcon = updateItem.darkIcon;
151- item.darkSelectedIcon = updateItem.darkSelectedIcon;
152- break ;
153- }
154- }
155- }
156- return list;
157- }
158-
159- List <SortableItem > getHiddenItems () {
160- items.sort (compare);
161- List <SortableItem > hiddenItems = [];
162- for (SortableItem entry in items) {
163- if (entry.canBeHidden && entry.hidden) hiddenItems.add (entry);
164- }
165- return mergeMeta (hiddenItems);
166- }
167-
168- List <SortableItem > getShownItems () {
169- items.sort (compare);
170- List <SortableItem > showItems = [];
171- List <String > ids = List .generate (items.length, (index) => items[index].id);
172- for (SortableItem entry in items) {
173- if (! (entry.canBeHidden && entry.hidden)) showItems.add (entry);
174- }
175- for (SortableItem updateItem in defaultItems) {
176- if (! ids.contains (updateItem.id)) showItems.add (updateItem);
177- }
178- return mergeMeta (showItems);
179- }
180- }
0 commit comments