diff options
| author | 2021-04-26 17:12:51 +0000 | |
|---|---|---|
| committer | 2021-04-26 17:12:51 +0000 | |
| commit | 97882604f2b873fedba302340266a517c733aa90 (patch) | |
| tree | a9563b234ba24fb7ea480a2fe144653a63add1f3 | |
| parent | 665d7c76bb6fd442ee467996b77a156066ee58ee (diff) | |
| parent | 68e5bb55828fccd4150e58484c13db54bb75339b (diff) | |
Merge "Don't backup/restore sim-settings if Telephony not present." am: d50bb50f91 am: 68e5bb5582
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1685772
Change-Id: Iae0db0a4457c035ca9d2a2d56190fa49a28e8c92
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index a6e2af9b1674..9cd7083a2a11 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -24,6 +24,7 @@ import android.app.backup.FullBackupDataOutput; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; +import android.content.pm.PackageManager; import android.database.Cursor; import android.net.NetworkPolicy; import android.net.NetworkPolicyManager; @@ -212,7 +213,6 @@ public class SettingsBackupAgent extends BackupAgentHelper { @Override public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) throws IOException { - byte[] systemSettingsData = getSystemSettings(); byte[] secureSettingsData = getSecureSettings(); byte[] globalSettingsData = getGlobalSettings(); @@ -1204,17 +1204,25 @@ public class SettingsBackupAgent extends BackupAgentHelper { } private byte[] getSimSpecificSettingsData() { - SubscriptionManager subManager = SubscriptionManager.from(getBaseContext()); - byte[] simSpecificData = subManager.getAllSimSpecificSettingsForBackup(); - Log.i(TAG, "sim specific data of length + " + simSpecificData.length + byte[] simSpecificData = new byte[0]; + PackageManager packageManager = getBaseContext().getPackageManager(); + if (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) { + SubscriptionManager subManager = SubscriptionManager.from(getBaseContext()); + simSpecificData = subManager.getAllSimSpecificSettingsForBackup(); + Log.i(TAG, "sim specific data of length + " + simSpecificData.length + " successfully retrieved"); + } return simSpecificData; } private void restoreSimSpecificSettings(byte[] data) { - SubscriptionManager subManager = SubscriptionManager.from(getBaseContext()); - subManager.restoreAllSimSpecificSettingsFromBackup(data); + PackageManager packageManager = getBaseContext().getPackageManager(); + boolean hasTelephony = packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); + if (hasTelephony) { + SubscriptionManager subManager = SubscriptionManager.from(getBaseContext()); + subManager.restoreAllSimSpecificSettingsFromBackup(data); + } } private void updateWindowManagerIfNeeded(Integer previousDensity) { |