Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55fba4d5 authored by Jack Nudelman's avatar Jack Nudelman
Browse files

Don't backup/restore sim-settings if Telephony not present.

Bug: 180023868
Bug: 179947838
Test: make, cts test that caught this issue no pass.
Change-Id: Id898d135ed64a704cc4707dcb796664d9b08264b
parent b610667b
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -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,18 +1204,26 @@ public class SettingsBackupAgent extends BackupAgentHelper {
    }

    private byte[] getSimSpecificSettingsData() {
        byte[] simSpecificData = new byte[0];
        PackageManager packageManager = getBaseContext().getPackageManager();
        if (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
            SubscriptionManager subManager = SubscriptionManager.from(getBaseContext());
        byte[] simSpecificData = subManager.getAllSimSpecificSettingsForBackup();
            simSpecificData = subManager.getAllSimSpecificSettingsForBackup();
            Log.i(TAG, "sim specific data of length + " + simSpecificData.length
                + " successfully retrieved");
        }

        return simSpecificData;
    }

    private void restoreSimSpecificSettings(byte[] 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) {
        int newDensity;