1/*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import { ILayoutConfig } from './ILayoutConfig';
16import { CommonConstants } from '../constants/CommonConstants';
17import { PresetStyleConstants } from '../constants/PresetStyleConstants';
18
19/**
20 * Launcher_layout style
21 */
22export class LauncherLayoutStyleConfig extends ILayoutConfig {
23
24  static LAUNCHER_COMMON_STYLE_CONFIG: string = 'launcherStyleCommon';
25
26  static LAUNCHER_PRODUCT_STYLE_CONFIG: string = 'launcherStyleProduct';
27
28  /**
29     * CommonDialogWidth width
30   */
31  mCommonDialogWidth = PresetStyleConstants.DEFAULT_COMMONDIALOG_WIDTH;
32
33  /**
34   * systemUI top height
35   */
36  mSysTopHeight = PresetStyleConstants.DEFAULT_SYS_TOP_HEIGHT;
37
38  /**
39   * systemUI bottom height
40   */
41  mSysBottomHeight = PresetStyleConstants.DEFAULT_SYS_BOTTOM_HEIGHT;
42
43  mSystemUIHeight = PresetStyleConstants.DEFAULT_PAD_SYSTEM_UI;
44
45  mIndicatorHeight = PresetStyleConstants.DEFAULT_PAD_INDICATOR_HEIGHT;
46
47  /**
48   * desktop item Size
49   */
50  mAppItemSize = PresetStyleConstants.DEFAULT_APP_LAYOUT_SIZE;
51
52  /**
53   * desktop space margin
54   */
55  mMargin = PresetStyleConstants.DEFAULT_LAYOUT_MARGIN;
56
57  /**
58   * desktop grid gap
59   */
60  mGridGutter = PresetStyleConstants.DEFAULT_APP_LAYOUT_MIN_GUTTER;
61
62  /**
63   * icon name lines
64   */
65  mNameLines: number = PresetStyleConstants.DEFAULT_APP_NAME_LINES;
66
67  /**
68   * icon ratio
69   */
70  mIconRatio: number = PresetStyleConstants.DEFAULT_APP_TOP_RATIO;
71
72  /**
73   * icon name margin
74   */
75  mIconNameGap: number = PresetStyleConstants.DEFAULT_ICON_NAME_GAP;
76
77  /**
78   * icon name text size
79   */
80  mNameSize: number = PresetStyleConstants.DEFAULT_APP_NAME_TEXT_SIZE;
81
82  /**
83   * name height
84   */
85  mNameHeight: number = PresetStyleConstants.DEFAULT_DESKTOP_NAME_HEIGHT;
86
87  //folder
88  /**
89   * ratio of gutter with folder
90   */
91  mFolderGutterRatio: number = PresetStyleConstants.DEFAULT_FOLDER_GUTTER_RATIO;
92
93  /**
94   * ratio of margin with folder
95   */
96  mFolderMarginRatio: number = PresetStyleConstants.DEFAULT_FOLDER_PADDING_RATIO;
97
98  /**
99   * gutter of open folder
100   */
101  mFolderOpenGutter: number = PresetStyleConstants.DEFAULT_OPEN_FOLDER_GUTTER;
102
103  /**
104   * padding of open folder
105   */
106  mFolderOpenPADDING: number = PresetStyleConstants.DEFAULT_OPEN_FOLDER_PADDING;
107
108  /**
109   * margin of open folder
110   */
111  mFolderOpenMargin: number = PresetStyleConstants.DEFAULT_OPEN_FOLDER_MARGIN_TOP;
112
113  /**
114  * margin top of open folder
115  */
116  mFolderOpenTitle: number = PresetStyleConstants.DEFAULT_OPEN_FOLDER_TITLE_TOP;
117
118  /**
119   * gutter of add app
120   */
121  mFolderAddGridGap: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_GAP;
122
123  /**
124   * margin of add app and padding of add app
125   */
126  mFolderAddGridMargin: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_MARGIN;
127
128  /**
129   * max height of add app
130   */
131  mFolderAddMaxHeight: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_MAX_HEIGHT;
132
133  /**
134   * toggle size of add app
135   */
136  mFolderToggleSize: number = PresetStyleConstants.DEFAULT_APP_GRID_TOGGLE_SIZE;
137
138  /**
139   * name lines of add app
140   */
141  mFolderAddTextLines: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_TEXT_LINES;
142
143  /**
144   * text size of add app
145   */
146  mFolderAddTextSize: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_GRID_TEXT_SIZE;
147
148  /**
149   * title size of add app
150   */
151  mFolderAddTitleSize: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_TITLE_TEXT_SIZE;
152
153  /**
154   * ratio of padding top with icon in add app
155   */
156  mFolderAddIconRatio: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_ICON_TOP_RATIO;
157
158  /**
159   * button size of add app
160   */
161  mFolderAddButtonSize: number = PresetStyleConstants.DEFAULT_FOLDER_ADD_BUTTON_SIZE;
162  //App Center
163  /**
164   * left margin of app center
165   */
166  mAppCenterMarginLeft: number = PresetStyleConstants.DEFAULT_APP_CENTER_MARGIN;
167  //App Center
168  /**
169   * margin of app center
170   */
171  mAppCenterMargin: number = PresetStyleConstants.DEFAULT_APP_CENTER_MARGIN;
172
173  /**
174   * gutter of app center
175   */
176  mAppCenterGutter: number = PresetStyleConstants.DEFAULT_APP_CENTER_GUTTER;
177
178  /**
179   * size of app center container
180   */
181  mAppCenterSize: number = PresetStyleConstants.DEFAULT_APP_CENTER_SIZE;
182
183  /**
184   * ratio of padding top with icon in app center
185   */
186  mAppCenterRatio: number = PresetStyleConstants.DEFAULT_APP_CENTER_TOP_RATIO;
187
188  /**
189   * name lines of app center
190   */
191  mAppCenterNameLines: number = PresetStyleConstants.DEFAULT_APP_CENTER_NAME_LINES;
192
193  /**
194   * name size of app center
195   */
196  mAppCenterNameSize: number = PresetStyleConstants.DEFAULT_APP_CENTER_NAME_TEXT_SIZE;
197
198  //dock
199  /**
200   * padding of dock
201   */
202  mDockPadding: number = PresetStyleConstants.DEFAULT_DOCK_PADDING;
203
204  /**
205   * icon size of dock
206   */
207  mDockIconSize: number = PresetStyleConstants.DEFAULT_DOCK_ICON_SIZE;
208
209  /**
210   * gap of icon and icon
211   */
212  mDockItemGap: number = PresetStyleConstants.DEFAULT_DOCK_ITEM_GAP;
213
214  /**
215   * gap of dock and dock
216   */
217  mDockGutter: number = PresetStyleConstants.DEFAULT_DOCK_GUTTER;
218
219  /**
220   * save margin of dock
221   */
222  mDockSaveMargin: number = PresetStyleConstants.DEFAULT_DOCK_SAVE_MARGIN;
223
224  /**
225   * margin bottom of dock
226   */
227  mDockMarginBottom: number = PresetStyleConstants.DEFAULT_DOCK_MARGIN_BOTTOM;
228
229  /**
230   * margin bottom of dock (Immersive navigation bar)
231   */
232  mDockMarginBottomHideBar: number = PresetStyleConstants.DEFAULT_DOCK_MARGIN_BOTTOM_HIDE_BAR;
233
234  protected constructor() {
235    super();
236  }
237
238  /**
239   * LauncherLayoutStyleConfig of instance
240   */
241  static getInstance(): LauncherLayoutStyleConfig {
242    if (globalThis.LauncherLayoutStyleConfigInstance == null) {
243      globalThis.LauncherLayoutStyleConfigInstance = new LauncherLayoutStyleConfig();
244    }
245    return globalThis.LauncherLayoutStyleConfigInstance;
246  }
247
248  initConfig(): void {
249  }
250
251  getConfigLevel(): string {
252    return CommonConstants.LAYOUT_CONFIG_LEVEL_COMMON;
253  }
254
255  getConfigType(): number {
256    return CommonConstants.LAYOUT_CONFIG_TYPE_STYLE;
257  }
258
259  getConfigName(): string {
260    return LauncherLayoutStyleConfig.LAUNCHER_COMMON_STYLE_CONFIG;
261  }
262
263  protected getPersistConfigJson(): string {
264    let persistConfig = {
265    };
266    return JSON.stringify(persistConfig);
267  }
268}