aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/ims
diff options
context:
space:
mode:
authorHyunho Shin <hhshin@google.com>2022-04-14 01:11:30 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-14 01:11:30 +0000
commit0f98277028e8bef7ed3f0a38645bdf5a5911926a (patch)
tree1a85a480854a8db98e6243a390679761854e071f /src/java/com/android/ims
parentd0b577941c0f655d094b627cbe523ff2d532a8c2 (diff)
parent148dbf8421e68f5ce03d6077a455dbff7d374907 (diff)
downloadims-0f98277028e8bef7ed3f0a38645bdf5a5911926a.tar.gz
Merge "After saving the capability information in the EAB DB, the invalid data is immediately deleted from the EAB DB." am: d9f22e0d8f am: 4f956cc5a8 am: 148dbf8421
Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/net/ims/+/2058852 Change-Id: Iab71d55369cd795fef825a06a860af32abee2b2a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'src/java/com/android/ims')
-rw-r--r--src/java/com/android/ims/rcs/uce/eab/EabControllerImpl.java49
1 files changed, 27 insertions, 22 deletions
diff --git a/src/java/com/android/ims/rcs/uce/eab/EabControllerImpl.java b/src/java/com/android/ims/rcs/uce/eab/EabControllerImpl.java
index 1750385b..aaab0a9f 100644
--- a/src/java/com/android/ims/rcs/uce/eab/EabControllerImpl.java
+++ b/src/java/com/android/ims/rcs/uce/eab/EabControllerImpl.java
@@ -128,6 +128,7 @@ public class EabControllerImpl implements EabController {
// Pick up changes to CarrierConfig and run any applicable cleanup tasks associated with
// that configuration.
mCapabilityCleanupRunnable.run();
+ cleanupOrphanedRows();
if (!mIsSetDestroyedFlag) {
mEabBulkCapabilityUpdater.onCarrierConfigChanged();
}
@@ -270,7 +271,7 @@ public class EabControllerImpl implements EabController {
c.close();
}
}
-
+ cleanupOrphanedRows();
mEabBulkCapabilityUpdater.updateExpiredTimeAlert();
if (mHandler.hasCallbacks(mCapabilityCleanupRunnable)) {
@@ -280,6 +281,25 @@ public class EabControllerImpl implements EabController {
CLEAN_UP_LEGACY_CAPABILITY_DELAY_MILLI_SEC);
}
+ /**
+ * Cleanup the entry of common table that can't map to presence or option table
+ */
+ @VisibleForTesting
+ public void cleanupOrphanedRows() {
+ String presenceSelection =
+ " (SELECT " + EabProvider.PresenceTupleColumns.EAB_COMMON_ID +
+ " FROM " + EAB_PRESENCE_TUPLE_TABLE_NAME + ") ";
+ String optionSelection =
+ " (SELECT " + EabProvider.OptionsColumns.EAB_COMMON_ID +
+ " FROM " + EAB_OPTIONS_TABLE_NAME + ") ";
+
+ mContext.getContentResolver().delete(
+ EabProvider.COMMON_URI,
+ EabProvider.EabCommonColumns._ID + " NOT IN " + presenceSelection +
+ " AND " + EabProvider.EabCommonColumns._ID+ " NOT IN " + optionSelection,
+ null);
+ }
+
private List<EabCapabilityResult> generateDestroyedResult(List<Uri> contactUri) {
List<EabCapabilityResult> destroyedResult = new ArrayList<>();
for (Uri uri : contactUri) {
@@ -392,8 +412,12 @@ public class EabControllerImpl implements EabController {
RcsUceCapabilityBuilderWrapper builderWrapper) {
if (builderWrapper.getMechanism() == CAPABILITY_MECHANISM_PRESENCE) {
PresenceBuilder builder = builderWrapper.getPresenceBuilder();
- if (builder != null) {
- builder.addCapabilityTuple(createPresenceTuple(contactUri, cursor));
+ if (builder == null) {
+ return;
+ }
+ RcsContactPresenceTuple presenceTuple = createPresenceTuple(contactUri, cursor);
+ if (presenceTuple != null) {
+ builder.addCapabilityTuple(presenceTuple);
}
} else {
OptionsBuilder builder = builderWrapper.getOptionsBuilder();
@@ -799,7 +823,6 @@ public class EabControllerImpl implements EabController {
cleanupCapabilities(rcsCapabilitiesExpiredTime, getRcsCommonIdList());
cleanupCapabilities(nonRcsCapabilitiesExpiredTime, getNonRcsCommonIdList());
- cleanupOrphanedRows();
}
private void cleanupCapabilities(long rcsCapabilitiesExpiredTime, List<Integer> commonIdList) {
@@ -867,24 +890,6 @@ public class EabControllerImpl implements EabController {
return list;
}
- /**
- * Cleanup the entry of common table that can't map to presence or option table
- */
- private void cleanupOrphanedRows() {
- String presenceSelection =
- " (SELECT " + EabProvider.PresenceTupleColumns.EAB_COMMON_ID +
- " FROM " + EAB_PRESENCE_TUPLE_TABLE_NAME + ") ";
- String optionSelection =
- " (SELECT " + EabProvider.OptionsColumns.EAB_COMMON_ID +
- " FROM " + EAB_OPTIONS_TABLE_NAME + ") ";
-
- mContext.getContentResolver().delete(
- EabProvider.COMMON_URI,
- EabProvider.EabCommonColumns._ID + " NOT IN " + presenceSelection +
- " AND " + EabProvider.EabCommonColumns._ID+ " NOT IN " + optionSelection,
- null);
- }
-
private String getStringValue(Cursor cursor, String column) {
return cursor.getString(cursor.getColumnIndex(column));
}