1/** 2 * Copyright (c) 2021-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 { AppItemInfo } from './AppItemInfo'; 17import GridLayoutInfoColumns from './GridLayoutInfoColumns'; 18import GridLayoutItemInfo from './GridLayoutItemInfo'; 19import { CheckEmptyUtils } from '../utils/CheckEmptyUtils'; 20 21/** 22 * Item info of GridLayoutInfo item. 23 */ 24export default class GridLayoutItemBuilder { 25 /** 26 * GridLayoutItemInfo: id 27 */ 28 readonly id: number | undefined; 29 30 /** 31 * GridLayoutItemInfo: cardId 32 */ 33 cardId: number | undefined; 34 35 /** 36 * GridLayoutItemInfo: ID of the bigfolder. 37 */ 38 folderId: string | undefined; 39 40 /** 41 * GridLayoutItemInfo: bigfolder id 42 * Not in bigfolder: - 100 43 * In a bigfolder: ID of the bigfolder. 44 */ 45 container: number | undefined; 46 47 /** 48 * GridLayoutItemInfo: bigfolder Name 49 */ 50 folderName: string | undefined; 51 52 /** 53 * GridLayoutItemInfo: badgeNumber 54 */ 55 badgeNumber: number | undefined; 56 57 /** 58 * GridLayoutItemInfo: type 0:app 1:card 3:bigfolder 59 */ 60 typeId: number | undefined; 61 62 /** 63 * GridLayoutItemInfo: area 64 */ 65 area: number[] | undefined; 66 67 /** 68 * GridLayoutItemInfo: page 69 */ 70 page: number | undefined; 71 72 /** 73 * GridLayoutItemInfo: column of positons 74 */ 75 column: number | undefined; 76 77 /** 78 * GridLayoutItemInfo: row of positons 79 */ 80 row: number | undefined; 81 82 /** 83 * GridLayoutItemInfo: bigfolder apps info 84 */ 85 layoutInfo: AppItemInfo[] | undefined; 86 87 /** 88 * Indicates bundleName. 89 */ 90 bundleName: string | undefined; 91 92 /** 93 * Indicates abilityName. 94 */ 95 abilityName: string | undefined; 96 97 moduleName: string | undefined; 98 99 /** 100 * Indicates keyName. 101 */ 102 keyName: string | undefined; 103 104 /** 105 * GridLayoutItemInfo: extend1 106 */ 107 extend1: string | undefined; 108 109 /** 110 * GridLayoutItemInfo: extend2 111 */ 112 extend2: string | undefined; 113 114 /** 115 * GridLayoutItemInfo: extend3 116 */ 117 extend3: number | undefined; 118 119 constructor(id: number) { 120 this.id = id; 121 } 122 123 static fromResultSet(resultSet: any): GridLayoutItemBuilder { 124 let gridlayoutItemBuilder = new GridLayoutItemBuilder(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.ID))); 125 gridlayoutItemBuilder.setCardId(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.CARD_ID))); 126 gridlayoutItemBuilder.setFolderId(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.FOLDER_ID))); 127 gridlayoutItemBuilder.setContainer(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.CONTAINER))); 128 gridlayoutItemBuilder.setFolderName(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.FOLDER_NAME))); 129 gridlayoutItemBuilder.setBadgeNumber(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.BADGE_NUMBER))); 130 gridlayoutItemBuilder.setTypeId(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.TYPE_ID))); 131 gridlayoutItemBuilder.setArea(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.AREA))); 132 gridlayoutItemBuilder.setPage(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.PAGE))); 133 gridlayoutItemBuilder.setColumn(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.COLUMN))); 134 gridlayoutItemBuilder.setRow(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.ROW))); 135 gridlayoutItemBuilder.setBundleName(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.BUNDLE_NAME))); 136 gridlayoutItemBuilder.setAbilityName(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.ABILITY_NAME))); 137 gridlayoutItemBuilder.setModuleName(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.MODULE_NAME))); 138 gridlayoutItemBuilder.setKeyName(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.KEY_NAME))); 139 gridlayoutItemBuilder.setExtend1(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.EXTEND1))); 140 gridlayoutItemBuilder.setExtend2(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.EXTEND2))); 141 gridlayoutItemBuilder.setExtend3(resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.EXTEND3))); 142 return gridlayoutItemBuilder; 143 } 144 145 static buildLayout(resultSet: any): AppItemInfo { 146 let appItemInfo = new AppItemInfo(); 147 appItemInfo.appName = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.APP_NAME)); 148 appItemInfo.isSystemApp = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.IS_SYSTEM_APP)) > 0 ? true :false; 149 appItemInfo.isUninstallAble = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.IS_UNINSTALLABLE)) > 0 ? true :false; 150 appItemInfo.appIconId = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.APPICON_ID)); 151 appItemInfo.appLabelId = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.APPLABEL_ID)); 152 appItemInfo.bundleName = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.BUNDLE_NAME)); 153 appItemInfo.abilityName = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.ABILITY_NAME)); 154 appItemInfo.moduleName = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.MODULE_NAME)); 155 appItemInfo.keyName = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.KEY_NAME)); 156 appItemInfo.installTime = resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.INSTALL_TIME)); 157 appItemInfo.typeId = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.TYPE_ID)); 158 appItemInfo.area = this.getArea(resultSet.getString(resultSet.getColumnIndex(GridLayoutInfoColumns.AREA))); 159 appItemInfo.page = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.PAGE)); 160 appItemInfo.column = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.COLUMN)); 161 appItemInfo.row = resultSet.getLong(resultSet.getColumnIndex(GridLayoutInfoColumns.ROW)); 162 return appItemInfo; 163 } 164 165 private setCardId(cardId: number) { 166 this.cardId = cardId; 167 return this; 168 } 169 170 private setFolderId(folderId: string) { 171 this.folderId = folderId; 172 return this; 173 } 174 175 private setContainer(container: number) { 176 this.container = container; 177 return this; 178 } 179 180 private setFolderName(folderName: string) { 181 this.folderName = folderName; 182 return this; 183 } 184 185 private setBadgeNumber(badgeNumber: number) { 186 this.badgeNumber = badgeNumber; 187 return this; 188 } 189 190 private setTypeId(typeId: number) { 191 this.typeId = typeId; 192 return this; 193 } 194 195 private setArea(area: string) { 196 let areaArray:number[] = []; 197 let temp = area.split(","); 198 if (!CheckEmptyUtils.isEmptyArr(temp) && temp.length === 2) { 199 areaArray[0] = Number(temp[0]); 200 areaArray[1] = Number(temp[1]); 201 } 202 this.area = areaArray; 203 return this; 204 } 205 206 static getArea(area: string): number[] { 207 let areaArray:number[] = []; 208 let temp = area.split(","); 209 if (!CheckEmptyUtils.isEmptyArr(temp) && temp.length === 2) { 210 areaArray[0] = Number(temp[0]); 211 areaArray[1] = Number(temp[1]); 212 } 213 return areaArray; 214 } 215 216 private setPage(page: number) { 217 this.page = page; 218 return this; 219 } 220 221 private setColumn(column: number) { 222 this.column = column; 223 return this; 224 } 225 226 private setRow(row: number) { 227 this.row = row; 228 return this; 229 } 230 231 private setBundleName(bundleName: string) { 232 this.bundleName = bundleName; 233 return this; 234 } 235 236 private setAbilityName(abilityName: string) { 237 this.abilityName = abilityName; 238 return this; 239 } 240 241 private setModuleName(moduleName: string) { 242 this.moduleName = moduleName; 243 return this; 244 } 245 246 private setKeyName(keyName: string) { 247 this.keyName = keyName; 248 return this; 249 } 250 251 setLayoutInfo(appItemInfos : AppItemInfo[]) { 252 this.layoutInfo = appItemInfos; 253 return this; 254 } 255 256 private setExtend1(extend1: string) { 257 this.extend1 = extend1; 258 return this; 259 } 260 261 private setExtend2(extend2: string) { 262 this.extend2 = extend2; 263 return this; 264 } 265 266 private setExtend3(extend3: number) { 267 this.extend3 = extend3; 268 return this; 269 } 270 271 buildGridLayoutItem(): GridLayoutItemInfo { 272 return new GridLayoutItemInfo(this); 273 } 274}