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

Commit de87e09b authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8050481 from 272775d3 to sc-v2-release

Change-Id: I3ee430adb217f0e55394e7007d1abd6f9839748d
parents 93425cab 272775d3
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -300,6 +300,13 @@ public class RemoteViews implements Parcelable, Filter {
     */
    public static final int FLAG_USE_LIGHT_BACKGROUND_LAYOUT = 4;

    /**
     * A ReadWriteHelper which has the same behavior as ReadWriteHelper.DEFAULT, but which is
     * intentionally a different instance in order to trick Bundle reader so that it doesn't allow
     * lazy initialization.
     */
    private static final Parcel.ReadWriteHelper ALTERNATIVE_DEFAULT = new Parcel.ReadWriteHelper();

    /**
     * Used to restrict the views which can be inflated
     *
@@ -1856,7 +1863,18 @@ public class RemoteViews implements Parcelable, Filter {
                    this.value = in.readTypedObject(Bitmap.CREATOR);
                    break;
                case BUNDLE:
                    // Because we use Parcel.allowSquashing() when writing, and that affects
                    //  how the contents of Bundles are written, we need to ensure the bundle is
                    //  unparceled immediately, not lazily.  Setting a custom ReadWriteHelper
                    //  just happens to have that effect on Bundle.readFromParcel().
                    // TODO(b/212731590): build this state tracking into Bundle
                    if (in.hasReadWriteHelper()) {
                        this.value = in.readBundle();
                    } else {
                        in.setReadWriteHelper(ALTERNATIVE_DEFAULT);
                        this.value = in.readBundle();
                        in.setReadWriteHelper(null);
                    }
                    break;
                case INTENT:
                    this.value = in.readTypedObject(Intent.CREATOR);
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
        xmlns:tools="http://schemas.android.com/tools"
        package="com.android.bluetoothmidiservice"
        >
    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="30" />

    <uses-feature android:name="android.hardware.bluetooth_le"
         android:required="true"/>
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.android.bluetoothmidiservice"
          >
    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
    <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="30" />
    <application
        android:label="BluetoothMidi"
        android:defaultToDeviceProtectedStorage="true"
+3 −1
Original line number Diff line number Diff line
@@ -278,7 +278,9 @@ public class RemoteAnimationTargetCompat {
     * @see SurfaceControl#release()
     */
    public void release() {
        if (leash.mSurfaceControl != null) {
            leash.mSurfaceControl.release();
        }
        if (mStartLeash != null) {
            mStartLeash.release();
        }
+82 −35
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
import android.util.MathUtils;
import android.util.MutableFloat;
import android.util.MutableInt;
import android.util.Slog;
import android.util.TimeUtils;
import android.view.Display;
@@ -1323,6 +1325,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call

        // Animate the screen brightness when the screen is on or dozing.
        // Skip the animation when the screen is off or suspended or transition to/from VR.
        boolean brightnessAdjusted = false;
        if (!mPendingScreenOff) {
            if (mSkipScreenOnBrightnessRamp) {
                if (state == Display.STATE_ON) {
@@ -1410,15 +1413,19 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                    // slider event so notify as if the system changed the brightness.
                    userInitiatedChange = false;
                }
                notifyBrightnessChanged(brightnessState, userInitiatedChange,
                notifyBrightnessTrackerChanged(brightnessState, userInitiatedChange,
                        hadUserBrightnessPoint);
            }

            // We save the brightness info *after* the brightness setting has been changed and
            // adjustments made so that the brightness info reflects the latest value.
            saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting(), animateValue);
        } else {
            saveBrightnessInfo(getScreenBrightnessSetting());
            brightnessAdjusted = saveBrightnessInfo(getScreenBrightnessSetting());
        }

        if (brightnessAdjusted) {
            postBrightnessChangeRunnable();
        }

        // Log any changes to what is currently driving the brightness setting.
@@ -1534,29 +1541,48 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    public BrightnessInfo getBrightnessInfo() {
        synchronized (mCachedBrightnessInfo) {
            return new BrightnessInfo(
                    mCachedBrightnessInfo.brightness,
                    mCachedBrightnessInfo.adjustedBrightness,
                    mCachedBrightnessInfo.brightnessMin,
                    mCachedBrightnessInfo.brightnessMax,
                    mCachedBrightnessInfo.hbmMode,
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
                    mCachedBrightnessInfo.brightness.value,
                    mCachedBrightnessInfo.adjustedBrightness.value,
                    mCachedBrightnessInfo.brightnessMin.value,
                    mCachedBrightnessInfo.brightnessMax.value,
                    mCachedBrightnessInfo.hbmMode.value,
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
        }
    }

    private void saveBrightnessInfo(float brightness) {
        saveBrightnessInfo(brightness, brightness);
    private boolean saveBrightnessInfo(float brightness) {
        return saveBrightnessInfo(brightness, brightness);
    }

    private void saveBrightnessInfo(float brightness, float adjustedBrightness) {
    private boolean saveBrightnessInfo(float brightness, float adjustedBrightness) {
        synchronized (mCachedBrightnessInfo) {
            mCachedBrightnessInfo.brightness = brightness;
            mCachedBrightnessInfo.adjustedBrightness = adjustedBrightness;
            mCachedBrightnessInfo.brightnessMin = mHbmController.getCurrentBrightnessMin();
            mCachedBrightnessInfo.brightnessMax = mHbmController.getCurrentBrightnessMax();
            mCachedBrightnessInfo.hbmMode = mHbmController.getHighBrightnessMode();
            mCachedBrightnessInfo.highBrightnessTransitionPoint =
                mHbmController.getTransitionPoint();
        }
            boolean changed = false;

            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightness,
                        brightness);
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.adjustedBrightness,
                        adjustedBrightness);
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMin,
                        mHbmController.getCurrentBrightnessMin());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.brightnessMax,
                        mHbmController.getCurrentBrightnessMax());
            changed |=
                mCachedBrightnessInfo.checkAndSetInt(mCachedBrightnessInfo.hbmMode,
                        mHbmController.getHighBrightnessMode());
            changed |=
                mCachedBrightnessInfo.checkAndSetFloat(mCachedBrightnessInfo.hbmTransitionPoint,
                        mHbmController.getTransitionPoint());

            return changed;
        }
    }

    void postBrightnessChangeRunnable() {
        mHandler.post(mOnBrightnessChangeRunnable);
    }

    private HighBrightnessModeController createHbmControllerLocked() {
@@ -1571,7 +1597,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX, hbmData,
                () -> {
                    sendUpdatePowerStateLocked();
                    mHandler.post(mOnBrightnessChangeRunnable);
                    postBrightnessChangeRunnable();
                    // TODO(b/192258832): Switch the HBMChangeCallback to a listener pattern.
                    if (mAutomaticBrightnessController != null) {
                        mAutomaticBrightnessController.update();
@@ -2073,7 +2099,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    private void setCurrentScreenBrightness(float brightnessValue) {
        if (brightnessValue != mCurrentScreenBrightnessSetting) {
            mCurrentScreenBrightnessSetting = brightnessValue;
            mHandler.post(mOnBrightnessChangeRunnable);
            postBrightnessChangeRunnable();
        }
    }

@@ -2125,7 +2151,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        return true;
    }

    private void notifyBrightnessChanged(float brightness, boolean userInitiated,
    private void notifyBrightnessTrackerChanged(float brightness, boolean userInitiated,
            boolean hadUserDataPoint) {
        final float brightnessInNits = convertToNits(brightness);
        if (mPowerRequest.useAutoBrightness && brightnessInNits >= 0.0f
@@ -2236,16 +2262,17 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        pw.println("  mColorFadeFadesConfig=" + mColorFadeFadesConfig);
        pw.println("  mColorFadeEnabled=" + mColorFadeEnabled);
        synchronized (mCachedBrightnessInfo) {
            pw.println("  mCachedBrightnessInfo.brightness=" + mCachedBrightnessInfo.brightness);
            pw.println("  mCachedBrightnessInfo.brightness=" +
                    mCachedBrightnessInfo.brightness.value);
            pw.println("  mCachedBrightnessInfo.adjustedBrightness=" +
                    mCachedBrightnessInfo.adjustedBrightness);
                    mCachedBrightnessInfo.adjustedBrightness.value);
            pw.println("  mCachedBrightnessInfo.brightnessMin=" +
                    mCachedBrightnessInfo.brightnessMin);
                    mCachedBrightnessInfo.brightnessMin.value);
            pw.println("  mCachedBrightnessInfo.brightnessMax=" +
                    mCachedBrightnessInfo.brightnessMax);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode);
            pw.println("  mCachedBrightnessInfo.highBrightnessTransitionPoint=" +
                    mCachedBrightnessInfo.highBrightnessTransitionPoint);
                    mCachedBrightnessInfo.brightnessMax.value);
            pw.println("  mCachedBrightnessInfo.hbmMode=" + mCachedBrightnessInfo.hbmMode.value);
            pw.println("  mCachedBrightnessInfo.hbmTransitionPoint=" +
                    mCachedBrightnessInfo.hbmTransitionPoint.value);
        }
        pw.println("  mDisplayBlanksAfterDozeConfig=" + mDisplayBlanksAfterDozeConfig);
        pw.println("  mBrightnessBucketsInDozeConfig=" + mBrightnessBucketsInDozeConfig);
@@ -2663,11 +2690,31 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    }

    static class CachedBrightnessInfo {
        public float brightness;
        public float adjustedBrightness;
        public float brightnessMin;
        public float brightnessMax;
        public int hbmMode;
        public float highBrightnessTransitionPoint;
        public MutableFloat brightness = new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat adjustedBrightness =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat brightnessMin =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableFloat brightnessMax =
            new MutableFloat(PowerManager.BRIGHTNESS_INVALID_FLOAT);
        public MutableInt hbmMode = new MutableInt(BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF);
        public MutableFloat hbmTransitionPoint =
            new MutableFloat(HighBrightnessModeController.HBM_TRANSITION_POINT_INVALID);

        public boolean checkAndSetFloat(MutableFloat mf, float f) {
            if (mf.value != f) {
                mf.value = f;
                return true;
            }
            return false;
        }

        public boolean checkAndSetInt(MutableInt mi, int i) {
            if (mi.value != i) {
                mi.value = i;
                return true;
            }
            return false;
        }
    }
}
Loading