[SettingsLibs] Enable androidx room for mobile network
Bug: 236919685
Test: manual
Change-Id: If3b04aff0c7888415681f3d8f601e49be7ffb69f
diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp
index 1df9059..c659525 100644
--- a/packages/SettingsLib/Android.bp
+++ b/packages/SettingsLib/Android.bp
@@ -56,8 +56,12 @@
"SettingsLibDeviceStateRotationLock",
"setupdesign",
"zxing-core-1.7",
+ "androidx.room_room-runtime",
+
],
+ plugins: ["androidx.room_room-compiler-plugin"],
+
resource_dirs: ["res"],
srcs: [
diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/DataServiceUtils.java b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/DataServiceUtils.java
new file mode 100644
index 0000000..0d6e911
--- /dev/null
+++ b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/DataServiceUtils.java
@@ -0,0 +1,367 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.mobile.dataservice;
+
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.UiccCardInfo;
+import android.telephony.UiccPortInfo;
+import android.telephony.UiccSlotInfo;
+import android.telephony.UiccSlotMapping;
+
+public class DataServiceUtils {
+
+ /**
+ * Represents columns of the MobileNetworkInfoData table, define these columns from
+ * {@see MobileNetworkUtils} or relevant common APIs.
+ */
+ public static final class MobileNetworkInfoData {
+
+ /** The name of the MobileNetworkInfoData table. */
+ public static final String TABLE_NAME = "MobileNetworkInfo";
+
+ /**
+ * The name of the ID column, set the {@link SubscriptionInfo#getSubscriptionId()}
+ * as the primary key.
+ */
+ public static final String COLUMN_ID = "subId";
+
+ /**
+ * The name of the WFC provision column,
+ * {@see MobileNetworkUtils#isWfcProvisionedOnDevice(int)}.
+ */
+ public static final String COLUMN_IS_WFC_PROVISIONED_ON_DEVICE = "isWfcProvisionedOnDevice";
+
+ /**
+ * The name of the contact discovery enabled state column,
+ * {@see MobileNetworkUtils#isContactDiscoveryEnabled(Context, int)}.
+ */
+ public static final String COLUMN_IS_CONTACT_DISCOVERY_ENABLED =
+ "isContactDiscoveryEnabled";
+
+ /**
+ * The name of the contact discovery visible state column,
+ * {@see MobileNetworkUtils#isContactDiscoveryEnabled(Context, int)}.
+ */
+ public static final String COLUMN_IS_CONTACT_DISCOVERY_VISIBLE =
+ "isContactDiscoveryVisible";
+
+ /**
+ * The name of the mobile network data state column,
+ * {@see MobileNetworkUtils#isMobileDataEnabled(Context)}.
+ */
+ public static final String COLUMN_IS_MOBILE_DATA_ENABLED = "isMobileDataEnabled";
+
+ /**
+ * The name of the CDMA option state column,
+ * {@see MobileNetworkUtils#isCdmaOptions(Context, int)}.
+ */
+ public static final String COLUMN_IS_CDMA_OPTIONS = "isCdmaOptions";
+
+ /**
+ * The name of the GSM option state column,
+ * {@see MobileNetworkUtils#isGsmOptions(Context, int)}.
+ */
+ public static final String COLUMN_IS_GSM_OPTIONS = "isGsmOptions";
+
+ /**
+ * The name of the world mode state column,
+ * {@see MobileNetworkUtils#isWorldMode(Context, int)}.
+ */
+ public static final String COLUMN_IS_WORLD_MODE = "isWorldMode";
+
+ /**
+ * The name of the display network select options state column,
+ * {@see MobileNetworkUtils#shouldDisplayNetworkSelectOptions(Context, int)}.
+ */
+ public static final String COLUMN_SHOULD_DISPLAY_NETWORK_SELECT_OPTIONS =
+ "shouldDisplayNetworkSelectOptions";
+
+ /**
+ * The name of the TDSCDMA supported state column,
+ * {@see MobileNetworkUtils#isTdscdmaSupported(Context, int)}.
+ */
+ public static final String COLUMN_IS_TDSCDMA_SUPPORTED = "isTdscdmaSupported";
+
+ /**
+ * The name of the active network is cellular state column,
+ * {@see MobileNetworkUtils#activeNetworkIsCellular(Context)}.
+ */
+ public static final String COLUMN_ACTIVE_NETWORK_IS_CELLULAR = "activeNetworkIsCellular";
+
+ /**
+ * The name of the show toggle for physicalSim state column,
+ * {@see SubscriptionUtil#showToggleForPhysicalSim(SubscriptionManager)}.
+ */
+ public static final String COLUMN_SHOW_TOGGLE_FOR_PHYSICAL_SIM = "showToggleForPhysicalSim";
+
+ }
+
+ /**
+ * Represents columns of the UiccInfoData table, define these columns from
+ * {@link android.telephony.UiccSlotInfo}, {@link android.telephony.UiccCardInfo},
+ * {@link UiccSlotMapping} and {@link android.telephony.UiccPortInfo}.If columns of these 4
+ * classes are changed, we should also update the table except PII data.
+ */
+ public static final class UiccInfoData {
+
+ /** The name of the UiccInfoData table. */
+ public static final String TABLE_NAME = "uiccInfo";
+
+ /**
+ * The name of the ID column, set the {@link SubscriptionInfo#getSubscriptionId()}
+ * as the primary key.
+ */
+ public static final String COLUMN_ID = "sudId";
+
+ /**
+ * The name of the physical slot index column, see
+ * {@link UiccSlotMapping#getPhysicalSlotIndex()}.
+ */
+ public static final String COLUMN_PHYSICAL_SLOT_INDEX = "physicalSlotIndex";
+
+ /**
+ * The name of the logical slot index column, see
+ * {@link UiccSlotMapping#getLogicalSlotIndex()}.
+ */
+ public static final String COLUMN_LOGICAL_SLOT_INDEX = "logicalSlotIndex";
+
+ /**
+ * The name of the card ID column, see {@link UiccCardInfo#getCardId()}.
+ */
+ public static final String COLUMN_CARD_ID = "cardId";
+
+ /**
+ * The name of the eUICC state column, see {@link UiccCardInfo#isEuicc()}.
+ */
+ public static final String COLUMN_IS_EUICC = "isEuicc";
+
+ /**
+ * The name of the multiple enabled profiles supported state column, see
+ * {@link UiccCardInfo#isMultipleEnabledProfilesSupported()}.
+ */
+ public static final String COLUMN_IS_MULTIPLE_ENABLED_PROFILES_SUPPORTED =
+ "isMultipleEnabledProfilesSupported";
+
+ /**
+ * The name of the card state column, see {@link UiccSlotInfo#getCardStateInfo()}.
+ */
+ public static final String COLUMN_CARD_STATE = "cardState";
+
+ /**
+ * The name of the extended APDU supported state column, see
+ * {@link UiccSlotInfo#getIsExtendedApduSupported()}.
+ */
+ public static final String COLUMN_IS_EXTENDED_APDU_SUPPORTED = "isExtendedApduSupported";
+
+ /**
+ * The name of the removable state column, see {@link UiccSlotInfo#isRemovable()}.
+ */
+ public static final String COLUMN_IS_REMOVABLE = "isRemovable";
+
+ /**
+ * The name of the active state column, see {@link UiccPortInfo#isActive()}.
+ */
+ public static final String COLUMN_IS_ACTIVE = "isActive";
+
+ /**
+ * The name of the port index column, see {@link UiccPortInfo#getPortIndex()}.
+ */
+ public static final String COLUMN_PORT_INDEX = "portIndex";
+ }
+
+ /**
+ * Represents columns of the SubscriptionInfoData table, define these columns from
+ * {@link SubscriptionInfo}, {@see SubscriptionUtil} and
+ * {@link SubscriptionManager} or relevant common APIs. If columns of the
+ * {@link SubscriptionInfo} are changed, we should also update the table except PII data.
+ */
+ public static final class SubscriptionInfoData {
+
+ /** The name of the SubscriptionInfoData table. */
+ public static final String TABLE_NAME = "subscriptionInfo";
+
+ /**
+ * The name of the ID column, set the {@link SubscriptionInfo#getSubscriptionId()}
+ * as the primary key.
+ */
+ public static final String COLUMN_ID = "sudId";
+
+ /**
+ * The name of the sim slot index column, see
+ * {@link SubscriptionInfo#getSimSlotIndex()}.
+ */
+ public static final String COLUMN_SIM_SLOT_INDEX = "simSlotIndex";
+
+ /**
+ * The name of the carrier ID column, see {@link SubscriptionInfo#getCarrierId()}.
+ */
+ public static final String COLUMN_CARRIER_ID = "carrierId";
+
+ /**
+ * The name of the display name column, see {@link SubscriptionInfo#getDisplayName()}.
+ */
+ public static final String COLUMN_DISPLAY_NAME = "displayName";
+
+ /**
+ * The name of the carrier name column, see {@link SubscriptionInfo#getCarrierName()}.
+ */
+ public static final String COLUMN_CARRIER_NAME = "carrierName";
+
+ /**
+ * The name of the data roaming state column, see
+ * {@link SubscriptionInfo#getDataRoaming()}.
+ */
+ public static final String COLUMN_DATA_ROAMING = "dataRoaming";
+
+ /**
+ * The name of the mcc column, see {@link SubscriptionInfo#getMccString()}.
+ */
+ public static final String COLUMN_MCC = "mcc";
+
+ /**
+ * The name of the mnc column, see {@link SubscriptionInfo#getMncString()}.
+ */
+ public static final String COLUMN_MNC = "mnc";
+
+ /**
+ * The name of the country ISO column, see {@link SubscriptionInfo#getCountryIso()}.
+ */
+ public static final String COLUMN_COUNTRY_ISO = "countryIso";
+
+ /**
+ * The name of the embedded state column, see {@link SubscriptionInfo#isEmbedded()}.
+ */
+ public static final String COLUMN_IS_EMBEDDED = "isEmbedded";
+
+ /**
+ * The name of the card ID column, see {@link SubscriptionInfo#getCardId()}.
+ */
+ public static final String COLUMN_CARD_ID = "cardId";
+
+ /**
+ * The name of the port index column, see {@link SubscriptionInfo#getPortIndex()}.
+ */
+ public static final String COLUMN_PORT_INDEX = "portIndex";
+
+ /**
+ * The name of the opportunistic state column, see
+ * {@link SubscriptionInfo#isOpportunistic()}.
+ */
+ public static final String COLUMN_IS_OPPORTUNISTIC = "isOpportunistic";
+
+ /**
+ * The name of the groupUUID column, see {@link SubscriptionInfo#getGroupUuid()}.
+ */
+ public static final String COLUMN_GROUP_UUID = "groupUUID";
+
+ /**
+ * The name of the subscription type column, see
+ * {@link SubscriptionInfo#getSubscriptionType()}}.
+ */
+ public static final String COLUMN_SUBSCRIPTION_TYPE = "subscriptionType";
+
+ /**
+ * The name of the uniqueName column,
+ * {@see SubscriptionUtil#getUniqueSubscriptionDisplayName(SubscriptionInfo, Context)}.
+ */
+ public static final String COLUMN_UNIQUE_NAME = "uniqueName";
+
+ /**
+ * The name of the subscription visible state column,
+ * {@see SubscriptionUtil#isSubscriptionVisible(SubscriptionManager, Context,
+ * SubscriptionInfo)}.
+ */
+ public static final String COLUMN_IS_SUBSCRIPTION_VISIBLE = "isSubscriptionVisible";
+
+ /**
+ * The name of the formatted phone number column,
+ * {@see SubscriptionUtil#getFormattedPhoneNumber(Context, SubscriptionInfo)}.
+ */
+ public static final String COLUMN_FORMATTED_PHONE_NUMBER = "getFormattedPhoneNumber";
+
+ /**
+ * The name of the first removable subscription state column,
+ * {@see SubscriptionUtil#getFirstRemovableSubscription(Context)}.
+ */
+ public static final String COLUMN_IS_FIRST_REMOVABLE_SUBSCRIPTION =
+ "isFirstRemovableSubscription";
+
+ /**
+ * The name of the default SIM config column,
+ * {@see SubscriptionUtil#getDefaultSimConfig(Context, int)}.
+ */
+ public static final String COLUMN_DEFAULT_SIM_CONFIG = "defaultSimConfig";
+
+ /**
+ * The name of the default subscription selection column,
+ * {@see SubscriptionUtil#getSubscriptionOrDefault(Context, int)}.
+ */
+ public static final String COLUMN_IS_DEFAULT_SUBSCRIPTION_SELECTION =
+ "isDefaultSubscriptionSelection";
+
+ /**
+ * The name of the valid subscription column,
+ * {@link SubscriptionManager#isValidSubscriptionId(int)}.
+ */
+ public static final String COLUMN_IS_VALID_SUBSCRIPTION = "isValidSubscription";
+
+ /**
+ * The name of the usable subscription column,
+ * {@link SubscriptionManager#isUsableSubscriptionId(int)}.
+ */
+ public static final String COLUMN_IS_USABLE_SUBSCRIPTION = "isUsableSubscription";
+
+ /**
+ * The name of the active subscription column,
+ * {@link SubscriptionManager#isActiveSubscriptionId(int)}.
+ */
+ public static final String COLUMN_IS_ACTIVE_SUBSCRIPTION_ID = "isActiveSubscription";
+
+ /**
+ * The name of the available subscription column,
+ * {@see SubscriptionUtil#getAvailableSubscription(Context, ProxySubscriptionManager, int)}.
+ */
+ public static final String COLUMN_IS_AVAILABLE_SUBSCRIPTION = "isAvailableSubscription";
+
+ /**
+ * The name of the default voice subscription state column, see
+ * {@link SubscriptionManager#getDefaultVoiceSubscriptionId()}.
+ */
+ public static final String COLUMN_IS_DEFAULT_VOICE_SUBSCRIPTION =
+ "isDefaultVoiceSubscription";
+
+ /**
+ * The name of the default sms subscription state column, see
+ * {@link SubscriptionManager#getDefaultSmsSubscriptionId()}.
+ */
+ public static final String COLUMN_IS_DEFAULT_SMS_SUBSCRIPTION = "isDefaultSmsSubscription";
+
+ /**
+ * The name of the default data subscription state column, see
+ * {@link SubscriptionManager#getDefaultDataSubscriptionId()}.
+ */
+ public static final String COLUMN_IS_DEFAULT_DATA_SUBSCRIPTION =
+ "isDefaultDataSubscription";
+
+ /**
+ * The name of the default subscription state column, see
+ * {@link SubscriptionManager#getDefaultSubscriptionId()}.
+ */
+ public static final String COLUMN_IS_DEFAULT_SUBSCRIPTION = "isDefaultSubscription";
+ }
+}