Merge "Add the isPrivateProfile() method in the SettingsLib" into main
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
index ca3af53..8571360 100644
--- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
@@ -83,6 +83,12 @@
         return userManager.isManagedProfile() && !userManager.isSystemUser();
     }
 
+    /** Returns true if current user is a private profile user. */
+    public static boolean isPrivateProfile(Context context) {
+        final UserManager userManager = context.getSystemService(UserManager.class);
+        return userManager.isPrivateProfile();
+    }
+
     private static Boolean sChargingStringV2Enabled = null;
 
     /** Returns {@code true} if the charging string v2 is enabled. */
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
index 6424352..465798c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
@@ -23,11 +23,11 @@
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.content.Context;
-import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -41,7 +41,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
 import org.robolectric.shadows.ShadowAccessibilityManager;
 
 import java.util.Arrays;
@@ -59,12 +58,15 @@
     private AccessibilityServiceInfo mAccessibilityServiceInfo1;
     @Mock
     private AccessibilityServiceInfo mAccessibilityServiceInfo2;
+    @Mock
+    private UserManager mUserManager;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(ApplicationProvider.getApplicationContext());
         doReturn(mContext).when(mContext).getApplicationContext();
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         mAccessibilityManager = spy(mContext.getSystemService(AccessibilityManager.class));
         mShadowAccessibilityManager = shadowOf(mAccessibilityManager);
         doReturn(mAccessibilityManager).when(mContext)
@@ -108,13 +110,23 @@
 
     @Test
     public void isWorkProfile_workProfileMode_returnTrue() {
-        final UserManager userManager = mContext.getSystemService(UserManager.class);
-        Shadows.shadowOf(userManager).setManagedProfile(true);
-        Shadows.shadowOf(userManager).setIsSystemUser(false);
+        doReturn(true).when(mUserManager).isManagedProfile();
 
         assertThat(BatteryUtils.isWorkProfile(mContext)).isTrue();
     }
 
+    @Test
+    public void isPrivateProfile_defaultValue_returnFalse() {
+        assertThat(BatteryUtils.isPrivateProfile(mContext)).isFalse();
+    }
+
+    @Test
+    public void isPrivateProfile_privateProfileMode_returnTrue() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
+
+        assertThat(BatteryUtils.isPrivateProfile(mContext)).isTrue();
+    }
+
     private void setTtsPackageName(String defaultTtsPackageName) {
         Settings.Secure.putString(mContext.getContentResolver(),
                 Settings.Secure.TTS_DEFAULT_SYNTH, defaultTtsPackageName);