Merge "Add DisplayManager API to query if the device supports seamless refresh rate switching"

This commit is contained in:
Kriti Dang
2023-01-17 19:16:34 +00:00
committed by Android (Google) Code Review
5 changed files with 22 additions and 9 deletions

View File

@@ -12394,7 +12394,6 @@ package android.content.pm {
field public static final String FEATURE_RAM_NORMAL = "android.hardware.ram.normal";
field public static final String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
field public static final String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait";
field public static final String FEATURE_SEAMLESS_REFRESH_RATE_SWITCHING = "android.software.seamless_refresh_rate_switching";
field public static final String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users";
field public static final String FEATURE_SECURE_LOCK_SCREEN = "android.software.secure_lock_screen";
field public static final String FEATURE_SECURITY_MODEL_COMPATIBLE = "android.hardware.security.model.compatible";

View File

@@ -3010,14 +3010,6 @@ public abstract class PackageManager {
public static final String FEATURE_VIRTUALIZATION_FRAMEWORK =
"android.software.virtualization_framework";
/**
* Feature for {@link #getSystemAvailableFeatures()} and {@link #hasSystemFeature(String)}.
* This feature indicates whether device supports seamless refresh rate switching.
*/
@SdkConstant(SdkConstantType.FEATURE)
public static final String FEATURE_SEAMLESS_REFRESH_RATE_SWITCHING
= "android.software.seamless_refresh_rate_switching";
/**
* Feature for {@link #getSystemAvailableFeatures} and
* {@link #hasSystemFeature(String, int)}: If this feature is supported, the Vulkan

View File

@@ -50,6 +50,8 @@ import android.util.SparseArray;
import android.view.Display;
import android.view.Surface;
import com.android.internal.R;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -1322,6 +1324,22 @@ public final class DisplayManager {
return mGlobal.shouldAlwaysRespectAppRequestedMode();
}
/**
* Returns whether device supports seamless refresh rate switching.
*
* Match content frame rate setting has three options: seamless, non-seamless and never.
* The seamless option does nothing if the device does not support seamless refresh rate
* switching. This API is used in such a case to hide the seamless option.
*
* @see DisplayManager#setRefreshRateSwitchingType
* @see DisplayManager#getMatchContentFrameRateUserPreference
* @hide
*/
public boolean supportsSeamlessRefreshRateSwitching() {
return mContext.getResources().getBoolean(
R.bool.config_supportsSeamlessRefreshRateSwitching);
}
/**
* Sets the refresh rate switching type.
* This matches {@link android.provider.Settings.Secure.MATCH_CONTENT_FRAME_RATE}

View File

@@ -4468,6 +4468,9 @@
<!-- Allow SystemUI to show the shutdown dialog -->
<bool name="config_showSysuiShutdown">true</bool>
<!-- Flag indicating whether seamless refresh rate switching is supported by a device. -->
<bool name="config_supportsSeamlessRefreshRateSwitching">true</bool>
<!-- The stable device width and height in pixels. If these aren't set to a positive number
then the device will use the width and height of the default display the first time it's
booted. -->

View File

@@ -3823,6 +3823,7 @@
<java-symbol type="id" name="messaging_group_icon_container" />
<java-symbol type="id" name="messaging_group_sending_progress" />
<java-symbol type="id" name="messaging_group_sending_progress_container" />
<java-symbol type="bool" name="config_supportsSeamlessRefreshRateSwitching" />
<java-symbol type="integer" name="config_stableDeviceDisplayWidth" />
<java-symbol type="integer" name="config_stableDeviceDisplayHeight" />