package com.lody.virtual.server.pm.installer;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
import mirror.android.content.pm.PackageInstaller;
/**
* @author Lody
*/
public class SessionInfo implements Parcelable {
public int sessionId;
public String installerPackageName;
public String resolvedBaseCodePath;
public float progress;
public boolean sealed;
public boolean active;
public int mode;
public long sizeBytes;
public String appPackageName;
public Bitmap appIcon;
public CharSequence appLabel;
public android.content.pm.PackageInstaller.SessionInfo alloc() {
android.content.pm.PackageInstaller.SessionInfo sessionInfo = PackageInstaller.SessionInfo.ctor.newInstance();
PackageInstaller.SessionInfo.sessionId.set(sessionInfo, sessionId);
PackageInstaller.SessionInfo.installerPackageName.set(sessionInfo, installerPackageName);
PackageInstaller.SessionInfo.resolvedBaseCodePath.set(sessionInfo, resolvedBaseCodePath);
PackageInstaller.SessionInfo.progress.set(sessionInfo, progress);
PackageInstaller.SessionInfo.sealed.set(sessionInfo, sealed);
PackageInstaller.SessionInfo.active.set(sessionInfo, active);
PackageInstaller.SessionInfo.mode.set(sessionInfo, mode);
PackageInstaller.SessionInfo.sizeBytes.set(sessionInfo, sizeBytes);
PackageInstaller.SessionInfo.appPackageName.set(sessionInfo, appPackageName);
PackageInstaller.SessionInfo.appIcon.set(sessionInfo, appIcon);
PackageInstaller.SessionInfo.appLabel.set(sessionInfo, appLabel);
return sessionInfo;
}
public static SessionInfo realloc(android.content.pm.PackageInstaller.SessionInfo sessionInfo) {
SessionInfo info = new SessionInfo();
info.sessionId = PackageInstaller.SessionInfo.sessionId.get(sessionInfo);
info.installerPackageName = PackageInstaller.SessionInfo.installerPackageName.get(sessionInfo);
info.resolvedBaseCodePath = PackageInstaller.SessionInfo.resolvedBaseCodePath.get(sessionInfo);
info.progress = PackageInstaller.SessionInfo.progress.get(sessionInfo);
info.sealed = PackageInstaller.SessionInfo.sealed.get(sessionInfo);
info.active = PackageInstaller.SessionInfo.active.get(sessionInfo);
info.mode = PackageInstaller.SessionInfo.mode.get(sessionInfo);
info.sizeBytes = PackageInstaller.SessionInfo.sizeBytes.get(sessionInfo);
info.appPackageName = PackageInstaller.SessionInfo.appPackageName.get(sessionInfo);
info.appIcon = PackageInstaller.SessionInfo.appIcon.get(sessionInfo);
info.appLabel = PackageInstaller.SessionInfo.appLabel.get(sessionInfo);
return info;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.sessionId);
dest.writeString(this.installerPackageName);
dest.writeString(this.resolvedBaseCodePath);
dest.writeFloat(this.progress);
dest.writeByte(this.sealed ? (byte) 1 : (byte) 0);
dest.writeByte(this.active ? (byte) 1 : (byte) 0);
dest.writeInt(this.mode);
dest.writeLong(this.sizeBytes);
dest.writeString(this.appPackageName);
dest.writeParcelable(this.appIcon, flags);
if (appLabel != null) {
dest.writeString(appLabel.toString());
}
}
public SessionInfo() {
}
protected SessionInfo(Parcel in) {
this.sessionId = in.readInt();
this.installerPackageName = in.readString();
this.resolvedBaseCodePath = in.readString();
this.progress = in.readFloat();
this.sealed = in.readByte() != 0;
this.active = in.readByte() != 0;
this.mode = in.readInt();
this.sizeBytes = in.readLong();
this.appPackageName = in.readString();
this.appIcon = in.readParcelable(Bitmap.class.getClassLoader());
this.appLabel = in.readString();
}
public static final Parcelable.Creator<SessionInfo> CREATOR = new Parcelable.Creator<SessionInfo>() {
@Override
public SessionInfo createFromParcel(Parcel source) {
return new SessionInfo(source);
}
@Override
public SessionInfo[] newArray(int size) {
return new SessionInfo[size];
}
};
}