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

Commit f459f57c authored by Jeremy Meyer's avatar Jeremy Meyer
Browse files

Make Configuration.generateDelta() public

Test: Added android.content.res.cts.ConfigurationTest.testGenerateDiff()
Test: atest ConfigurationTest
Fix: 141372186
Change-Id: I2210afd2473612daa6c4af77822916b040eaae92
parent 592002ca
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -13300,6 +13300,7 @@ package android.content.res {
    method public int describeContents();
    method public int diff(android.content.res.Configuration);
    method public boolean equals(android.content.res.Configuration);
    method @NonNull public static android.content.res.Configuration generateDelta(@NonNull android.content.res.Configuration, @NonNull android.content.res.Configuration);
    method public int getLayoutDirection();
    method @NonNull public android.os.LocaleList getLocales();
    method public boolean isLayoutSizeAtLeast(int);
+3 −3
Original line number Diff line number Diff line
@@ -2620,10 +2620,10 @@ public final class Configuration implements Parcelable, Comparable<Configuration
     * {@link #updateFrom(Configuration)} will treat it as a no-op and not update that member.
     *
     * This is fine for device configurations as no member is ever undefined.
     * {@hide}
     */
    @UnsupportedAppUsage
    public static Configuration generateDelta(Configuration base, Configuration change) {
    @NonNull
    public static Configuration generateDelta(
            @NonNull Configuration base, @NonNull Configuration change) {
        final Configuration delta = new Configuration();
        if (base.fontScale != change.fontScale) {
            delta.fontScale = change.fontScale;
+13 −0
Original line number Diff line number Diff line
@@ -16,10 +16,15 @@

package com.android.settingslib.applications;

import android.annotation.SuppressLint;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;

/**
 * A class for applying config changes and determing if doing so resulting in any "interesting"
 * changes.
 */
public class InterestingConfigChanges {
    private final Configuration mLastConfiguration = new Configuration();
    private final int mFlags;
@@ -35,6 +40,14 @@ public class InterestingConfigChanges {
        mFlags = flags;
    }

    /**
     * Applies the given config change and returns whether an "interesting" change happened.
     *
     * @param res The source of the new config to apply
     *
     * @return Whether interesting changes occurred
     */
    @SuppressLint("NewApi")
    public boolean applyNewConfig(Resources res) {
        int configChanges = mLastConfiguration.updateFrom(
                Configuration.generateDelta(mLastConfiguration, res.getConfiguration()));