Loading services/core/java/com/android/server/wm/ActivityRecord.java +2 −1 Original line number Diff line number Diff line Loading @@ -1675,7 +1675,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A static int getLockTaskLaunchMode(ActivityInfo aInfo, @Nullable ActivityOptions options) { int lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (aInfo.applicationInfo.isPrivilegedApp() // Non-priv apps are not allowed to use always or never, fall back to default if (!aInfo.applicationInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +31 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,10 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION; import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_ALLOWLISTED; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; Loading Loading @@ -69,10 +73,8 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import android.app.ActivityManager.TaskSnapshot; Loading @@ -84,6 +86,7 @@ import android.app.servertransaction.PauseActivityItem; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Rect; Loading Loading @@ -1685,6 +1688,32 @@ public class ActivityRecordTests extends WindowTestsBase { assertFalse(mActivity.canTurnScreenOn()); } @Test public void testGetLockTaskLaunchMode() { final ActivityOptions options = ActivityOptions.makeBasic().setLockTaskEnabled(true); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; assertEquals(LOCK_TASK_LAUNCH_MODE_IF_ALLOWLISTED, ActivityRecord.getLockTaskLaunchMode(mActivity.info, options)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_ALWAYS; assertEquals(LOCK_TASK_LAUNCH_MODE_DEFAULT, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_NEVER; assertEquals(LOCK_TASK_LAUNCH_MODE_DEFAULT, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.applicationInfo.privateFlags |= ApplicationInfo.PRIVATE_FLAG_PRIVILEGED; mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_ALWAYS; assertEquals(LOCK_TASK_LAUNCH_MODE_ALWAYS, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_NEVER; assertEquals(LOCK_TASK_LAUNCH_MODE_NEVER, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); } /** * Creates an activity on display. For non-default display request it will also create a new * display with custom DisplayInfo. Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +2 −1 Original line number Diff line number Diff line Loading @@ -1675,7 +1675,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A static int getLockTaskLaunchMode(ActivityInfo aInfo, @Nullable ActivityOptions options) { int lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (aInfo.applicationInfo.isPrivilegedApp() // Non-priv apps are not allowed to use always or never, fall back to default if (!aInfo.applicationInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +31 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,10 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION; import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_ALLOWLISTED; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; Loading Loading @@ -69,10 +73,8 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import android.app.ActivityManager.TaskSnapshot; Loading @@ -84,6 +86,7 @@ import android.app.servertransaction.PauseActivityItem; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Rect; Loading Loading @@ -1685,6 +1688,32 @@ public class ActivityRecordTests extends WindowTestsBase { assertFalse(mActivity.canTurnScreenOn()); } @Test public void testGetLockTaskLaunchMode() { final ActivityOptions options = ActivityOptions.makeBasic().setLockTaskEnabled(true); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; assertEquals(LOCK_TASK_LAUNCH_MODE_IF_ALLOWLISTED, ActivityRecord.getLockTaskLaunchMode(mActivity.info, options)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_ALWAYS; assertEquals(LOCK_TASK_LAUNCH_MODE_DEFAULT, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_NEVER; assertEquals(LOCK_TASK_LAUNCH_MODE_DEFAULT, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.applicationInfo.privateFlags |= ApplicationInfo.PRIVATE_FLAG_PRIVILEGED; mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_ALWAYS; assertEquals(LOCK_TASK_LAUNCH_MODE_ALWAYS, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); mActivity.info.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_NEVER; assertEquals(LOCK_TASK_LAUNCH_MODE_NEVER, ActivityRecord.getLockTaskLaunchMode(mActivity.info, null /*options*/)); } /** * Creates an activity on display. For non-default display request it will also create a new * display with custom DisplayInfo. Loading