blob: 93ce00d8f97385c0d57b49118e2658168aac1d38 [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
*/
package com.android.server.backup.params;
import android.app.backup.IBackupManagerMonitor;
import android.app.backup.IRestoreObserver;
import android.content.pm.PackageInfo;
import com.android.internal.backup.IBackupTransport;
public class RestoreParams {
public IBackupTransport transport;
public String dirName;
public IRestoreObserver observer;
public IBackupManagerMonitor monitor;
public long token;
public PackageInfo pkgInfo;
public int pmToken; // in post-install restore, the PM's token for this transaction
public boolean isSystemRestore;
public String[] filterSet;
/**
* Restore a single package; no kill after restore
*/
public RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
IBackupManagerMonitor _monitor, long _token, PackageInfo _pkg) {
transport = _transport;
dirName = _dirName;
observer = _obs;
monitor = _monitor;
token = _token;
pkgInfo = _pkg;
pmToken = 0;
isSystemRestore = false;
filterSet = null;
}
/**
* Restore at install: PM token needed, kill after restore
*/
public RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
IBackupManagerMonitor _monitor, long _token, String _pkgName, int _pmToken) {
transport = _transport;
dirName = _dirName;
observer = _obs;
monitor = _monitor;
token = _token;
pkgInfo = null;
pmToken = _pmToken;
isSystemRestore = false;
filterSet = new String[]{_pkgName};
}
/**
* Restore everything possible. This is the form that Setup Wizard or similar
* restore UXes use.
*/
public RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
IBackupManagerMonitor _monitor, long _token) {
transport = _transport;
dirName = _dirName;
observer = _obs;
monitor = _monitor;
token = _token;
pkgInfo = null;
pmToken = 0;
isSystemRestore = true;
filterSet = null;
}
/**
* Restore some set of packages. Leave this one up to the caller to specify
* whether it's to be considered a system-level restore.
*/
public RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
IBackupManagerMonitor _monitor, long _token,
String[] _filterSet, boolean _isSystemRestore) {
transport = _transport;
dirName = _dirName;
observer = _obs;
monitor = _monitor;
token = _token;
pkgInfo = null;
pmToken = 0;
isSystemRestore = _isSystemRestore;
filterSet = _filterSet;
}
}