blob: 2617b9337d66c7b5ba09f114e55adfa31ebcb09f [file] [log] [blame]
Sunny Goyalc190dbf2016-05-05 14:37:05 -07001package com.android.launcher3;
2
3import android.app.backup.BackupAgent;
4import android.app.backup.BackupDataInput;
5import android.app.backup.BackupDataOutput;
Sunny Goyalc190dbf2016-05-05 14:37:05 -07006import android.os.ParcelFileDescriptor;
7
Sunny Goyal49f19f02017-01-05 14:36:02 -08008import com.android.launcher3.logging.FileLog;
Sunny Goyale8f7d5a2016-05-24 11:30:14 -07009import com.android.launcher3.provider.RestoreDbTask;
Sunny Goyalc190dbf2016-05-05 14:37:05 -070010
Alex Chau29a96ad2022-02-10 13:12:20 +000011import java.io.File;
12import java.io.IOException;
13
Sunny Goyalc190dbf2016-05-05 14:37:05 -070014public class LauncherBackupAgent extends BackupAgent {
15
Alex Chau29a96ad2022-02-10 13:12:20 +000016 private static final String TAG = "LauncherBackupAgent";
17
Sunny Goyalc190dbf2016-05-05 14:37:05 -070018 @Override
Sunny Goyal49f19f02017-01-05 14:36:02 -080019 public void onCreate() {
20 super.onCreate();
21 // Set the log dir as LauncherAppState is not initialized during restore.
22 FileLog.setDir(getFilesDir());
23 }
24
25 @Override
Sunny Goyalc190dbf2016-05-05 14:37:05 -070026 public void onRestore(
27 BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) {
28 // Doesn't do incremental backup/restore
29 }
30
31 @Override
Alex Chau29a96ad2022-02-10 13:12:20 +000032 public void onRestoreFile(ParcelFileDescriptor data, long size, File destination, int type,
33 long mode, long mtime) throws IOException {
34 // Remove old files which might contain obsolete attributes like idp_grid_name in shared
35 // preference that will obstruct backup's attribute from writing to shared preferences.
36 if (destination.delete()) {
Charlie Andersonc9d11e82023-08-02 11:41:55 -040037 FileLog.d(TAG, "onRestoreFile: Removed obsolete file " + destination);
Alex Chau29a96ad2022-02-10 13:12:20 +000038 }
39 super.onRestoreFile(data, size, destination, type, mode, mtime);
40 }
41
42 @Override
Sunny Goyalc190dbf2016-05-05 14:37:05 -070043 public void onBackup(
44 ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) {
45 // Doesn't do incremental backup/restore
46 }
47
48 @Override
49 public void onRestoreFinished() {
Charlie Andersonc9d11e82023-08-02 11:41:55 -040050 FileLog.d(TAG, "onRestoreFinished: set pending for RestoreDbTask");
Sunny Goyal68031ca2021-08-02 12:23:44 -070051 RestoreDbTask.setPending(this);
Sunny Goyalc190dbf2016-05-05 14:37:05 -070052 }
53}