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

Commit 4b767ff2 authored by Yuhan Zhao's avatar Yuhan Zhao
Browse files

Fixing the bug where secondary lockscreen intent is sent to the admin receiver but no the service.

Bug: 150866056
Bug: 136085151
Test: atest KeyguardUpdateMonitorTest
Change-Id: I27a739f74d3049baa6d40815b9eb72c62e6b0acd
parent 09b95708
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -966,18 +966,21 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        boolean changed = false;

        if (enabled && (oldIntent == null)) {
            Intent intent = new Intent(
                    DevicePolicyManager.ACTION_BIND_SECONDARY_LOCKSCREEN_SERVICE);
            ComponentName profileOwnerComponent =
                    mDevicePolicyManager.getProfileOwnerAsUser(userId);
            intent.setComponent(profileOwnerComponent);
            ComponentName poComponent = mDevicePolicyManager.getProfileOwnerAsUser(userId);
            if (poComponent == null) {
                Log.e(TAG, "No profile owner found for User " + userId);
            } else {
                Intent intent =
                        new Intent(DevicePolicyManager.ACTION_BIND_SECONDARY_LOCKSCREEN_SERVICE)
                                .setPackage(poComponent.getPackageName());
                ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(intent, 0);
            if (resolveInfo != null) {
                Intent newIntent = new Intent();
                newIntent.setComponent(profileOwnerComponent);
                mSecondaryLockscreenRequirement.put(userId, newIntent);
                if (resolveInfo != null && resolveInfo.serviceInfo != null) {
                    Intent launchIntent =
                            new Intent().setComponent(resolveInfo.serviceInfo.getComponentName());
                    mSecondaryLockscreenRequirement.put(userId, launchIntent);
                    changed = true;
                }
            }
        } else if (!enabled && (oldIntent != null)) {
            mSecondaryLockscreenRequirement.put(userId, null);
            changed = true;