Revert "[pm/incremental] start monitoring progress on storage creation"

This reverts commit 31fa0fc9c1.

Reason for revert: Play data loader doesn't write data to incfs during "Downloading...", so we shouldn't use incfs progress to replace install progress. Reverting this, so that Launcher will display the install progress ring during "Downloading..." using the progress reported from Phonesky.

Change-Id: I124033d725fe488fd337b6ded0bdf319a764b6ca
Merged-In: I124033d725fe488fd337b6ded0bdf319a764b6ca

BUG: 178528778
(cherry picked from commit d0cec52acb)
Change-Id: Ib6637be489e36c78e5074c161d01ac510da5d045
This commit is contained in:
Songchun Fan
2021-01-28 17:00:54 +00:00
parent 116ad8d147
commit 5f47bc6ba1
2 changed files with 4 additions and 28 deletions

View File

@@ -36,7 +36,6 @@ import android.annotation.Nullable;
import android.content.Context;
import android.content.pm.DataLoaderParams;
import android.content.pm.IDataLoaderStatusListener;
import android.content.pm.IPackageLoadingProgressCallback;
import android.content.pm.InstallationFileParcel;
import android.text.TextUtils;
@@ -71,8 +70,7 @@ public final class IncrementalFileStorages {
@Nullable StorageHealthCheckParams healthCheckParams,
@Nullable IStorageHealthListener healthListener,
@NonNull List<InstallationFileParcel> addedFiles,
@NonNull PerUidReadTimeouts[] perUidReadTimeouts,
IPackageLoadingProgressCallback progressCallback) throws IOException {
@NonNull PerUidReadTimeouts[] perUidReadTimeouts) throws IOException {
// TODO(b/136132412): validity check if session should not be incremental
IncrementalManager incrementalManager = (IncrementalManager) context.getSystemService(
Context.INCREMENTAL_SERVICE);
@@ -97,11 +95,7 @@ public final class IncrementalFileStorages {
throw new IOException("Unknown file location: " + file.location);
}
}
// Register progress loading callback after files have been added
if (progressCallback != null) {
incrementalManager.registerLoadingProgressCallback(stageDir.getAbsolutePath(),
progressCallback);
}
result.startLoading();
return result;
@@ -186,7 +180,6 @@ public final class IncrementalFileStorages {
try {
mDefaultStorage.unBind(mStageDir.getAbsolutePath());
mDefaultStorage.unregisterLoadingProgressListener();
} catch (IOException ignored) {
}
mDefaultStorage = null;

View File

@@ -70,7 +70,6 @@ import android.content.pm.IDataLoaderStatusListener;
import android.content.pm.IPackageInstallObserver2;
import android.content.pm.IPackageInstallerSession;
import android.content.pm.IPackageInstallerSessionFileSystemConnector;
import android.content.pm.IPackageLoadingProgressCallback;
import android.content.pm.InstallationFile;
import android.content.pm.InstallationFileParcel;
import android.content.pm.PackageInfo;
@@ -322,8 +321,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
private float mProgress = 0;
@GuardedBy("mLock")
private float mReportedProgress = -1;
@GuardedBy("mLock")
private float mIncrementalProgress = 0;
/** State of the session. */
@GuardedBy("mLock")
@@ -1202,12 +1199,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@GuardedBy("mLock")
private void computeProgressLocked(boolean forcePublish) {
// This method is triggered when the client progress is updated or the incremental progress
// is updated. For incremental installs, ignore the progress values reported from client.
// Instead, only use the progress reported by IncFs as the percentage of loading completion.
final float loadingProgress =
isIncrementalInstallation() ? mIncrementalProgress : mClientProgress;
mProgress = MathUtils.constrain(loadingProgress * 0.8f, 0f, 0.8f)
mProgress = MathUtils.constrain(mClientProgress * 0.8f, 0f, 0.8f)
+ MathUtils.constrain(mInternalProgress * 0.2f, 0f, 0.2f);
// Only publish when meaningful change
@@ -3767,16 +3759,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
try {
mIncrementalFileStorages = IncrementalFileStorages.initialize(mContext, stageDir,
params, statusListener, healthCheckParams, healthListener, addedFiles,
perUidReadTimeouts,
new IPackageLoadingProgressCallback.Stub() {
@Override
public void onPackageLoadingProgressChanged(float progress) {
synchronized (mLock) {
mIncrementalProgress = progress;
computeProgressLocked(true);
}
}
});
perUidReadTimeouts);
return false;
} catch (IOException e) {
throw new PackageManagerException(INSTALL_FAILED_MEDIA_UNAVAILABLE, e.getMessage(),