Fix "max failed login attempts" disclosure

Among other things, the managed device info page informs the user when
their administrator sets the "max failed login attempts" policy. This
disclosure does not show up when set by the Device Owner right now
because the code expects it to have been set by a Profile Owner.

This was a regression introduced by ag/2039754.

Bug: 63696536
Test: CTSVerifier: Managed Provisioning > Device Owner Tests >
Test:     Managed device info tests > Wipe on authentication failure

Change-Id: I5c53f325a1acfb98c72178ac9dab78f18f714c51
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
index babf90e..8605b2e 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
@@ -45,6 +45,13 @@
     int getMaximumFailedPasswordsForWipe(@Nullable ComponentName admin, int userHandle);
 
     /**
+     * Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnCallingUser()}.
+     *
+     * @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnCallingUser
+     */
+    ComponentName getDeviceOwnerComponentOnCallingUser();
+
+    /**
      * Calls {@code DevicePolicyManager.getDeviceOwnerComponentOnAnyUser()}.
      *
      * @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnAnyUser
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
index 7906310..e11aaf6 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
@@ -42,6 +42,11 @@
     }
 
     @Override
+    public ComponentName getDeviceOwnerComponentOnCallingUser() {
+        return mDpm.getDeviceOwnerComponentOnCallingUser();
+    }
+
+    @Override
     public ComponentName getDeviceOwnerComponentOnAnyUser() {
         return mDpm.getDeviceOwnerComponentOnAnyUser();
     }
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 46ecb7e..a5e2f3c 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -158,11 +158,14 @@
 
     @Override
     public int getMaximumFailedPasswordsBeforeWipeInCurrentUser() {
-        final ComponentName profileOwner = mDpm.getProfileOwnerAsUser(MY_USER_ID);
-        if (profileOwner == null) {
+        ComponentName owner = mDpm.getDeviceOwnerComponentOnCallingUser();
+        if (owner == null) {
+            owner = mDpm.getProfileOwnerAsUser(MY_USER_ID);
+        }
+        if (owner == null) {
             return 0;
         }
-        return mDpm.getMaximumFailedPasswordsForWipe(profileOwner, MY_USER_ID);
+        return mDpm.getMaximumFailedPasswordsForWipe(owner, MY_USER_ID);
     }
 
     @Override
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
index d506a8e..474b278 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
@@ -231,6 +231,7 @@
 
     @Test
     public void testGetMaximumFailedPasswordsForWipeInCurrentUser() {
+        when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(null);
         when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(null);
         when(mDevicePolicyManager.getMaximumFailedPasswordsForWipe(OWNER, MY_USER_ID))
                 .thenReturn(10);
@@ -238,6 +239,10 @@
 
         when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(OWNER);
         assertThat(mProvider.getMaximumFailedPasswordsBeforeWipeInCurrentUser()).isEqualTo(10);
+
+        when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(OWNER);
+        when(mDevicePolicyManager.getProfileOwnerAsUser(MY_USER_ID)).thenReturn(null);
+        assertThat(mProvider.getMaximumFailedPasswordsBeforeWipeInCurrentUser()).isEqualTo(10);
     }
 
     @Test