Revert "Correct error in Configuration.updateFrom"

Change is preventing the device from showing the lock screen
after the boot animation.

This reverts commit 4647acb60e407670356c628d3a823c172dfeea64.

Bug: 33098677
Change-Id: If7ecb04b74d5b626c7c3517e7e8d1dc1566ccb17
(cherry picked from commit 64145dcbebdde22bc005f8968d72dc53045cff37)
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index e039512..ee1f190 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -1047,29 +1047,18 @@
             changed |= ActivityInfo.CONFIG_ORIENTATION;
             orientation = delta.orientation;
         }
-
-        if (((delta.screenLayout & SCREENLAYOUT_SIZE_MASK) != SCREENLAYOUT_SIZE_UNDEFINED)
-                && (delta.screenLayout & SCREENLAYOUT_SIZE_MASK)
-                != (screenLayout & SCREENLAYOUT_SIZE_MASK)) {
+        if (getScreenLayoutNoDirection(delta.screenLayout) !=
+                    (SCREENLAYOUT_SIZE_UNDEFINED | SCREENLAYOUT_LONG_UNDEFINED)
+                && (getScreenLayoutNoDirection(screenLayout) !=
+                    getScreenLayoutNoDirection(delta.screenLayout))) {
             changed |= ActivityInfo.CONFIG_SCREEN_LAYOUT;
-            screenLayout = (screenLayout & ~SCREENLAYOUT_SIZE_MASK)
-                    | (delta.screenLayout & SCREENLAYOUT_SIZE_MASK);
+            // We need to preserve the previous layout dir bits if they were defined
+            if ((delta.screenLayout&SCREENLAYOUT_LAYOUTDIR_MASK) == 0) {
+                screenLayout = (screenLayout&SCREENLAYOUT_LAYOUTDIR_MASK)|delta.screenLayout;
+            } else {
+                screenLayout = delta.screenLayout;
+            }
         }
-        if (((delta.screenLayout & SCREENLAYOUT_LONG_MASK) != SCREENLAYOUT_LONG_UNDEFINED)
-                && (delta.screenLayout & SCREENLAYOUT_LONG_MASK)
-                != (screenLayout & SCREENLAYOUT_LONG_MASK)) {
-            changed |= ActivityInfo.CONFIG_SCREEN_LAYOUT;
-            screenLayout = (screenLayout & ~SCREENLAYOUT_LONG_MASK)
-                    | (delta.screenLayout & SCREENLAYOUT_LONG_MASK);
-        }
-        if (((delta.screenLayout & SCREENLAYOUT_ROUND_MASK) != SCREENLAYOUT_ROUND_UNDEFINED)
-                && (delta.screenLayout & SCREENLAYOUT_ROUND_MASK)
-                != (screenLayout & SCREENLAYOUT_ROUND_MASK)) {
-            changed |= ActivityInfo.CONFIG_SCREEN_LAYOUT;
-            screenLayout = (screenLayout & ~SCREENLAYOUT_ROUND_MASK)
-                    | (delta.screenLayout & SCREENLAYOUT_ROUND_MASK);
-        }
-
         if (delta.uiMode != (UI_MODE_TYPE_UNDEFINED|UI_MODE_NIGHT_UNDEFINED)
                 && uiMode != delta.uiMode) {
             changed |= ActivityInfo.CONFIG_UI_MODE;
diff --git a/core/tests/coretests/src/android/content/res/ConfigurationTest.java b/core/tests/coretests/src/android/content/res/ConfigurationTest.java
deleted file mode 100644
index 3138c8f..0000000
--- a/core/tests/coretests/src/android/content/res/ConfigurationTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package android.content.res;
-
-import org.junit.runner.RunWith;
-import org.junit.Test;
-import org.junit.runners.JUnit4;
-
-import android.content.res.Configuration;
-import android.support.test.filters.SmallTest;
-import android.platform.test.annotations.Presubmit;
-
-import junit.framework.TestCase;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * Build/install/run: bit FrameworksCoreTests:android.content.res.ConfigurationTest
- */
-
-@RunWith(JUnit4.class)
-@SmallTest
-@Presubmit
-public class ConfigurationTest extends TestCase {
-    @Test
-    public void testUpdateFromPreservesRoundBit() {
-        Configuration config = new Configuration();
-        config.screenLayout = Configuration.SCREENLAYOUT_ROUND_YES;
-        Configuration config2 = new Configuration();
-
-        config.updateFrom(config2);
-        assertEquals(config.screenLayout, Configuration.SCREENLAYOUT_ROUND_YES);
-    }
-}