summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Bryce Lee <brycelee@google.com> 2017-07-10 14:21:37 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-07-10 14:21:37 +0000
commit649053810fa221d173fdf4c908f43838d76b4850 (patch)
treeb43941bea5c5a1364386e4c77f29d011bbc54166
parente72ec3cab2dbc1ca1b521a1171813e019432f3bc (diff)
parentc5fe0eedb6332705882306d7a23edaa78eb8cc31 (diff)
Merge "Add app bounds to Configuration#compareTo." into oc-dr1-dev
-rw-r--r--core/java/android/content/res/Configuration.java19
-rw-r--r--services/tests/servicestests/src/com/android/server/wm/AppBoundsTests.java27
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);
+
+ }
}