Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 943f98a5 authored by Mina Granic's avatar Mina Granic Committed by Android (Google) Code Review
Browse files

Merge "Revert "Rename CameraStateMonitor to simplify interface extraction."" into main

parents cd59bb7a abf23ff3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ class AppCompatCameraPolicy {

    @Nullable
    @VisibleForTesting
    final CameraStateMonitorImpl mCameraStateMonitor;
    final CameraStateMonitor mCameraStateMonitor;
    @Nullable
    @VisibleForTesting
    final ActivityRefresher mActivityRefresher;
@@ -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(
+4 −4
Original line number Diff line number Diff line
@@ -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;

@@ -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
@@ -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;
+3 −3
Original line number Diff line number Diff line
@@ -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.
@@ -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;
+5 −6
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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.
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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