Do nothing for ContentResolver.registerContentObserver

ContentResolver.registerContentObserver is called with a user handle
argument from TextClock. We override this version of the method in
BridgeContentResolver to ensure this call does not trigger an exception.

Bug: 150151293
Test: RenderTests.testTextClock added
Change-Id: I33d03f47d90c4dc78e13db91b8905d2196813c58
(cherry picked from commit 4ca6dcadaecc6fcc323548aaede9248fd493ef5f)
diff --git a/bridge/src/com/android/layoutlib/bridge/android/BridgeContentResolver.java b/bridge/src/com/android/layoutlib/bridge/android/BridgeContentResolver.java
index 8d259d7..80a50a7 100644
--- a/bridge/src/com/android/layoutlib/bridge/android/BridgeContentResolver.java
+++ b/bridge/src/com/android/layoutlib/bridge/android/BridgeContentResolver.java
@@ -90,6 +90,15 @@
      * Stub for the layoutlib bridge content resolver.
      */
     @Override
+    public void registerContentObserver(Uri uri, boolean notifyForDescendents,
+            ContentObserver observer, int userHandle) {
+        // pass
+    }
+
+    /**
+     * Stub for the layoutlib bridge content resolver.
+     */
+    @Override
     public void unregisterContentObserver(ContentObserver observer) {
         // pass
     }
diff --git a/bridge/tests/res/testApp/MyApplication/golden/textclock.png b/bridge/tests/res/testApp/MyApplication/golden/textclock.png
new file mode 100644
index 0000000..e33047d
--- /dev/null
+++ b/bridge/tests/res/testApp/MyApplication/golden/textclock.png
Binary files differ
diff --git a/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTests.java b/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTests.java
index 4f3c5cf..5118426 100644
--- a/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTests.java
+++ b/bridge/tests/src/com/android/layoutlib/bridge/intensive/RenderTests.java
@@ -1732,4 +1732,37 @@
             assertNotNull(image);
         }
     }
+
+    /**
+     * Tests that the TextClock widget renders without error
+     * <p/>
+     * http://b/150151293
+     */
+    @Test
+    public void testTextClock() throws ClassNotFoundException {
+        String layout =
+                "<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" +
+                        "              android:padding=\"16dp\"\n" +
+                        "              android:orientation=\"horizontal\"\n" +
+                        "              android:layout_width=\"fill_parent\"\n" +
+                        "              android:layout_height=\"fill_parent\">\n" +
+                        "    <TextClock\n" +
+                        "             android:layout_height=\"wrap_content\"\n" +
+                        "             android:layout_width=\"wrap_content\"\n" +
+                        "             android:text=\"12:34\"" +
+                        "             android:textSize=\"18sp\" />\n" +
+                        "</LinearLayout>\n";
+        LayoutPullParser parser = LayoutPullParser.createFromString(layout);
+        // Create LayoutLibCallback.
+        LayoutLibTestCallback layoutLibCallback =
+                new LayoutLibTestCallback(getLogger(), mDefaultClassLoader);
+        layoutLibCallback.initResources();
+        SessionParams params = getSessionParamsBuilder()
+                .setParser(parser)
+                .setCallback(layoutLibCallback)
+                .disableDecoration()
+                .build();
+
+        renderAndVerify(params, "textclock.png");
+    }
 }