Fixed subscription database cache out of sync

The subscription reloading from database could cause cache
to be out-of-sync. Fixed by making reloading synchronous and
only reload when necessary (e.g. Backup restore actually changes
the database).

Fix: 290295550
Test: atest SubscriptionManagerServiceTest TelephonyProviderTests
Test: Manually test backup/restore
Test: Telephony basic functionality tests
Test: Re-tested passed on b/290295550#comment#23

Change-Id: Ib818110a1f03536ed9082e779b3cc89e56608084
This commit is contained in:
Jack Yu
2023-07-18 19:33:58 -07:00
parent 9625284371
commit 7542cfca1e

View File

@@ -150,6 +150,15 @@ public class SubscriptionManager {
public static final String RESTORE_SIM_SPECIFIC_SETTINGS_METHOD_NAME =
"restoreSimSpecificSettings";
/**
* The key of the boolean flag indicating whether restoring subscriptions actually changes
* the subscription database or not.
*
* @hide
*/
public static final String RESTORE_SIM_SPECIFIC_SETTINGS_DATABASE_UPDATED =
"restoreSimSpecificSettingsDatabaseUpdated";
/**
* Key to the backup & restore data byte array in the Bundle that is returned by {@link
* #getAllSimSpecificSettingsForBackup()} or to be pass in to {@link