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

Commit 64905381 authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge "Add app bounds to Configuration#compareTo." into oc-dr1-dev

parents e72ec3ca c5fe0eed
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -1672,6 +1672,23 @@ public final class Configuration implements Parcelable, Comparable<Configuration
        n = this.densityDpi - that.densityDpi;
        if (n != 0) return n;
        n = this.assetsSeq - that.assetsSeq;
        if (n != 0) return n;

        if (this.appBounds == null && that.appBounds != null) {
            return 1;
        } else if (this.appBounds != null && that.appBounds == null) {
            return -1;
        } else if (this.appBounds != null && that.appBounds != null) {
            n = this.appBounds.left - that.appBounds.left;
            if (n != 0) return n;
            n = this.appBounds.top - that.appBounds.top;
            if (n != 0) return n;
            n = this.appBounds.right - that.appBounds.right;
            if (n != 0) return n;
            n = this.appBounds.bottom - that.appBounds.bottom;
            if (n != 0) return n;
        }

        // if (n != 0) return n;
        return n;
    }
+26 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

/**
@@ -121,7 +122,6 @@ public class AppBoundsTests extends WindowTestsBase {
                mParentBounds);
    }


    private void testStackBoundsConfiguration(Integer stackId, Rect parentBounds, Rect bounds,
            Rect expectedConfigBounds) {
        final StackWindowController stackController = stackId != null ?
@@ -140,4 +140,29 @@ public class AppBoundsTests extends WindowTestsBase {
        assertTrue((expectedConfigBounds == null && config.appBounds == null)
                || expectedConfigBounds.equals(config.appBounds));
    }

    /**
     * Ensures appBounds are considered in {@link Configuration#compareTo(Configuration)}.
     */
    @Test
    public void testConfigurationCompareTo() throws Exception {
        final Configuration blankConfig = new Configuration();

        final Configuration config1 = new Configuration();
        config1.appBounds = new Rect(1, 2, 3, 4);

        final Configuration config2 = new Configuration(config1);

        assertEquals(config1.compareTo(config2), 0);

        config2.appBounds.left = 0;

        // Different bounds
        assertNotEquals(config1.compareTo(config2), 0);

        // No bounds
        assertEquals(config1.compareTo(blankConfig), -1);
        assertEquals(blankConfig.compareTo(config1), 1);

    }
}