Loading services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class AppCompatCameraPolicy { @Nullable @VisibleForTesting final CameraStateMonitorImpl mCameraStateMonitor; final CameraStateMonitor mCameraStateMonitor; @Nullable @VisibleForTesting final ActivityRefresher mActivityRefresher; Loading @@ -58,7 +58,7 @@ class AppCompatCameraPolicy { DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue() && DesktopModeHelper.canEnterDesktopMode(wmService.mContext); if (needsDisplayRotationCompatPolicy || needsCameraCompatFreeformPolicy) { mCameraStateMonitor = new CameraStateMonitorImpl(displayContent, wmService.mH); mCameraStateMonitor = new CameraStateMonitor(displayContent, wmService.mH); mActivityRefresher = new ActivityRefresher(wmService, wmService.mH); mDisplayRotationCompatPolicy = needsDisplayRotationCompatPolicy ? new DisplayRotationCompatPolicy( Loading services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java +4 −4 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.internal.protolog.WmProtoLogGroups; * changes to the camera and display orientation signals to match those expected on a portrait * device in that orientation (for example, on a standard phone). */ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraCompatStateListener, final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompatStateListener, ActivityRefresher.Evaluator { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraCompatFreeformPolicy" : TAG_WM; Loading @@ -67,9 +67,9 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraC @NonNull private final ActivityRefresher mActivityRefresher; @NonNull private final CameraStateMonitorImpl mCameraStateMonitor; private final CameraStateMonitor mCameraStateMonitor; // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, and keeping track of // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of // all current camera activities, especially when the camera access is switching from one app to // another. @Nullable Loading @@ -81,7 +81,7 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraC private boolean mIsRunning; CameraCompatFreeformPolicy(@NonNull DisplayContent displayContent, @NonNull CameraStateMonitorImpl cameraStateMonitor, @NonNull CameraStateMonitor cameraStateMonitor, @NonNull ActivityRefresher activityRefresher) { mDisplayContent = displayContent; mCameraStateMonitor = cameraStateMonitor; Loading services/core/java/com/android/server/wm/CameraStateMonitorImpl.java→services/core/java/com/android/server/wm/CameraStateMonitor.java +3 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ import java.util.Set; * Class that listens to camera open/closed signals, keeps track of the current apps using camera, * and notifies listeners. */ class CameraStateMonitorImpl { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitorImpl" : TAG_WM; class CameraStateMonitor { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitor" : TAG_WM; // Delay for updating letterbox after Camera connection is closed. Needed to avoid flickering // when an app is flipping between front and rear cameras or when size compat mode is restarted. Loading Loading @@ -100,7 +100,7 @@ class CameraStateMonitorImpl { } }; CameraStateMonitorImpl(@NonNull DisplayContent displayContent, @NonNull Handler handler) { CameraStateMonitor(@NonNull DisplayContent displayContent, @NonNull Handler handler) { // This constructor is called from DisplayContent constructor. Don't use any fields in // DisplayContent here since they aren't guaranteed to be set. mHandler = handler; Loading services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java +5 −6 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ import com.android.window.flags.Flags; * R.bool.config_isWindowManagerCameraCompatTreatmentEnabled} is {@code true}. */ // TODO(b/261444714): Consider moving Camera-specific logic outside of the WM Core path final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.CameraCompatStateListener, final class DisplayRotationCompatPolicy implements CameraStateMonitor.CameraCompatStateListener, ActivityRefresher.Evaluator { @NonNull Loading @@ -67,11 +67,11 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera @NonNull private final WindowManagerService mWmService; @NonNull private final CameraStateMonitorImpl mCameraStateMonitor; private final CameraStateMonitor mCameraStateMonitor; @NonNull private final ActivityRefresher mActivityRefresher; // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, and keeping track of // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of // all current camera activities, especially when the camera access is switching from one app to // another. @Nullable Loading @@ -86,7 +86,7 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera private boolean mIsRunning; DisplayRotationCompatPolicy(@NonNull DisplayContent displayContent, @NonNull CameraStateMonitorImpl cameraStateMonitor, @NonNull CameraStateMonitor cameraStateMonitor, @NonNull ActivityRefresher activityRefresher) { // This constructor is called from DisplayContent constructor. Don't use any fields in // DisplayContent here since they aren't guaranteed to be set. Loading Loading @@ -385,8 +385,7 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera synchronized (this) { // TODO(b/336474959): Once refresh is implemented in `CameraCompatFreeformPolicy`, // consider checking this in CameraStateMonitorImpl before notifying the listeners // (this). // consider checking this in CameraStateMonitor before notifying the listeners (this). if (isActivityForCameraIdRefreshing(topActivity, cameraId)) { ProtoLog.v(WM_DEBUG_ORIENTATION, "Display id=%d is notified that camera is closed but activity is" Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -3529,7 +3529,7 @@ public class ActivityRecordTests extends WindowTestsBase { // Create a new DisplayContent so that the flag values create the camera freeform policy. mDisplayContent = new TestDisplayContent.Builder(mAtm, mDisplayContent.getSurfaceWidth(), mDisplayContent.getSurfaceHeight()).build(); final CameraStateMonitorImpl cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy final CameraStateMonitor cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy .mCameraStateMonitor; spyOn(cameraStateMonitor); doReturn(isCameraRunning).when(cameraStateMonitor).isCameraRunningForActivity(any()); Loading Loading
services/core/java/com/android/server/wm/AppCompatCameraPolicy.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ class AppCompatCameraPolicy { @Nullable @VisibleForTesting final CameraStateMonitorImpl mCameraStateMonitor; final CameraStateMonitor mCameraStateMonitor; @Nullable @VisibleForTesting final ActivityRefresher mActivityRefresher; Loading @@ -58,7 +58,7 @@ class AppCompatCameraPolicy { DesktopModeFlags.ENABLE_CAMERA_COMPAT_SIMULATE_REQUESTED_ORIENTATION.isTrue() && DesktopModeHelper.canEnterDesktopMode(wmService.mContext); if (needsDisplayRotationCompatPolicy || needsCameraCompatFreeformPolicy) { mCameraStateMonitor = new CameraStateMonitorImpl(displayContent, wmService.mH); mCameraStateMonitor = new CameraStateMonitor(displayContent, wmService.mH); mActivityRefresher = new ActivityRefresher(wmService, wmService.mH); mDisplayRotationCompatPolicy = needsDisplayRotationCompatPolicy ? new DisplayRotationCompatPolicy( Loading
services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java +4 −4 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ import com.android.internal.protolog.WmProtoLogGroups; * changes to the camera and display orientation signals to match those expected on a portrait * device in that orientation (for example, on a standard phone). */ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraCompatStateListener, final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompatStateListener, ActivityRefresher.Evaluator { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraCompatFreeformPolicy" : TAG_WM; Loading @@ -67,9 +67,9 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraC @NonNull private final ActivityRefresher mActivityRefresher; @NonNull private final CameraStateMonitorImpl mCameraStateMonitor; private final CameraStateMonitor mCameraStateMonitor; // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, and keeping track of // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of // all current camera activities, especially when the camera access is switching from one app to // another. @Nullable Loading @@ -81,7 +81,7 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraC private boolean mIsRunning; CameraCompatFreeformPolicy(@NonNull DisplayContent displayContent, @NonNull CameraStateMonitorImpl cameraStateMonitor, @NonNull CameraStateMonitor cameraStateMonitor, @NonNull ActivityRefresher activityRefresher) { mDisplayContent = displayContent; mCameraStateMonitor = cameraStateMonitor; Loading
services/core/java/com/android/server/wm/CameraStateMonitorImpl.java→services/core/java/com/android/server/wm/CameraStateMonitor.java +3 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ import java.util.Set; * Class that listens to camera open/closed signals, keeps track of the current apps using camera, * and notifies listeners. */ class CameraStateMonitorImpl { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitorImpl" : TAG_WM; class CameraStateMonitor { private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitor" : TAG_WM; // Delay for updating letterbox after Camera connection is closed. Needed to avoid flickering // when an app is flipping between front and rear cameras or when size compat mode is restarted. Loading Loading @@ -100,7 +100,7 @@ class CameraStateMonitorImpl { } }; CameraStateMonitorImpl(@NonNull DisplayContent displayContent, @NonNull Handler handler) { CameraStateMonitor(@NonNull DisplayContent displayContent, @NonNull Handler handler) { // This constructor is called from DisplayContent constructor. Don't use any fields in // DisplayContent here since they aren't guaranteed to be set. mHandler = handler; Loading
services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java +5 −6 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ import com.android.window.flags.Flags; * R.bool.config_isWindowManagerCameraCompatTreatmentEnabled} is {@code true}. */ // TODO(b/261444714): Consider moving Camera-specific logic outside of the WM Core path final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.CameraCompatStateListener, final class DisplayRotationCompatPolicy implements CameraStateMonitor.CameraCompatStateListener, ActivityRefresher.Evaluator { @NonNull Loading @@ -67,11 +67,11 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera @NonNull private final WindowManagerService mWmService; @NonNull private final CameraStateMonitorImpl mCameraStateMonitor; private final CameraStateMonitor mCameraStateMonitor; @NonNull private final ActivityRefresher mActivityRefresher; // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, and keeping track of // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of // all current camera activities, especially when the camera access is switching from one app to // another. @Nullable Loading @@ -86,7 +86,7 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera private boolean mIsRunning; DisplayRotationCompatPolicy(@NonNull DisplayContent displayContent, @NonNull CameraStateMonitorImpl cameraStateMonitor, @NonNull CameraStateMonitor cameraStateMonitor, @NonNull ActivityRefresher activityRefresher) { // This constructor is called from DisplayContent constructor. Don't use any fields in // DisplayContent here since they aren't guaranteed to be set. Loading Loading @@ -385,8 +385,7 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.Camera synchronized (this) { // TODO(b/336474959): Once refresh is implemented in `CameraCompatFreeformPolicy`, // consider checking this in CameraStateMonitorImpl before notifying the listeners // (this). // consider checking this in CameraStateMonitor before notifying the listeners (this). if (isActivityForCameraIdRefreshing(topActivity, cameraId)) { ProtoLog.v(WM_DEBUG_ORIENTATION, "Display id=%d is notified that camera is closed but activity is" Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -3529,7 +3529,7 @@ public class ActivityRecordTests extends WindowTestsBase { // Create a new DisplayContent so that the flag values create the camera freeform policy. mDisplayContent = new TestDisplayContent.Builder(mAtm, mDisplayContent.getSurfaceWidth(), mDisplayContent.getSurfaceHeight()).build(); final CameraStateMonitorImpl cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy final CameraStateMonitor cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy .mCameraStateMonitor; spyOn(cameraStateMonitor); doReturn(isCameraRunning).when(cameraStateMonitor).isCameraRunningForActivity(any()); Loading