diff options
| author | 2017-07-10 14:21:37 +0000 | |
|---|---|---|
| committer | 2017-07-10 14:21:37 +0000 | |
| commit | 649053810fa221d173fdf4c908f43838d76b4850 (patch) | |
| tree | b43941bea5c5a1364386e4c77f29d011bbc54166 | |
| parent | e72ec3cab2dbc1ca1b521a1171813e019432f3bc (diff) | |
| parent | c5fe0eedb6332705882306d7a23edaa78eb8cc31 (diff) | |
Merge "Add app bounds to Configuration#compareTo." into oc-dr1-dev
| -rw-r--r-- | core/java/android/content/res/Configuration.java | 19 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java | 27 | 
2 files changed, 44 insertions, 2 deletions
| diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java index 9b4ad73508d9..ef279b86662a 100644 --- a/core/java/android/content/res/Configuration.java +++ b/core/java/android/content/res/Configuration.java @@ -1672,7 +1672,24 @@ 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 (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;      } diff --git a/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java b/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java index a599427983bc..520666b6ab8d 100644 --- a/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java @@ -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); + +    }  } |