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

Commit afad304c authored by Kriti Dang's avatar Kriti Dang
Browse files

Add DisplayManager API to query if the device supports seamless refresh

rate switching

It was added as a PackageManager flag earlier. Removing from there,
because PackageManagere flags are only recommendded when applications need them to filter whether they can run on a given device.

Bug: 186189147
Test: m
Change-Id: I16475b750d223caf064c413b18851b302eb4e223
parent 2732be52
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -12165,7 +12165,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";
+0 −8
Original line number Diff line number Diff line
@@ -2978,14 +2978,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
+18 −0
Original line number Diff line number Diff line
@@ -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;
@@ -1309,6 +1311,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}
+3 −0
Original line number Diff line number Diff line
@@ -4411,6 +4411,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.  -->
+1 −0
Original line number Diff line number Diff line
@@ -3879,6 +3879,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" />