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

Commit 0023b2c1 authored by Jacky Wang's avatar Jacky Wang Committed by Android (Google) Code Review
Browse files

Merge "Remove NoOpHelper from SettingsBackupHelper" into main

parents 64f740e5 382f845f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2,3 +2,5 @@

include platform/frameworks/base:/services/backup/OWNERS

# Android Settings Core
jiannan@google.com
+2 −55
Original line number Diff line number Diff line
@@ -19,25 +19,15 @@ package com.android.settings.backup;
import static com.android.settings.localepicker.LocaleNotificationDataManager.LOCALE_NOTIFICATION;

import android.app.backup.BackupAgentHelper;
import android.app.backup.BackupDataInputStream;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupHelper;
import android.app.backup.SharedPreferencesBackupHelper;
import android.os.ParcelFileDescriptor;

import com.android.settings.flags.Flags;
import com.android.settings.fuelgauge.BatteryBackupHelper;
import com.android.settings.onboarding.OnboardingFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.shortcut.CreateShortcutPreferenceController;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import com.android.settings.flags.Flags;

/**
 * Backup agent for Settings APK
 */
/** Backup agent for Settings APK */
public class SettingsBackupHelper extends BackupAgentHelper {
    private static final String PREF_LOCALE_NOTIFICATION = "localeNotificationSharedPref";
    public static final String SOUND_BACKUP_HELPER = "SoundSettingsBackup";
@@ -45,7 +35,6 @@ public class SettingsBackupHelper extends BackupAgentHelper {
    @Override
    public void onCreate() {
        super.onCreate();
        addHelper("no-op", new NoOpHelper());
        addHelper(BatteryBackupHelper.TAG, new BatteryBackupHelper(this));
        addHelper(PREF_LOCALE_NOTIFICATION,
                new SharedPreferencesBackupHelper(this, LOCALE_NOTIFICATION));
@@ -64,46 +53,4 @@ public class SettingsBackupHelper extends BackupAgentHelper {
        super.onRestoreFinished();
        CreateShortcutPreferenceController.updateRestoredShortcuts(this);
    }

    /**
     * Backup helper which does not do anything. Having at least one helper ensures that the
     * transport is not empty and onRestoreFinished is called eventually.
     */
    private static class NoOpHelper implements BackupHelper {

        private final int VERSION_CODE = 1;

        @Override
        public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
                ParcelFileDescriptor newState) {

            try (FileOutputStream out = new FileOutputStream(newState.getFileDescriptor())) {
                if (getVersionCode(oldState) != VERSION_CODE) {
                    data.writeEntityHeader("placeholder", 1);
                    data.writeEntityData(new byte[1], 1);
                }

                // Write new version code
                out.write(VERSION_CODE);
                out.flush();
            } catch (IOException e) { }
        }

        @Override
        public void restoreEntity(BackupDataInputStream data) { }

        @Override
        public void writeNewStateDescription(ParcelFileDescriptor newState) { }

        private int getVersionCode(ParcelFileDescriptor state) {
            if (state == null) {
                return 0;
            }
            try (FileInputStream in = new FileInputStream(state.getFileDescriptor())) {
                return in.read();
            } catch (IOException e) {
                return 0;
            }
        }
    }
}