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

Commit d84b3e5a authored by Mina Granic's avatar Mina Granic
Browse files

Rename CameraStateMonitor to simplify interface extraction.

Flag: EXEMPT simple refactoring
Test: atest WmTests:CameraStateMonitorImplTests
Bug: 380840084
Change-Id: I29a3403fc1bba5bb33aba38df645a71372ff9087
parent 6bea7235
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ class AppCompatCameraPolicy {

    @Nullable
    @VisibleForTesting
    final CameraStateMonitor mCameraStateMonitor;
    final CameraStateMonitorImpl 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 CameraStateMonitor(displayContent, wmService.mH);
            mCameraStateMonitor = new CameraStateMonitorImpl(displayContent, wmService.mH);
            mActivityRefresher = new ActivityRefresher(wmService, wmService.mH);
            mDisplayRotationCompatPolicy =
                    needsDisplayRotationCompatPolicy ? new DisplayRotationCompatPolicy(
+4 −4
Original line number Diff line number Diff line
@@ -57,7 +57,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 CameraStateMonitor.CameraCompatStateListener,
final class CameraCompatFreeformPolicy implements CameraStateMonitorImpl.CameraCompatStateListener,
        ActivityRefresher.Evaluator {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraCompatFreeformPolicy" : TAG_WM;

@@ -66,9 +66,9 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa
    @NonNull
    private final ActivityRefresher mActivityRefresher;
    @NonNull
    private final CameraStateMonitor mCameraStateMonitor;
    private final CameraStateMonitorImpl mCameraStateMonitor;

    // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of
    // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, and keeping track of
    // all current camera activities, especially when the camera access is switching from one app to
    // another.
    @Nullable
@@ -80,7 +80,7 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa
    private boolean mIsRunning;

    CameraCompatFreeformPolicy(@NonNull DisplayContent displayContent,
            @NonNull CameraStateMonitor cameraStateMonitor,
            @NonNull CameraStateMonitorImpl 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 CameraStateMonitor {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitor" : TAG_WM;
class CameraStateMonitorImpl {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "CameraStateMonitorImpl" : 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 CameraStateMonitor {
                }
            };

    CameraStateMonitor(@NonNull DisplayContent displayContent, @NonNull Handler handler) {
    CameraStateMonitorImpl(@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;
+6 −5
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 CameraStateMonitor.CameraCompatStateListener,
final class DisplayRotationCompatPolicy implements CameraStateMonitorImpl.CameraCompatStateListener,
        ActivityRefresher.Evaluator {

    @NonNull
@@ -67,11 +67,11 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitor.CameraComp
    @NonNull
    private final WindowManagerService mWmService;
    @NonNull
    private final CameraStateMonitor mCameraStateMonitor;
    private final CameraStateMonitorImpl mCameraStateMonitor;
    @NonNull
    private final ActivityRefresher mActivityRefresher;

    // TODO(b/380840084): Consider moving this to the CameraStateMonitor, and keeping track of
    // TODO(b/380840084): Consider moving this to the CameraStateMonitorImpl, 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 CameraStateMonitor.CameraComp
    private boolean mIsRunning;

    DisplayRotationCompatPolicy(@NonNull DisplayContent displayContent,
            @NonNull CameraStateMonitor cameraStateMonitor,
            @NonNull CameraStateMonitorImpl 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,7 +385,8 @@ final class DisplayRotationCompatPolicy implements CameraStateMonitor.CameraComp

        synchronized (this) {
            // TODO(b/336474959): Once refresh is implemented in `CameraCompatFreeformPolicy`,
            // consider checking this in CameraStateMonitor before notifying the listeners (this).
            // consider checking this in CameraStateMonitorImpl 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 CameraStateMonitor cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy
        final CameraStateMonitorImpl cameraStateMonitor = mDisplayContent.mAppCompatCameraPolicy
                .mCameraStateMonitor;
        spyOn(cameraStateMonitor);
        doReturn(isCameraRunning).when(cameraStateMonitor).isCameraRunningForActivity(any());
Loading