Merge "Omit icons from bulk SessionInfo calls." into oc-dr1-dev
This commit is contained in:
@@ -24,6 +24,7 @@ import android.annotation.SdkConstant;
|
|||||||
import android.annotation.SdkConstant.SdkConstantType;
|
import android.annotation.SdkConstant.SdkConstantType;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
|
import android.app.AppGlobals;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentSender;
|
import android.content.IntentSender;
|
||||||
import android.content.pm.PackageManager.InstallReason;
|
import android.content.pm.PackageManager.InstallReason;
|
||||||
@@ -1355,6 +1356,16 @@ public class PackageInstaller {
|
|||||||
* if unavailable.
|
* if unavailable.
|
||||||
*/
|
*/
|
||||||
public @Nullable Bitmap getAppIcon() {
|
public @Nullable Bitmap getAppIcon() {
|
||||||
|
if (appIcon == null) {
|
||||||
|
// Icon may have been omitted for calls that return bulk session
|
||||||
|
// lists, so try fetching the specific icon.
|
||||||
|
try {
|
||||||
|
appIcon = AppGlobals.getPackageManager().getPackageInstaller()
|
||||||
|
.getSessionInfo(sessionId).appIcon;
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
throw e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
return appIcon;
|
return appIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -848,7 +848,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
|
|||||||
for (int i = 0; i < mSessions.size(); i++) {
|
for (int i = 0; i < mSessions.size(); i++) {
|
||||||
final PackageInstallerSession session = mSessions.valueAt(i);
|
final PackageInstallerSession session = mSessions.valueAt(i);
|
||||||
if (session.userId == userId) {
|
if (session.userId == userId) {
|
||||||
result.add(session.generateInfo());
|
result.add(session.generateInfo(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -866,7 +866,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
|
|||||||
final PackageInstallerSession session = mSessions.valueAt(i);
|
final PackageInstallerSession session = mSessions.valueAt(i);
|
||||||
if (Objects.equals(session.installerPackageName, installerPackageName)
|
if (Objects.equals(session.installerPackageName, installerPackageName)
|
||||||
&& session.userId == userId) {
|
&& session.userId == userId) {
|
||||||
result.add(session.generateInfo());
|
result.add(session.generateInfo(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -288,6 +288,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public SessionInfo generateInfo() {
|
public SessionInfo generateInfo() {
|
||||||
|
return generateInfo(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SessionInfo generateInfo(boolean includeIcon) {
|
||||||
final SessionInfo info = new SessionInfo();
|
final SessionInfo info = new SessionInfo();
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
info.sessionId = sessionId;
|
info.sessionId = sessionId;
|
||||||
@@ -302,7 +306,9 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
|
|||||||
info.installReason = params.installReason;
|
info.installReason = params.installReason;
|
||||||
info.sizeBytes = params.sizeBytes;
|
info.sizeBytes = params.sizeBytes;
|
||||||
info.appPackageName = params.appPackageName;
|
info.appPackageName = params.appPackageName;
|
||||||
info.appIcon = params.appIcon;
|
if (includeIcon) {
|
||||||
|
info.appIcon = params.appIcon;
|
||||||
|
}
|
||||||
info.appLabel = params.appLabel;
|
info.appLabel = params.appLabel;
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
|
|||||||
Reference in New Issue
Block a user