From e8c3df87ad92ebe22dc8e99d1ff7fbc187025048 Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Wed, 21 Sep 2022 07:44:29 +0000 Subject: [PATCH] [SettingsLibs] Add room DAO for mobile network Bug: 236919685 Test: manual Change-Id: I5e6b2169f58b32b29acc535074cf96b2dbf9a6e9 --- .../dataservice/MobileNetworkInfoDao.java | 53 +++++++++++++++++ .../dataservice/SubscriptionInfoDao.java | 57 +++++++++++++++++++ .../mobile/dataservice/UiccInfoDao.java | 51 +++++++++++++++++ 3 files changed, 161 insertions(+) create mode 100644 packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/MobileNetworkInfoDao.java create mode 100644 packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/SubscriptionInfoDao.java create mode 100644 packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/UiccInfoDao.java diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/MobileNetworkInfoDao.java b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/MobileNetworkInfoDao.java new file mode 100644 index 0000000000000..299a445e14a21 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/MobileNetworkInfoDao.java @@ -0,0 +1,53 @@ +/* + * 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 java.util.List; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; + +@Dao +public interface MobileNetworkInfoDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insertMobileNetworkInfo(MobileNetworkInfoEntity... mobileNetworkInfo); + + @Query("SELECT * FROM " + DataServiceUtils.MobileNetworkInfoData.TABLE_NAME + " ORDER BY " + + DataServiceUtils.MobileNetworkInfoData.COLUMN_ID) + LiveData> queryAllMobileNetworkInfos(); + + @Query("SELECT * FROM " + DataServiceUtils.MobileNetworkInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.MobileNetworkInfoData.COLUMN_ID + " = :subId") + LiveData queryMobileNetworkInfoBySubId(String subId); + + @Query("SELECT * FROM " + DataServiceUtils.MobileNetworkInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.MobileNetworkInfoData.COLUMN_IS_MOBILE_DATA_ENABLED + + " = :isMobileDataEnabled") + LiveData> queryMobileNetworkInfosByMobileDataStatus( + boolean isMobileDataEnabled); + + @Query("SELECT COUNT(*) FROM " + DataServiceUtils.MobileNetworkInfoData.TABLE_NAME) + int count(); + + @Query("DELETE FROM " + DataServiceUtils.MobileNetworkInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.MobileNetworkInfoData.COLUMN_ID + " = :subId") + void deleteBySubId(String subId); +} diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/SubscriptionInfoDao.java b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/SubscriptionInfoDao.java new file mode 100644 index 0000000000000..45966376ea8ad --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/SubscriptionInfoDao.java @@ -0,0 +1,57 @@ +/* + * 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 java.util.List; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import androidx.room.Update; + +@Dao +public interface SubscriptionInfoDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insertSubsInfo(SubscriptionInfoEntity... subscriptionInfo); + + @Query("SELECT * FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " ORDER BY " + + DataServiceUtils.SubscriptionInfoData.COLUMN_ID) + LiveData> queryAvailableSubInfos(); + + @Query("SELECT * FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.SubscriptionInfoData.COLUMN_ID + " = :subId") + LiveData querySubInfoById(String subId); + + @Query("SELECT * FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.SubscriptionInfoData.COLUMN_IS_ACTIVE_SUBSCRIPTION_ID + + " = :isActiveSubscription" + " AND " + + DataServiceUtils.SubscriptionInfoData.COLUMN_IS_SUBSCRIPTION_VISIBLE + + " = :isSubscriptionVisible") + LiveData> queryActiveSubInfos( + boolean isActiveSubscription, boolean isSubscriptionVisible); + + @Query("SELECT COUNT(*) FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME) + int count(); + + @Query("DELETE FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.SubscriptionInfoData.COLUMN_ID + " = :id") + void deleteBySubId(String id); + +} diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/UiccInfoDao.java b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/UiccInfoDao.java new file mode 100644 index 0000000000000..7e60421d0ab4d --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/dataservice/UiccInfoDao.java @@ -0,0 +1,51 @@ +/* + * 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 java.util.List; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; + +@Dao +public interface UiccInfoDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insertUiccInfo(UiccInfoEntity... uiccInfo); + + @Query("SELECT * FROM " + DataServiceUtils.UiccInfoData.TABLE_NAME + " ORDER BY " + + DataServiceUtils.UiccInfoData.COLUMN_ID) + LiveData> queryAllUiccInfos(); + + @Query("SELECT * FROM " + DataServiceUtils.UiccInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.UiccInfoData.COLUMN_ID + " = :subId") + LiveData queryUiccInfoById(String subId); + + @Query("SELECT * FROM " + DataServiceUtils.UiccInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.UiccInfoData.COLUMN_IS_EUICC + " = :isEuicc") + LiveData> queryUiccInfosByEuicc(boolean isEuicc); + + @Query("SELECT COUNT(*) FROM " + DataServiceUtils.UiccInfoData.TABLE_NAME) + int count(); + + @Query("DELETE FROM " + DataServiceUtils.UiccInfoData.TABLE_NAME + " WHERE " + + DataServiceUtils.UiccInfoData.COLUMN_ID + " = :id") + void deleteBySubId(String id); +}