1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.healthconnect.controller.migration.api
17 
18 /**
19  * Internal class representing the [HealthConnectDataState] received from the HealthConnectManager.
20  */
21 data class MigrationRestoreState(
22     val migrationUiState: MigrationUiState,
23     val dataRestoreState: DataRestoreUiState,
24     val dataRestoreError: DataRestoreUiError
25 ) {
26     enum class MigrationUiState {
27         IDLE,
28         ALLOWED_MIGRATOR_DISABLED,
29         ALLOWED_NOT_STARTED,
30         ALLOWED_PAUSED,
31         ALLOWED_ERROR,
32         IN_PROGRESS,
33         APP_UPGRADE_REQUIRED,
34         MODULE_UPGRADE_REQUIRED,
35         COMPLETE,
36         COMPLETE_IDLE,
37         UNKNOWN,
38     }
39 
40     enum class DataRestoreUiState {
41         IDLE,
42         PENDING,
43         IN_PROGRESS,
44     }
45 
46     enum class DataRestoreUiError {
47         ERROR_NONE,
48         ERROR_UNKNOWN,
49         ERROR_FETCHING_DATA,
50         ERROR_VERSION_DIFF,
51     }
52 }
53