• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2023 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 update from '@ohos.update';
17
18/**
19 * 升级状态
20 *
21 * @since 2022-06-05
22 */
23export enum UpdateState {
24  /**
25   * 初始状态
26   */
27  INIT = 0,
28
29  /**
30   * 状态--搜包成功
31   */
32  CHECK_SUCCESS = 12,
33
34  /**
35   * 状态--下载中
36   */
37  DOWNLOADING = 20,
38
39  /**
40   * 状态--下载暂停
41   */
42  DOWNLOAD_PAUSE = 21,
43
44  /**
45   * 状态--取消下载
46   */
47  DOWNLOAD_CANCEL = 22,
48
49  /**
50   * 状态--下载失败
51   */
52  DOWNLOAD_FAILED = 23,
53
54  /**
55   * 状态--下载成功
56   */
57  DOWNLOAD_SUCCESS = 24,
58
59  /**
60   * 状态--安装中
61   */
62  INSTALLING = 80,
63
64  /**
65   * 状态--安装失败
66   */
67  INSTALL_FAILED = 81,
68
69  /**
70   * 状态--安装成功
71   */
72  INSTALL_SUCCESS = 82,
73
74  /**
75   * 状态-安装暂停
76   */
77  INSTALL_PAUSE = 83,
78
79  /**
80   * 状态--升级中
81   */
82  UPGRADING = 90,
83
84  /**
85   * 状态--升级失败
86   */
87  UPGRADE_FAILED = 91,
88
89  /**
90   * 状态--升级成功
91   */
92  UPGRADE_SUCCESS = 92,
93}
94
95/**
96 * 升级接口--状态结构体
97 *
98 * @since 2022-06-05
99 */
100export interface OtaStatus {
101  /**
102   * 状态
103   */
104  status: number;
105
106  /**
107   * 进度
108   */
109  percent: number;
110
111  /**
112   * 终止原因
113   */
114  endReason?: string;
115}
116
117export enum OtaMode {
118  REGULAR_OTA = 0,
119  STREAM_OTA = 1,
120  AB_REGULAR_OTA = 2,
121  AB_STREAM_OTA = 3
122}
123
124/**
125 * 升级错误码
126 *
127 * @since 2022-06-05
128 */
129export enum ErrorCode {
130  /**
131   * 错误码--默认失败
132   */
133  DEFAULT_ERROR = -1,
134
135  /**
136   * 搜包结果--网络错误
137   */
138  CHECK_NETWORK_ERR = -2,
139
140  /**
141   * 搜包结果--搜包中
142   */
143  CHECK_SYSTEM_BUSY = -207,
144
145  /**
146   * 错误码--鉴权失败
147   */
148  AUTH_FAIL = '-208',
149
150  /**
151   * 错误码--鉴权失败服务错误
152   */
153  AUTH_SERVER_ERROR = '-209',
154
155  /**
156   * 错误码--鉴权失败系统错误
157   */
158  AUTH_SYSTEM_ERROR = '-210',
159
160  /**
161   * 错误码--网络错误
162   */
163  NETWORK_ERROR = '-301',
164
165  /**
166   * 错误码--空间不足
167   */
168  NO_ENOUGH_MEMORY = '-304',
169
170  /**
171   * 错误码--检验失败
172   */
173  VERIFY_PACKAGE_FAIL = '-305',
174
175  /**
176   * 错误码--部分升級失敗
177   */
178  UPDATE_PART_FAIL = '-409',
179
180  /**
181   * 错误码--电量不足
182   */
183  NO_ENOUGH_BATTERY = '-830',
184
185  /**
186   * 错误码--网络不允许
187   */
188  NETWORK_NOT_ALLOW = '3148800'
189}
190
191/**
192 * 通用常量
193 *
194 * @since 2022-06-05
195 */
196export enum UpdateConstant {
197  /**
198   * 搜包重试时间
199   */
200  CHECKING_RETRY_TIME = 5,
201
202  /**
203   * 搜包等待间隔
204   */
205  CHECKING_WAITING_TIME_IN_SECONDS = 3,
206
207  /**
208   * 安装电量阈值
209   */
210  UPGRADE_BATTERY_THRESHOLD = 30
211}
212
213/**
214 * 更新日志结构体
215 *
216 * @since 2022-06-05
217 */
218export interface Changelog {
219  /**
220   * 默认语言
221   */
222  defLanguage?: string;
223
224  /**
225   * 显示类型
226   */
227  displayType?: number;
228
229  /**
230   * 所有语言更新日志
231   */
232  language: Map<string, Language>;
233}
234
235/**
236 * 更新日志结构体--语言
237 *
238 * @since 2022-06-05
239 */
240export interface Language {
241  /**
242   * 日志对应语言
243   */
244  language?: string;
245
246  /**
247   * 日志特性数组
248   */
249  featuresArray: Array<Features>;
250}
251
252/**
253 * 更新日志结构体--特性集合
254 *
255 * @since 2022-06-05
256 */
257export interface Features {
258  /**
259   * 标题
260   */
261  title: string;
262
263  /**
264   * 标识
265   */
266  id: string;
267
268  /**
269   * 特性类型
270   */
271  featureModuleType: string;
272
273  /**
274   * 特性数组
275   */
276  featureList: Array<Feature>;
277
278  /**
279   * 图标
280   */
281  icon: Icon;
282}
283
284/**
285 * 更新日志结构体--特性
286 *
287 * @since 2022-06-05
288 */
289export interface Feature {
290  /**
291   * 子标题
292   */
293  subTitle: string;
294
295  /**
296   * 内容数组
297   */
298  contents: Array<string>;
299}
300
301/**
302 * 更新日志结构体--图标
303 *
304 * @since 2022-06-05
305 */
306export interface Icon {
307  /**
308   * 标识
309   */
310  id: string;
311
312  /**
313   * 包名
314   */
315  pkg: string;
316
317  /**
318   * 数据流字串
319   */
320  res: string;
321}
322
323/**
324 * changelog类型
325 *
326 * @since 2022-08-26
327 */
328export enum ChangelogType {
329  /**
330   * 文本类型
331   */
332  TEXT = -1,
333
334  /**
335   * 图文类型
336   */
337  PICTURE_AND_TEXT = 0,
338
339  /**
340   * web类型
341   */
342  WEB_TYPE = 1,
343}
344
345/**
346 * 动作常量枚举
347 *
348 * @since 2022-06-05
349 */
350export enum Action {
351  /**
352   * 动作--跳转主页面搜包
353   */
354  NOTIFICATION_LATER = 'com.ohos.updateapp.later',
355
356  /**
357   * 动作--跳转主页面搜包
358   */
359  NOTIFICATION_CHECK = 'com.ohos.updateapp.check',
360
361  /**
362   * 动作--下载
363   */
364  NOTIFICATION_DOWNLOAD = 'com.ohos.updateapp.download',
365
366  /**
367   * 动作--跳转新版本页面安装
368   */
369  NOTIFICATION_INSTALL = 'com.ohos.updateapp.install',
370
371  /**
372   * 动作--跳转新版本页面
373   */
374  NOTIFICATION_DETAIL = 'com.ohos.updateapp.detail',
375
376  /**
377   * 动作--升级失败跳转主页面搜包
378   */
379  NOTIFICATION_HOT_UPGRADE_FAILED = 'com.ohos.updateapp.hot_upgrade_failed'
380}
381
382/**
383 * 接口执行结果
384 *
385 * @since 2022-07-11
386 */
387export interface UpgradeData<T> {
388  /**
389   * 接口执行结果
390   */
391  callResult: UpgradeCallResult;
392
393  /**
394   * 回调数据
395   */
396  data?: T;
397
398  /**
399   * 错误结果
400   */
401  error?: BusinessError
402}
403
404/**
405 * 接口执行错误码
406 *
407 * @since 2022-07-11
408 */
409export enum UpgradeCallResult {
410  /**
411   * 接口执行成功
412   */
413  OK = 1,
414
415  /**
416   * 接口执行失败
417   */
418  ERROR = -1,
419
420  /**
421   * 接口执行超时
422   */
423  TIME_OUT = -2
424}
425
426/**
427 * 倒计时弹窗类型
428 *
429 * @since 2023-02-08
430 */
431export enum CountDownDialogType {
432  /**
433   * ota20S倒计时
434   */
435  OTA = 0,
436
437  /**
438   * ab升级20S倒计时
439   */
440  OTA_AB = 1,
441}
442
443
444/**
445 * BusinessError
446 *
447 * @since 2023-03-10
448 */
449export interface BusinessError {
450  /**
451   * 数据
452   */
453  data?: ErrCode[];
454}
455
456/**
457 * ErrCode
458 *
459 * @since 2023-03-10
460 */
461export interface ErrCode {
462  /**
463   * 错误码
464   */
465  errorCode: ErrorCode;
466}
467
468/**
469 * 包名
470 */
471export const PACKAGE_NAME = 'com.ohos.updateapp';
472
473/**
474 * 主ability名
475 */
476export const MAIN_ABILITY_NAME = 'com.ohos.updateapp.MainAbility';