Block recent work profile apps content capture

Stop data exposure of work profile by blocking
content capture of recents apps when the work
profile is locked.

Manual testing steps
* Set up work profile
* Set personal and work pattern
* Open work app, enter work pattern and
  verify content capture is possible
* Lock device
* Go to Recents and select already opened
  work app. Verify content capture is not
  possible until work pattern is entered.

Bug: 168802517
Test: manual testing
Change-Id: I3e6ba1d8645335785e8e26cdc895ea9c0017a0fd
This commit is contained in:
Alex Johnston 2021-03-23 13:46:11 +00:00
parent 26311d9850
commit 284aaba153
3 changed files with 5 additions and 4 deletions

View File

@ -78,7 +78,7 @@ public final class TaskOverlayFactoryGo extends TaskOverlayFactory {
}
getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated);
boolean isAllowedByPolicy = thumbnail.isRealSnapshot;
boolean isAllowedByPolicy = mThumbnailView.isRealSnapshot();
getActionsView().setCallbacks(new OverlayUICallbacksGoImpl(isAllowedByPolicy, task));
}

View File

@ -152,7 +152,7 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
if (thumbnail != null) {
getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated);
boolean isAllowedByPolicy = thumbnail.isRealSnapshot;
boolean isAllowedByPolicy = mThumbnailView.isRealSnapshot();
getActionsView().setCallbacks(new OverlayUICallbacksImpl(isAllowedByPolicy, task));
}
}

View File

@ -445,13 +445,14 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
}
/**
* Returns whether the snapshot is real.
* Returns whether the snapshot is real. If the device is locked for the user of the task,
* the snapshot used will be an app-theme generated snapshot instead of a real snapshot.
*/
public boolean isRealSnapshot() {
if (mThumbnailData == null) {
return false;
}
return mThumbnailData.isRealSnapshot;
return mThumbnailData.isRealSnapshot && !mTask.isLocked;
}
// TODO(b/179466077): Remove when proper API is ready.