diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 12d88df7d9..c2871906e1 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -332,7 +332,7 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo .map(info -> info.suggestedFolderNames) .map(folderNames -> (FolderNameInfo[]) folderNames .getParcelableArrayExtra(FolderInfo.EXTRA_FOLDER_SUGGESTIONS)) - .ifPresent(nameInfos -> showLabelSuggestions(nameInfos)); + .ifPresent(this::showLabelSuggestions); } mFolderName.setHint(""); mIsEditingName = true; @@ -1450,7 +1450,7 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo if (hasFocus) { startEditingFolderName(); } else { - logEditFolderLabel(); + logCurrentFolderLabelState(); mFolderName.dispatchBackKey(); } } @@ -1649,7 +1649,7 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo return mContent; } - private void logEditFolderLabel() { + protected void logCurrentFolderLabelState() { LauncherEvent launcherEvent = LauncherEvent.newBuilder() .setAction(Action.newBuilder().setType(Action.Type.SOFT_KEYBOARD)) .addSrcTarget(newEditTextTargetBuilder() diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java index 96bdc2ad2a..7fc6d5489c 100644 --- a/src/com/android/launcher3/folder/FolderIcon.java +++ b/src/com/android/launcher3/folder/FolderIcon.java @@ -416,6 +416,7 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel mPreviewItemManager.hidePreviewItem(finalIndex, false); mFolder.showItem(item); setLabelSuggestion(nameInfos); + mFolder.logCurrentFolderLabelState(); invalidate(); }, DROP_IN_ANIMATION_DURATION); } @@ -438,7 +439,6 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel onTitleChanged(mInfo.title); mFolder.mFolderName.setText(mInfo.title); mFolder.mLauncher.getModelWriter().updateItemInDatabase(mInfo); - // TODO: Add logging while folder creation. } diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java index bd843e77c9..14f9a3e6d1 100644 --- a/src/com/android/launcher3/model/data/ItemInfo.java +++ b/src/com/android/launcher3/model/data/ItemInfo.java @@ -37,6 +37,8 @@ import com.android.launcher3.Workspace; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.util.ContentWriter; +import java.util.Optional; + /** * Represents an item in the launcher. */ @@ -248,24 +250,29 @@ public class ItemInfo { LauncherAtom.ItemInfo.Builder itemBuilder = LauncherAtom.ItemInfo.newBuilder(); itemBuilder.setIsWork(user != Process.myUserHandle()); - ComponentName cn = getTargetComponent(); + Optional nullableComponent = Optional.ofNullable(getTargetComponent()); switch (itemType) { case ITEM_TYPE_APPLICATION: - itemBuilder.setApplication(LauncherAtom.Application.newBuilder() - .setComponentName(cn.flattenToShortString()) - .setPackageName(cn.getPackageName())); + itemBuilder + .setApplication(nullableComponent + .map(component -> LauncherAtom.Application.newBuilder() + .setComponentName(component.flattenToShortString()) + .setPackageName(component.getPackageName())) + .orElse(LauncherAtom.Application.newBuilder())); break; case ITEM_TYPE_DEEP_SHORTCUT: case ITEM_TYPE_SHORTCUT: - itemBuilder.setShortcut(LauncherAtom.Shortcut.newBuilder() - .setShortcutName(cn.flattenToShortString())); + itemBuilder + .setShortcut(nullableComponent + .map(component -> LauncherAtom.Shortcut.newBuilder() + .setShortcutName(component.flattenToShortString())) + .orElse(LauncherAtom.Shortcut.newBuilder())); break; case ITEM_TYPE_APPWIDGET: setItemBuilder(itemBuilder); break; default: break; - } if (fInfo != null) { LauncherAtom.FolderContainer.Builder folderBuilder =