Merge "Add logging to help debug invalid icon state and UI." into sc-v2-dev am: f4f17df565

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15830460

Change-Id: I69648282f1134a7a04bbb49c66aa402564618216
This commit is contained in:
Schneider Victor-tulias
2021-09-22 19:45:38 +00:00
committed by Automerger Merge Worker
3 changed files with 32 additions and 8 deletions
@@ -21,7 +21,6 @@ import android.content.pm.PackageManager;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;
import com.android.launcher3.model.data.LauncherAppWidgetInfo;
import com.android.launcher3.pm.PackageInstallInfo;
import com.android.launcher3.util.InstantAppResolver;
@@ -73,13 +72,7 @@ public class PackageInstallStateChangedTask extends BaseModelUpdateTask {
dataModel.forAllWorkspaceItemInfos(mInstallInfo.user, si -> {
if (si.hasPromiseIconUi()
&& mInstallInfo.packageName.equals(si.getTargetPackage())) {
int installProgress = mInstallInfo.progress;
si.setProgressLevel(installProgress, PackageInstallInfo.STATUS_INSTALLING);
if (mInstallInfo.state == PackageInstallInfo.STATUS_FAILED) {
// Mark this info as broken.
si.runtimeStatusFlags &= ~ItemInfoWithIcon.FLAG_INSTALL_SESSION_ACTIVE;
}
si.setProgressLevel(mInstallInfo);
updates.add(si);
}
});
@@ -24,6 +24,7 @@ import androidx.annotation.Nullable;
import com.android.launcher3.icons.BitmapInfo;
import com.android.launcher3.icons.FastBitmapDrawable;
import com.android.launcher3.logging.FileLog;
import com.android.launcher3.pm.PackageInstallInfo;
import com.android.launcher3.util.PackageManagerHelper;
@@ -179,6 +180,12 @@ public abstract class ItemInfoWithIcon extends ItemInfo {
*/
public void setProgressLevel(PackageInstallInfo installInfo) {
setProgressLevel(installInfo.progress, installInfo.state);
if (installInfo.state == PackageInstallInfo.STATUS_FAILED) {
FileLog.d(TAG,
"Icon info: " + this + " marked broken with install info: " + installInfo,
new Exception());
}
}
/**
@@ -57,4 +57,28 @@ public final class PackageInstallInfo {
public static PackageInstallInfo fromState(int state, String packageName, UserHandle user) {
return new PackageInstallInfo(packageName, state, 0 /* progress */, user);
}
@Override
public String toString() {
return getClass().getSimpleName() + "(" + dumpProperties() + ")";
}
private String dumpProperties() {
return "componentName=" + componentName
+ "packageName=" + packageName
+ " state=" + stateToString()
+ " progress=" + progress
+ " user=" + user;
}
private String stateToString() {
switch (state) {
case STATUS_INSTALLED : return "STATUS_INSTALLED";
case STATUS_INSTALLING : return "STATUS_INSTALLING";
case STATUS_INSTALLED_DOWNLOADING : return "STATUS_INSTALLED_DOWNLOADING";
case STATUS_FAILED : return "STATUS_FAILED";
default : return "INVALID STATE";
}
}
}