翰林优商.apk(点击下载) / KwaiDisplayHdrCapabilitiesDetector.java


package com.kwai.player;

import android.content.Context;
import android.hardware.display.DisplayManager;
import android.view.Display;

public class KwaiDisplayHdrCapabilitiesDetector {
    private static KwaiDisplayHdrCapabilitiesDetector sHdrCapabilitiesUtil;
    private Context mContext;
    private float mDesiredMaxAverageLuminance;
    private float mDesiredMaxLuminance;
    private float mDesiredMinLuminance;
    private DisplayManager mDisplayManager;
    private Display.HdrCapabilities mHdrCapabilities;
    private String mHdrTypes = "";
    private boolean misInited = false;

    public static synchronized KwaiDisplayHdrCapabilitiesDetector getInstance() {
        KwaiDisplayHdrCapabilitiesDetector kwaiDisplayHdrCapabilitiesDetector;
        synchronized (KwaiDisplayHdrCapabilitiesDetector.class) {
            if (sHdrCapabilitiesUtil == null) {
                sHdrCapabilitiesUtil = new KwaiDisplayHdrCapabilitiesDetector();
            }
            kwaiDisplayHdrCapabilitiesDetector = sHdrCapabilitiesUtil;
        }
        return kwaiDisplayHdrCapabilitiesDetector;
    }

    public String getHdrCapabilitiesTypes() {
        return this.mHdrTypes;
    }

    public float getHdrMaxAverageLuminance() {
        return this.mDesiredMaxAverageLuminance;
    }

    public float getHdrMaxLuminance() {
        return this.mDesiredMaxLuminance;
    }

    public float getHdrMinLuminance() {
        return this.mDesiredMinLuminance;
    }

    public synchronized void init(Context context) {
        String str;
        if (!this.misInited) {
            this.mContext = context;
            DisplayManager displayManager = (DisplayManager) context.getSystemService("display");
            this.mDisplayManager = displayManager;
            Display.HdrCapabilities hdrCapabilities = displayManager.getDisplay(0).getHdrCapabilities();
            this.mHdrCapabilities = hdrCapabilities;
            int[] supportedHdrTypes = hdrCapabilities.getSupportedHdrTypes();
            for (int i : supportedHdrTypes) {
                if (i == 1) {
                    str = this.mHdrTypes + "HDR_TYPE_DOLBY_VISION,";
                } else if (i == 2) {
                    str = this.mHdrTypes + "HDR_TYPE_HDR10,";
                } else if (i == 3) {
                    str = this.mHdrTypes + "HDR_TYPE_HLG";
                }
                this.mHdrTypes = str;
            }
            this.mDesiredMaxAverageLuminance = this.mHdrCapabilities.getDesiredMaxAverageLuminance();
            this.mDesiredMaxLuminance = this.mHdrCapabilities.getDesiredMaxLuminance();
            this.mDesiredMinLuminance = this.mHdrCapabilities.getDesiredMinLuminance();
            this.misInited = true;
        }
    }
}