Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 775b0d21 authored by Pinyao Ting's avatar Pinyao Ting Committed by Android (Google) Code Review
Browse files

Merge "Explicit Nullbility in Launcher (Part 2)" into tm-qpr-dev

parents f9d1b193 023b973d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;

import androidx.annotation.NonNull;

import com.android.launcher3.LauncherSettings;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
@@ -33,11 +35,13 @@ public class InstantAppItemInfo extends AppInfo {
        this.componentName = new ComponentName(packageName, COMPONENT_CLASS_MARKER);
    }

    @NonNull
    @Override
    public ComponentName getTargetComponent() {
        return componentName;
    }

    @NonNull
    @Override
    public WorkspaceItemInfo makeWorkspaceItem(Context context) {
        WorkspaceItemInfo workspaceItemInfo = super.makeWorkspaceItem(context);
+10 −4
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserHandle;

import androidx.annotation.NonNull;

import com.android.launcher3.icons.cache.CachingLogic;

public interface ComponentWithLabel {
@@ -42,22 +44,26 @@ public interface ComponentWithLabel {
        }

        @Override
        public ComponentName getComponent(T object) {
        @NonNull
        public ComponentName getComponent(@NonNull T object) {
            return object.getComponent();
        }

        @NonNull
        @Override
        public UserHandle getUser(T object) {
        public UserHandle getUser(@NonNull T object) {
            return object.getUser();
        }

        @NonNull
        @Override
        public CharSequence getLabel(T object) {
        public CharSequence getLabel(@NonNull T object) {
            return object.getLabel(mPackageManager);
        }

        @NonNull
        @Override
        public BitmapInfo loadIcon(Context context, T object) {
        public BitmapInfo loadIcon(@NonNull Context context, @NonNull T object) {
            return BitmapInfo.LOW_RES_INFO;
        }

+2 −1
Original line number Diff line number Diff line
@@ -41,7 +41,8 @@ public interface ComponentWithLabelAndIcon extends ComponentWithLabel {

        @NonNull
        @Override
        public BitmapInfo loadIcon(Context context, ComponentWithLabelAndIcon object) {
        public BitmapInfo loadIcon(@NonNull Context context,
                @NonNull ComponentWithLabelAndIcon object) {
            Drawable d = object.getFullResIcon(LauncherAppState.getInstance(context)
                    .getIconCache());
            if (d == null) {
+15 −6
Original line number Diff line number Diff line
@@ -118,15 +118,16 @@ public class IconCache extends BaseIconCache {
    }

    @Override
    protected long getSerialNumberForUser(UserHandle user) {
    protected long getSerialNumberForUser(@NonNull UserHandle user) {
        return mUserManager.getSerialNumberForUser(user);
    }

    @Override
    protected boolean isInstantApp(ApplicationInfo info) {
    protected boolean isInstantApp(@NonNull ApplicationInfo info) {
        return mInstantAppResolver.isInstantApp(info);
    }

    @NonNull
    @Override
    public BaseIconFactory getIconFactory() {
        return LauncherIcons.obtain(mContext);
@@ -135,7 +136,8 @@ public class IconCache extends BaseIconCache {
    /**
     * Updates the entries related to the given package in memory and persistent DB.
     */
    public synchronized void updateIconsForPkg(String packageName, UserHandle user) {
    public synchronized void updateIconsForPkg(@NonNull final String packageName,
            @NonNull final UserHandle user) {
        removeIconsForPkg(packageName, user);
        try {
            PackageInfo info = mPackageManager.getPackageInfo(packageName,
@@ -471,7 +473,7 @@ public class IconCache extends BaseIconCache {
     * Fill in {@param infoInOut} with the corresponding icon and label.
     */
    public synchronized void getTitleAndIconForApp(
            PackageItemInfo infoInOut, boolean useLowResIcon) {
            @NonNull final PackageItemInfo infoInOut, final boolean useLowResIcon) {
        CacheEntry entry = getEntryForPackageLocked(
                infoInOut.packageName, infoInOut.user, useLowResIcon);
        applyCacheEntry(entry, infoInOut);
@@ -510,10 +512,16 @@ public class IconCache extends BaseIconCache {
        return bitmap.withFlags(getUserFlagOpLocked(user));
    }

    protected void applyCacheEntry(CacheEntry entry, ItemInfoWithIcon info) {
    protected void applyCacheEntry(@NonNull final CacheEntry entry,
            @NonNull final ItemInfoWithIcon info) {
        info.title = Utilities.trim(entry.title);
        info.contentDescription = entry.contentDescription;
        info.bitmap = (entry.bitmap == null) ? getDefaultIcon(info.user) : entry.bitmap;
        info.bitmap = entry.bitmap;
        if (entry.bitmap == null) {
            // TODO: entry.bitmap can never be null, so this should not happen at all.
            Log.wtf(TAG, "Cannot find bitmap from the cache, default icon was loaded.");
            info.bitmap = getDefaultIcon(info.user);
        }
    }

    public Drawable getFullResIcon(LauncherActivityInfo info) {
@@ -526,6 +534,7 @@ public class IconCache extends BaseIconCache {
    }

    @Override
    @NonNull
    protected String getIconSystemState(String packageName) {
        return mIconProvider.getSystemStateForPackage(mSystemState, packageName);
    }
+10 −4
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.content.Context;
import android.content.pm.LauncherActivityInfo;
import android.os.UserHandle;

import androidx.annotation.NonNull;

import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
import com.android.launcher3.icons.BaseIconFactory.IconOptions;
@@ -40,23 +42,27 @@ public class LauncherActivityCachingLogic
                R.string.launcher_activity_logic_class);
    }

    @NonNull
    @Override
    public ComponentName getComponent(LauncherActivityInfo object) {
    public ComponentName getComponent(@NonNull LauncherActivityInfo object) {
        return object.getComponentName();
    }

    @NonNull
    @Override
    public UserHandle getUser(LauncherActivityInfo object) {
    public UserHandle getUser(@NonNull LauncherActivityInfo object) {
        return object.getUser();
    }

    @NonNull
    @Override
    public CharSequence getLabel(LauncherActivityInfo object) {
    public CharSequence getLabel(@NonNull LauncherActivityInfo object) {
        return object.getLabel();
    }

    @NonNull
    @Override
    public BitmapInfo loadIcon(Context context, LauncherActivityInfo object) {
    public BitmapInfo loadIcon(@NonNull Context context, @NonNull LauncherActivityInfo object) {
        try (LauncherIcons li = LauncherIcons.obtain(context)) {
            return li.createBadgedIconBitmap(LauncherAppState.getInstance(context)
                            .getIconProvider().getIcon(object, li.mFillResIconDpi),
Loading