Merge "AudioService: update display rotation monitoring" into tm-dev am: abcff90b23
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18806553 Change-Id: I865cdb37724dcf3bac1be15e17d1fd4e99b2cf50 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -20,12 +20,13 @@ import android.content.Context;
|
|||||||
import android.hardware.devicestate.DeviceStateManager;
|
import android.hardware.devicestate.DeviceStateManager;
|
||||||
import android.hardware.devicestate.DeviceStateManager.FoldStateListener;
|
import android.hardware.devicestate.DeviceStateManager.FoldStateListener;
|
||||||
import android.hardware.display.DisplayManager;
|
import android.hardware.display.DisplayManager;
|
||||||
|
import android.hardware.display.DisplayManagerGlobal;
|
||||||
import android.media.AudioSystem;
|
import android.media.AudioSystem;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerExecutor;
|
import android.os.HandlerExecutor;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Display;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to handle device rotation events for AudioService, and forward device rotation
|
* Class to handle device rotation events for AudioService, and forward device rotation
|
||||||
@@ -48,6 +49,8 @@ class RotationHelper {
|
|||||||
|
|
||||||
private static final String TAG = "AudioService.RotationHelper";
|
private static final String TAG = "AudioService.RotationHelper";
|
||||||
|
|
||||||
|
private static final boolean DEBUG_ROTATION = false;
|
||||||
|
|
||||||
private static AudioDisplayListener sDisplayListener;
|
private static AudioDisplayListener sDisplayListener;
|
||||||
private static FoldStateListener sFoldStateListener;
|
private static FoldStateListener sFoldStateListener;
|
||||||
|
|
||||||
@@ -98,8 +101,8 @@ class RotationHelper {
|
|||||||
// Even though we're responding to device orientation events,
|
// Even though we're responding to device orientation events,
|
||||||
// use display rotation so audio stays in sync with video/dialogs
|
// use display rotation so audio stays in sync with video/dialogs
|
||||||
// TODO(b/148458001): Support multi-display
|
// TODO(b/148458001): Support multi-display
|
||||||
int newRotation = ((WindowManager) sContext.getSystemService(
|
int newRotation = DisplayManagerGlobal.getInstance()
|
||||||
Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
|
.getDisplayInfo(Display.DEFAULT_DISPLAY).rotation;
|
||||||
synchronized(sRotationLock) {
|
synchronized(sRotationLock) {
|
||||||
if (newRotation != sDeviceRotation) {
|
if (newRotation != sDeviceRotation) {
|
||||||
sDeviceRotation = newRotation;
|
sDeviceRotation = newRotation;
|
||||||
@@ -109,7 +112,9 @@ class RotationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void publishRotation(int rotation) {
|
private static void publishRotation(int rotation) {
|
||||||
Log.v(TAG, "publishing device rotation =" + rotation + " (x90deg)");
|
if (DEBUG_ROTATION) {
|
||||||
|
Log.i(TAG, "publishing device rotation =" + rotation + " (x90deg)");
|
||||||
|
}
|
||||||
switch (rotation) {
|
switch (rotation) {
|
||||||
case Surface.ROTATION_0:
|
case Surface.ROTATION_0:
|
||||||
AudioSystem.setParameters("rotation=0");
|
AudioSystem.setParameters("rotation=0");
|
||||||
@@ -159,6 +164,9 @@ class RotationHelper {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisplayChanged(int displayId) {
|
public void onDisplayChanged(int displayId) {
|
||||||
|
if (DEBUG_ROTATION) {
|
||||||
|
Log.i(TAG, "onDisplayChanged diplayId:" + displayId);
|
||||||
|
}
|
||||||
updateOrientation();
|
updateOrientation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user