1 /*
2  * Copyright (C) 2024 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 
17 package com.android.internal.telephony.satellite;
18 
19 import android.annotation.IntDef;
20 
21 import java.lang.annotation.Retention;
22 import java.lang.annotation.RetentionPolicy;
23 
24 public class SatelliteConstants {
25     public static final int CONFIG_DATA_SOURCE_UNKNOWN = 0;
26     public static final int CONFIG_DATA_SOURCE_ENTITLEMENT = 1;
27     public static final int CONFIG_DATA_SOURCE_CONFIG_UPDATER = 2;
28     public static final int CONFIG_DATA_SOURCE_CARRIER_CONFIG = 3;
29     public static final int CONFIG_DATA_SOURCE_DEVICE_CONFIG = 4;
30 
31     @IntDef(prefix = {"CONFIG_DATA_SOURCE_"}, value = {
32             CONFIG_DATA_SOURCE_UNKNOWN,
33             CONFIG_DATA_SOURCE_ENTITLEMENT,
34             CONFIG_DATA_SOURCE_CONFIG_UPDATER,
35             CONFIG_DATA_SOURCE_CARRIER_CONFIG,
36             CONFIG_DATA_SOURCE_DEVICE_CONFIG
37     })
38     @Retention(RetentionPolicy.SOURCE)
39     public @interface ConfigDataSource {}
40 
41     public static final int SATELLITE_ENTITLEMENT_STATUS_UNKNOWN = 0;
42     public static final int SATELLITE_ENTITLEMENT_STATUS_DISABLED = 1;
43     public static final int SATELLITE_ENTITLEMENT_STATUS_ENABLED = 2;
44     public static final int SATELLITE_ENTITLEMENT_STATUS_INCOMPATIBLE = 3;
45     public static final int SATELLITE_ENTITLEMENT_STATUS_PROVISIONING = 4;
46 
47     @IntDef(prefix = {"SATELLITE_ENTITLEMENT_STATUS_"}, value = {
48             SATELLITE_ENTITLEMENT_STATUS_UNKNOWN,
49             SATELLITE_ENTITLEMENT_STATUS_DISABLED,
50             SATELLITE_ENTITLEMENT_STATUS_ENABLED,
51             SATELLITE_ENTITLEMENT_STATUS_INCOMPATIBLE,
52             SATELLITE_ENTITLEMENT_STATUS_PROVISIONING
53     })
54     @Retention(RetentionPolicy.SOURCE)
55     public @interface SatelliteEntitlementStatus {}
56 
57     public static final int CONFIG_UPDATE_RESULT_UNKNOWN = 0;
58     public static final int CONFIG_UPDATE_RESULT_SUCCESS = 1;
59     public static final int CONFIG_UPDATE_RESULT_INVALID_DOMAIN = 2;
60     public static final int CONFIG_UPDATE_RESULT_INVALID_VERSION = 3;
61     public static final int CONFIG_UPDATE_RESULT_NO_DATA = 4;
62     public static final int CONFIG_UPDATE_RESULT_NO_SATELLITE_DATA = 5;
63     public static final int CONFIG_UPDATE_RESULT_PARSE_ERROR = 6;
64     public static final int CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_PLMN = 7;
65     public static final int CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_SUPPORTED_SERVICES = 8;
66     public static final int CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_COUNTRY_CODE = 9;
67     public static final int CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_S2_CELL_FILE = 10;
68     public static final int CONFIG_UPDATE_RESULT_IO_ERROR = 11;
69 
70     @IntDef(prefix = {"CONFIG_UPDATE_RESULT_"}, value = {
71             CONFIG_UPDATE_RESULT_UNKNOWN,
72             CONFIG_UPDATE_RESULT_SUCCESS,
73             CONFIG_UPDATE_RESULT_INVALID_DOMAIN,
74             CONFIG_UPDATE_RESULT_INVALID_VERSION,
75             CONFIG_UPDATE_RESULT_NO_DATA,
76             CONFIG_UPDATE_RESULT_NO_SATELLITE_DATA,
77             CONFIG_UPDATE_RESULT_PARSE_ERROR,
78             CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_PLMN,
79             CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_SUPPORTED_SERVICES,
80             CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_COUNTRY_CODE,
81             CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_S2_CELL_FILE,
82             CONFIG_UPDATE_RESULT_IO_ERROR
83     })
84     @Retention(RetentionPolicy.SOURCE)
85     public @interface ConfigUpdateResult {}
86 
87     // Access control type is unknown
88     public static final int ACCESS_CONTROL_TYPE_UNKNOWN = 0;
89     // Network country code is used for satellite access decision
90     public static final int ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE = 1;
91     // Device's current location is used for satellite access decision
92     public static final int ACCESS_CONTROL_TYPE_CURRENT_LOCATION = 2;
93     // Device's last known location is used for satellite access decision
94     public static final int ACCESS_CONTROL_TYPE_LAST_KNOWN_LOCATION = 3;
95     // Cached country codes are used for satellite access decision
96     public static final int ACCESS_CONTROL_TYPE_CACHED_COUNTRY_CODE = 4;
97 
98     @IntDef(prefix = {"ACCESS_CONTROL_TYPE_"}, value = {
99             ACCESS_CONTROL_TYPE_UNKNOWN,
100             ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE,
101             ACCESS_CONTROL_TYPE_CURRENT_LOCATION,
102             ACCESS_CONTROL_TYPE_LAST_KNOWN_LOCATION,
103             ACCESS_CONTROL_TYPE_CACHED_COUNTRY_CODE
104     })
105     @Retention(RetentionPolicy.SOURCE)
106     public @interface AccessControlType {}
107 }
108