diff --git a/src/com/android/launcher3/PendingAddItemInfo.java b/src/com/android/launcher3/PendingAddItemInfo.java index be994ee138..b7a22fc9b9 100644 --- a/src/com/android/launcher3/PendingAddItemInfo.java +++ b/src/com/android/launcher3/PendingAddItemInfo.java @@ -18,6 +18,7 @@ package com.android.launcher3; import android.content.ComponentName; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.model.data.ItemInfo; @@ -43,6 +44,7 @@ public class PendingAddItemInfo extends ItemInfo { /** * Returns shallow copy of the object. */ + @NonNull @Override public ItemInfo makeShallowCopy() { PendingAddItemInfo itemInfo = new PendingAddItemInfo(); diff --git a/src/com/android/launcher3/model/ItemInstallQueue.java b/src/com/android/launcher3/model/ItemInstallQueue.java index 229bb2d542..69f9b53090 100644 --- a/src/com/android/launcher3/model/ItemInstallQueue.java +++ b/src/com/android/launcher3/model/ItemInstallQueue.java @@ -288,6 +288,7 @@ public class ItemInstallQueue { } @Override + @Nullable public Intent getIntent() { return intent; } diff --git a/src/com/android/launcher3/model/data/AppInfo.java b/src/com/android/launcher3/model/data/AppInfo.java index 24e7dd3c92..34972e71ff 100644 --- a/src/com/android/launcher3/model/data/AppInfo.java +++ b/src/com/android/launcher3/model/data/AppInfo.java @@ -29,6 +29,7 @@ import android.os.UserHandle; import android.os.UserManager; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.launcher3.LauncherSettings; @@ -65,6 +66,7 @@ public class AppInfo extends ItemInfoWithIcon implements WorkspaceItemFactory { } @Override + @Nullable public Intent getIntent() { return intent; } diff --git a/src/com/android/launcher3/model/data/FolderInfo.java b/src/com/android/launcher3/model/data/FolderInfo.java index 8386adbdca..524b769603 100644 --- a/src/com/android/launcher3/model/data/FolderInfo.java +++ b/src/com/android/launcher3/model/data/FolderInfo.java @@ -26,6 +26,7 @@ import static com.android.launcher3.logger.LauncherAtom.Attribute.SUGGESTED_LABE import android.os.Process; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.LauncherSettings; @@ -154,7 +155,7 @@ public class FolderInfo extends ItemInfo { } @Override - public void onAddToDatabase(ContentWriter writer) { + public void onAddToDatabase(@NonNull ContentWriter writer) { super.onAddToDatabase(writer); writer.put(LauncherSettings.Favorites.TITLE, title) .put(LauncherSettings.Favorites.OPTIONS, options); @@ -206,8 +207,9 @@ public class FolderInfo extends ItemInfo { return String.format("%s; labelState=%s", super.dumpProperties(), getLabelState()); } + @NonNull @Override - public LauncherAtom.ItemInfo buildProto(FolderInfo fInfo) { + public LauncherAtom.ItemInfo buildProto(@Nullable FolderInfo fInfo) { FolderIcon.Builder folderIcon = FolderIcon.newBuilder() .setCardinality(contents.size()); if (LabelState.SUGGESTED.equals(getLabelState())) { @@ -261,6 +263,7 @@ public class FolderInfo extends ItemInfo { : LabelState.SUGGESTED; } + @NonNull @Override public ItemInfo makeShallowCopy() { FolderInfo folderInfo = new FolderInfo(); @@ -272,6 +275,7 @@ public class FolderInfo extends ItemInfo { /** * Returns {@link LauncherAtom.FolderIcon} wrapped as {@link LauncherAtom.ItemInfo} for logging. */ + @NonNull @Override public LauncherAtom.ItemInfo buildProto() { return buildProto(null); diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java index 1e8e3cad83..466f63f5d0 100644 --- a/src/com/android/launcher3/model/data/ItemInfo.java +++ b/src/com/android/launcher3/model/data/ItemInfo.java @@ -42,6 +42,7 @@ import android.content.Intent; import android.os.Process; import android.os.UserHandle; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.LauncherSettings; @@ -141,30 +142,34 @@ public class ItemInfo { /** * Title of the item */ + @Nullable public CharSequence title; /** * Content description of the item. */ + @Nullable public CharSequence contentDescription; /** * When the instance is created using {@link #copyFrom}, this field is used to keep track of * original {@link ComponentName}. */ + @Nullable private ComponentName mComponentName; + @NonNull public UserHandle user; public ItemInfo() { user = Process.myUserHandle(); } - protected ItemInfo(ItemInfo info) { + protected ItemInfo(@NonNull final ItemInfo info) { copyFrom(info); } - public void copyFrom(ItemInfo info) { + public void copyFrom(@NonNull final ItemInfo info) { id = info.id; title = info.title; cellX = info.cellX; @@ -182,6 +187,7 @@ public class ItemInfo { mComponentName = info.getTargetComponent(); } + @Nullable public Intent getIntent() { return null; } @@ -209,7 +215,7 @@ public class ItemInfo { : null; } - public void writeToValues(ContentWriter writer) { + public void writeToValues(@NonNull final ContentWriter writer) { writer.put(LauncherSettings.Favorites.ITEM_TYPE, itemType) .put(LauncherSettings.Favorites.CONTAINER, container) .put(LauncherSettings.Favorites.SCREEN, screenId) @@ -220,7 +226,7 @@ public class ItemInfo { .put(LauncherSettings.Favorites.RANK, rank); } - public void readFromValues(ContentValues values) { + public void readFromValues(@NonNull final ContentValues values) { itemType = values.getAsInteger(LauncherSettings.Favorites.ITEM_TYPE); container = values.getAsInteger(LauncherSettings.Favorites.CONTAINER); screenId = values.getAsInteger(LauncherSettings.Favorites.SCREEN); @@ -234,7 +240,7 @@ public class ItemInfo { /** * Write the fields of this item to the DB */ - public void onAddToDatabase(ContentWriter writer) { + public void onAddToDatabase(@NonNull final ContentWriter writer) { if (Workspace.EXTRA_EMPTY_SCREEN_IDS.contains(screenId)) { // We should never persist an item on the extra empty screen. throw new RuntimeException("Screen id should not be extra empty screen: " + screenId); @@ -245,10 +251,12 @@ public class ItemInfo { } @Override + @NonNull public final String toString() { return getClass().getSimpleName() + "(" + dumpProperties() + ")"; } + @NonNull protected String dumpProperties() { return "id=" + id + " type=" + LauncherSettings.Favorites.itemTypeToString(itemType) @@ -288,14 +296,17 @@ public class ItemInfo { /** * Creates {@link LauncherAtom.ItemInfo} with important fields and parent container info. */ + @NonNull public LauncherAtom.ItemInfo buildProto() { return buildProto(null); } /** * Creates {@link LauncherAtom.ItemInfo} with important fields and parent container info. + * @param fInfo */ - public LauncherAtom.ItemInfo buildProto(FolderInfo fInfo) { + @NonNull + public LauncherAtom.ItemInfo buildProto(@Nullable final FolderInfo fInfo) { LauncherAtom.ItemInfo.Builder itemBuilder = getDefaultItemInfoBuilder(); Optional nullableComponent = Optional.ofNullable(getTargetComponent()); switch (itemType) { @@ -373,6 +384,7 @@ public class ItemInfo { return itemBuilder.build(); } + @NonNull protected LauncherAtom.ItemInfo.Builder getDefaultItemInfoBuilder() { LauncherAtom.ItemInfo.Builder itemBuilder = LauncherAtom.ItemInfo.newBuilder(); itemBuilder.setIsWork(!Process.myUserHandle().equals(user)); @@ -383,6 +395,7 @@ public class ItemInfo { /** * Returns {@link ContainerInfo} used when logging this item. */ + @NonNull public ContainerInfo getContainerInfo() { switch (container) { case CONTAINER_HOTSEAT: @@ -447,6 +460,7 @@ public class ItemInfo { * Returns non-AOSP container wrapped by {@link ExtendedContainers} object. Should be overridden * by build variants. */ + @NonNull protected ExtendedContainers getExtendedContainer() { return ExtendedContainers.getDefaultInstance(); } @@ -454,6 +468,7 @@ public class ItemInfo { /** * Returns shallow copy of the object. */ + @NonNull public ItemInfo makeShallowCopy() { ItemInfo itemInfo = new ItemInfo(); itemInfo.copyFrom(this); @@ -463,7 +478,8 @@ public class ItemInfo { /** * Sets the title of the item and writes to DB model if needed. */ - public void setTitle(CharSequence title, ModelWriter modelWriter) { + public void setTitle(@Nullable final CharSequence title, + @Nullable final ModelWriter modelWriter) { this.title = title; } } diff --git a/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java b/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java index e57a895ddd..1fbe04f84d 100644 --- a/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java +++ b/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java @@ -29,6 +29,7 @@ import android.content.Intent; import android.content.res.Resources; import android.os.Process; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.Launcher; @@ -191,7 +192,7 @@ public class LauncherAppWidgetInfo extends ItemInfo { } @Override - public void onAddToDatabase(ContentWriter writer) { + public void onAddToDatabase(@NonNull ContentWriter writer) { super.onAddToDatabase(writer); writer.put(LauncherSettings.Favorites.APPWIDGET_ID, appWidgetId) .put(LauncherSettings.Favorites.APPWIDGET_PROVIDER, providerName.flattenToString()) @@ -283,8 +284,9 @@ public class LauncherAppWidgetInfo extends ItemInfo { } } + @NonNull @Override - public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { + public LauncherAtom.ItemInfo buildProto(@Nullable FolderInfo folderInfo) { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) diff --git a/src/com/android/launcher3/model/data/SearchActionItemInfo.java b/src/com/android/launcher3/model/data/SearchActionItemInfo.java index e879313f5e..04042ea6fa 100644 --- a/src/com/android/launcher3/model/data/SearchActionItemInfo.java +++ b/src/com/android/launcher3/model/data/SearchActionItemInfo.java @@ -24,6 +24,7 @@ import android.graphics.drawable.Icon; import android.os.Process; import android.os.UserHandle; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.launcher3.LauncherAppState; @@ -70,7 +71,7 @@ public class SearchActionItemInfo extends ItemInfoWithIcon implements WorkspaceI } @Override - public void copyFrom(com.android.launcher3.model.data.ItemInfo info) { + public void copyFrom(@NonNull com.android.launcher3.model.data.ItemInfo info) { super.copyFrom(info); SearchActionItemInfo itemInfo = (SearchActionItemInfo) info; this.mFallbackPackageName = itemInfo.mFallbackPackageName; @@ -91,6 +92,7 @@ public class SearchActionItemInfo extends ItemInfoWithIcon implements WorkspaceI } @Override + @Nullable public Intent getIntent() { return mIntent; } @@ -131,8 +133,9 @@ public class SearchActionItemInfo extends ItemInfoWithIcon implements WorkspaceI return new SearchActionItemInfo(this); } + @NonNull @Override - public ItemInfo buildProto(FolderInfo fInfo) { + public ItemInfo buildProto(@Nullable FolderInfo fInfo) { SearchActionItem.Builder itemBuilder = SearchActionItem.newBuilder() .setPackageName(mFallbackPackageName); diff --git a/src/com/android/launcher3/model/data/WorkspaceItemInfo.java b/src/com/android/launcher3/model/data/WorkspaceItemInfo.java index 2b3da335c3..1f16474503 100644 --- a/src/com/android/launcher3/model/data/WorkspaceItemInfo.java +++ b/src/com/android/launcher3/model/data/WorkspaceItemInfo.java @@ -24,6 +24,7 @@ import android.content.pm.ShortcutInfo; import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.android.launcher3.LauncherSettings; import com.android.launcher3.LauncherSettings.Favorites; @@ -130,7 +131,7 @@ public class WorkspaceItemInfo extends ItemInfoWithIcon { } @Override - public void onAddToDatabase(ContentWriter writer) { + public void onAddToDatabase(@NonNull ContentWriter writer) { super.onAddToDatabase(writer); writer.put(Favorites.TITLE, title) .put(Favorites.INTENT, getIntent()) @@ -147,6 +148,7 @@ public class WorkspaceItemInfo extends ItemInfoWithIcon { } @Override + @Nullable public Intent getIntent() { return intent; } diff --git a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java index 470a800366..ccf4b2ea04 100644 --- a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java +++ b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java @@ -19,6 +19,9 @@ import android.appwidget.AppWidgetHostView; import android.content.Context; import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.launcher3.LauncherSettings; import com.android.launcher3.PendingAddItemInfo; import com.android.launcher3.logger.LauncherAtom; @@ -66,8 +69,9 @@ public class PendingAddWidgetInfo extends PendingAddItemInfo { return WidgetSizes.getWidgetSizeOptions(context, componentName, spanX, spanY); } + @NonNull @Override - public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { + public LauncherAtom.ItemInfo buildProto(@Nullable FolderInfo folderInfo) { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() .addItemAttributes(LauncherAppWidgetInfo.getAttribute(sourceContainer))