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 */
15
16import { CommonConstants } from '@ohos/common';
17import { PresetStyleConstants } from '@ohos/common';
18import { LauncherLayoutStyleConfig } from '@ohos/common';
19import PhonePresetStyleConstants from './constants/PhonePresetStyleConstants';
20
21/**
22 * Phone launcher config
23 */
24export default class PhoneLauncherLayoutStyleConfig extends LauncherLayoutStyleConfig {
25
26  /**
27   * CommonDialog width
28   */
29  mCommonDialogWidth: string = PhonePresetStyleConstants.DEFAULT_COMMONDIALOG_WIDTH;
30
31  /**
32   * systemUI top height
33   */
34  mSysTopHeight: number = PhonePresetStyleConstants.DEFAULT_SYS_TOP_HEIGHT;
35
36  /**
37   * systemUI bottom height
38   */
39  mSysBottomHeight: number = PhonePresetStyleConstants.DEFAULT_SYS_BOTTOM_HEIGHT;
40
41  /**
42   * systemUI height (top + bottom)
43   */
44  mSystemUIHeight: number = PresetStyleConstants.DEFAULT_PHONE_SYSTEM_UI;
45
46  /**
47   * indicator height
48   */
49  mIndicatorHeight: number = PresetStyleConstants.DEFAULT_PHONE_INDICATOR_HEIGHT;
50
51  /**
52   * desktop item Size
53   */
54  mAppItemSize: number = PhonePresetStyleConstants.DEFAULT_APP_LAYOUT_SIZE;
55
56  /**
57   * desktop space margin
58   */
59  mMargin: number = PhonePresetStyleConstants.DEFAULT_LAYOUT_MARGIN;
60
61  /**
62   * desktop grid gap
63   */
64  mGridGutter: number = PhonePresetStyleConstants.DEFAULT_APP_LAYOUT_MIN_GUTTER;
65
66  /**
67   * icon name lines
68   */
69  mNameLines: number = PhonePresetStyleConstants.DEFAULT_APP_NAME_LINES;
70
71  /**
72   * icon ratio
73   */
74  mIconRatio: number = PhonePresetStyleConstants.DEFAULT_APP_TOP_RATIO;
75
76  /**
77   * icon name margin
78   */
79  mIconNameGap: number = PhonePresetStyleConstants.DEFAULT_ICON_NAME_GAP;
80
81  /**
82   * icon name text size
83   */
84  mNameSize: number = PhonePresetStyleConstants.DEFAULT_APP_NAME_TEXT_SIZE;
85
86  /**
87   * name height
88   */
89  mNameHeight: number = PhonePresetStyleConstants.DEFAULT_DESKTOP_NAME_HEIGHT;
90
91  //folder
92  /**
93   * ratio of gutter with folder
94   */
95  mFolderGutterRatio: number = PhonePresetStyleConstants.DEFAULT_FOLDER_GUTTER_RATIO;
96
97  /**
98   * ratio of margin with folder
99   */
100  mFolderMarginRatio: number = PhonePresetStyleConstants.DEFAULT_FOLDER_PADDING_RATIO;
101
102  /**
103   * gutter of open folder
104   */
105  mFolderOpenGutter: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_GUTTER;
106
107  /**
108   * padding of open folder
109   */
110  mFolderOpenPADDING: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_PADDING;
111
112  /**
113   * margin of open folder
114   */
115  mFolderOpenMargin: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_MARGIN_TOP;
116
117  /**
118  * margin top of open folder
119  */
120  mFolderOpenTitle: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_TITLE_TOP;
121
122  /**
123   * gutter of add app
124   */
125  mFolderAddGridGap: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_GAP;
126
127  /**
128   * margin of add app and padding of add app
129   */
130  mFolderAddGridMargin: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_MARGIN;
131
132  /**
133   * max height of add app
134   */
135  mFolderAddMaxHeight: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_MAX_HEIGHT;
136
137  /**
138   * toggle size of add app
139   */
140  mFolderToggleSize: number = PhonePresetStyleConstants.DEFAULT_APP_GRID_TOGGLE_SIZE;
141
142  /**
143   * name lines of add app
144   */
145  mFolderAddTextLines: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_TEXT_LINES;
146
147  /**
148   * text size of add app
149   */
150  mFolderAddTextSize: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_GRID_TEXT_SIZE;
151
152  /**
153   * title size of add app
154   */
155  mFolderAddTitleSize: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_TITLE_TEXT_SIZE;
156
157  /**
158   * ratio of padding top with icon in add app
159   */
160  mFolderAddIconRatio: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_ICON_TOP_RATIO;
161
162  /**
163   * button size of add app
164   */
165  mFolderAddButtonSize: number = PhonePresetStyleConstants.DEFAULT_FOLDER_ADD_BUTTON_SIZE;
166
167  //App Center
168  /**
169   * margin of app center
170   */
171  mAppCenterMargin: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_MARGIN;
172
173  /**
174   * gutter of app center
175   */
176  mAppCenterGutter: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_GUTTER;
177
178  /**
179   * size of app center container
180   */
181  mAppCenterSize: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_SIZE;
182
183  /**
184   * ratio of padding top with icon in app center
185   */
186  mAppCenterRatio: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_TOP_RATIO;
187
188  /**
189   * name lines of app center
190   */
191  mAppCenterNameLines: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_NAME_LINES;
192
193  /**
194   * name size of app center
195   */
196  mAppCenterNameSize: number = PhonePresetStyleConstants.DEFAULT_APP_CENTER_NAME_TEXT_SIZE;
197
198  //dock
199  /**
200   * padding of dock
201   */
202  mDockPadding: number = PhonePresetStyleConstants.DEFAULT_DOCK_PADDING;
203
204  /**
205   * icon size of dock
206   */
207  mDockIconSize: number = PhonePresetStyleConstants.DEFAULT_DOCK_ICON_SIZE;
208
209  /**
210   * gap of icon and icon
211   */
212  mDockItemGap: number = PhonePresetStyleConstants.DEFAULT_DOCK_ITEM_GAP;
213
214  /**
215   * gap of dock and dock
216   */
217  mDockGutter: number = PhonePresetStyleConstants.DEFAULT_DOCK_GUTTER;
218
219  /**
220   * save margin of dock
221   */
222  mDockSaveMargin: number = PhonePresetStyleConstants.DEFAULT_DOCK_SAVE_MARGIN;
223
224  /**
225   * margin bottom of dock
226   */
227  mDockMarginBottom: number = PhonePresetStyleConstants.DEFAULT_DOCK_MARGIN_BOTTOM;
228
229  /**
230   * margin bottom of dock (Immersive navigation bar)
231   */
232  mDockMarginBottomHideBar: number = PhonePresetStyleConstants.DEFAULT_DOCK_MARGIN_BOTTOM_HIDE_BAR;
233
234  /**
235   * open folder grid height
236   */
237  mOpenFolderGridHeight: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_GRID_HEIGHT;
238
239  /**
240   * open folder swiper height
241   */
242  mOpenFolderSwiperHeight: number = PhonePresetStyleConstants.DEFAULT_OPEN_FOLDER_SWIPER_HEIGHT;
243
244  private constructor() {
245    super();
246  }
247
248  /**
249   * PhoneLauncherLayoutStyleConfig of instance
250   */
251  static getInstance(): PhoneLauncherLayoutStyleConfig {
252    if (globalThis.PhoneLauncherLayoutStyleConfigInstance == null) {
253      globalThis.PhoneLauncherLayoutStyleConfigInstance = new PhoneLauncherLayoutStyleConfig();
254    }
255    return globalThis.PhoneLauncherLayoutStyleConfigInstance;
256  }
257
258  getConfigLevel(): string {
259    return CommonConstants.LAYOUT_CONFIG_LEVEL_PRODUCT;
260  }
261
262  getFeatureName(): string {
263    return LauncherLayoutStyleConfig.LAUNCHER_PRODUCT_STYLE_CONFIG;
264  }
265}
266