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

Commit 68f76d71 authored by mattsziklay's avatar mattsziklay
Browse files

Enable app name/icon fetch on work profile apps.

Previously, apps that are exclusive to work profiles would not have
their app name or icon show up. This has been fixed by getting the
application info through mTaskInfo rather than loading it through
PackageManager.

Bug: 319523047
Test: Manual; confirm work profile exclusive apps now have their details
loaded and that other apps are not affected.
Test: atest DesktopModeWindowDecorationTests

Change-Id: I1879e3e64b62556b0f242fa6a73bbc7258831bc7
parent a9d2c1f1
Loading
Loading
Loading
Loading
+9 −17
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.Log;
import android.view.Choreographer;
import android.view.MotionEvent;
import android.view.SurfaceControl;
@@ -392,23 +391,16 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
    }

    private void loadAppInfo() {
        String packageName = mTaskInfo.realActivity.getPackageName();
        PackageManager pm = mContext.getApplicationContext().getPackageManager();
        try {
        final IconProvider provider = new IconProvider(mContext);
            mAppIconDrawable = provider.getIcon(pm.getActivityInfo(mTaskInfo.baseActivity,
                    PackageManager.ComponentInfoFlags.of(0)));
        mAppIconDrawable = provider.getIcon(mTaskInfo.topActivityInfo);
        final Resources resources = mContext.getResources();
        final BaseIconFactory factory = new BaseIconFactory(mContext,
                resources.getDisplayMetrics().densityDpi,
                resources.getDimensionPixelSize(R.dimen.desktop_mode_caption_icon_radius));
        mAppIconBitmap = factory.createScaledBitmap(mAppIconDrawable, MODE_DEFAULT);
            final ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName,
                    PackageManager.ApplicationInfoFlags.of(0));
        final ApplicationInfo applicationInfo = mTaskInfo.topActivityInfo.applicationInfo;
        mAppName = pm.getApplicationLabel(applicationInfo);
        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, "Package not found: " + packageName, e);
        }
    }

    private void closeDragResizeListener() {
+4 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import static org.mockito.Mockito.when;

import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -202,6 +204,8 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
                .setTaskDescriptionBuilder(taskDescriptionBuilder)
                .setVisible(visible)
                .build();
        taskInfo.topActivityInfo = new ActivityInfo();
        taskInfo.topActivityInfo.applicationInfo = new ApplicationInfo();
        taskInfo.realActivity = new ComponentName("com.android.wm.shell.windowdecor",
                "DesktopModeWindowDecorationTests");
        taskInfo.baseActivity = new ComponentName("com.android.wm.shell.windowdecor",