OSDN Git Service

Merge "Hide APIs not intended to ship in DR." into oc-dr1-dev
authorJeff Sharkey <jsharkey@google.com>
Mon, 12 Jun 2017 21:50:33 +0000 (21:50 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 12 Jun 2017 21:50:39 +0000 (21:50 +0000)
12 files changed:
api/current.txt
api/system-current.txt
api/test-current.txt
core/java/android/app/admin/DevicePolicyManager.java
core/java/android/content/pm/PackageManager.java
core/java/android/view/InputDevice.java
core/java/android/view/accessibility/AccessibilityManager.java
core/java/android/view/accessibility/AccessibilityRequestPreparer.java
core/java/android/webkit/WebView.java
core/java/android/webkit/WebViewFactoryProvider.java
core/java/android/widget/RemoteViews.java
telecomm/java/android/telecom/Call.java

index a71c63a..05d9b9b 100644 (file)
@@ -10712,7 +10712,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef";
     field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep";
-    field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc";
     field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
     field public static final java.lang.String FEATURE_PRINTING = "android.software.print";
     field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
@@ -10754,7 +10753,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_WIFI = "android.hardware.wifi";
     field public static final java.lang.String FEATURE_WIFI_AWARE = "android.hardware.wifi.aware";
     field public static final java.lang.String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
-    field public static final java.lang.String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
     field public static final int GET_ACTIVITIES = 1; // 0x1
     field public static final int GET_CONFIGURATIONS = 16384; // 0x4000
     field public static final deprecated int GET_DISABLED_COMPONENTS = 512; // 0x200
@@ -38673,8 +38671,7 @@ package android.telecom {
 
   public static final class Call.RttCall {
     method public int getRttAudioMode();
-    method public java.lang.String read() throws java.io.IOException;
-    method public java.lang.String readImmediately() throws java.io.IOException;
+    method public java.lang.String read();
     method public void setRttMode(int);
     method public void write(java.lang.String) throws java.io.IOException;
     field public static final int RTT_MODE_FULL = 1; // 0x1
@@ -43965,7 +43962,6 @@ package android.view {
     method public android.os.Vibrator getVibrator();
     method public boolean[] hasKeys(int...);
     method public boolean hasMicrophone();
-    method public boolean isEnabled();
     method public boolean isVirtual();
     method public boolean supportsSource(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -46955,7 +46951,6 @@ package android.view.accessibility {
   }
 
   public final class AccessibilityManager {
-    method public void addAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
     method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
     method public void addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener, android.os.Handler);
     method public boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
@@ -46966,7 +46961,6 @@ package android.view.accessibility {
     method public void interrupt();
     method public boolean isEnabled();
     method public boolean isTouchExplorationEnabled();
-    method public void removeAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
     method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
     method public boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
     method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
@@ -47283,13 +47277,6 @@ package android.view.accessibility {
     method public void setToIndex(int);
   }
 
-  public abstract class AccessibilityRequestPreparer {
-    ctor public AccessibilityRequestPreparer(android.view.View, int);
-    method public android.view.View getView();
-    method public abstract void onPrepareExtraData(int, java.lang.String, android.os.Bundle, android.os.Message);
-    field public static final int REQUEST_TYPE_EXTRA_DATA = 1; // 0x1
-  }
-
   public final class AccessibilityWindowInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.view.accessibility.AccessibilityNodeInfo getAnchor();
@@ -48811,7 +48798,6 @@ package android.webkit {
     method public void goBack();
     method public void goBackOrForward(int);
     method public void goForward();
-    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
     method public void invokeZoomPicker();
     method public boolean isPrivateBrowsingEnabled();
     method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -48856,7 +48842,6 @@ package android.webkit {
     method public static void setWebContentsDebuggingEnabled(boolean);
     method public void setWebViewClient(android.webkit.WebViewClient);
     method public deprecated boolean showFindDialog(java.lang.String, boolean);
-    method public static void shutdownSafeBrowsing();
     method public void stopLoading();
     method public void zoomBy(float);
     method public boolean zoomIn();
index fbe2109..6e27ffb 100644 (file)
@@ -6679,7 +6679,6 @@ package android.app.admin {
     field public static final java.lang.String ACTION_SET_NEW_PASSWORD = "android.app.action.SET_NEW_PASSWORD";
     field public static final java.lang.String ACTION_SET_PROFILE_OWNER = "android.app.action.SET_PROFILE_OWNER";
     field public static final java.lang.String ACTION_START_ENCRYPTION = "android.app.action.START_ENCRYPTION";
-    field public static final java.lang.String ACTION_STATE_USER_SETUP_COMPLETE = "android.app.action.STATE_USER_SETUP_COMPLETE";
     field public static final java.lang.String ACTION_SYSTEM_UPDATE_POLICY_CHANGED = "android.app.action.SYSTEM_UPDATE_POLICY_CHANGED";
     field public static final java.lang.String DELEGATION_APP_RESTRICTIONS = "delegation-app-restrictions";
     field public static final java.lang.String DELEGATION_BLOCK_UNINSTALL = "delegation-block-uninstall";
@@ -11336,7 +11335,6 @@ package android.content.pm {
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
     method public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
     method public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
     method public abstract deprecated void removePackageFromPreferred(java.lang.String);
     method public abstract void removePermission(java.lang.String);
@@ -11415,7 +11413,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef";
     field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep";
-    field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc";
     field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
     field public static final java.lang.String FEATURE_PRINTING = "android.software.print";
     field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
@@ -11458,7 +11455,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_WIFI = "android.hardware.wifi";
     field public static final java.lang.String FEATURE_WIFI_AWARE = "android.hardware.wifi.aware";
     field public static final java.lang.String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
-    field public static final java.lang.String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
     field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20
     field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4
     field public static final int FLAG_PERMISSION_REVIEW_REQUIRED = 64; // 0x40
@@ -11558,11 +11554,6 @@ package android.content.pm {
     field public static final int VERSION_CODE_HIGHEST = -1; // 0xffffffff
   }
 
-  public static abstract class PackageManager.DexModuleRegisterCallback {
-    ctor public PackageManager.DexModuleRegisterCallback();
-    method public abstract void onDexModuleRegistered(java.lang.String, boolean, java.lang.String);
-  }
-
   public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
     ctor public PackageManager.NameNotFoundException();
     ctor public PackageManager.NameNotFoundException(java.lang.String);
@@ -41917,8 +41908,7 @@ package android.telecom {
 
   public static final class Call.RttCall {
     method public int getRttAudioMode();
-    method public java.lang.String read() throws java.io.IOException;
-    method public java.lang.String readImmediately() throws java.io.IOException;
+    method public java.lang.String read();
     method public void setRttMode(int);
     method public void write(java.lang.String) throws java.io.IOException;
     field public static final int RTT_MODE_FULL = 1; // 0x1
@@ -44389,7 +44379,6 @@ package android.test.mock {
     method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
     method public java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
     method public java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
     method public void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
     method public void removePackageFromPreferred(java.lang.String);
     method public void removePermission(java.lang.String);
@@ -47512,7 +47501,6 @@ package android.view {
     method public android.os.Vibrator getVibrator();
     method public boolean[] hasKeys(int...);
     method public boolean hasMicrophone();
-    method public boolean isEnabled();
     method public boolean isVirtual();
     method public boolean supportsSource(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -50505,7 +50493,6 @@ package android.view.accessibility {
   }
 
   public final class AccessibilityManager {
-    method public void addAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
     method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
     method public void addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener, android.os.Handler);
     method public boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
@@ -50517,7 +50504,6 @@ package android.view.accessibility {
     method public static boolean isAccessibilityButtonSupported();
     method public boolean isEnabled();
     method public boolean isTouchExplorationEnabled();
-    method public void removeAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
     method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
     method public boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
     method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
@@ -50834,13 +50820,6 @@ package android.view.accessibility {
     method public void setToIndex(int);
   }
 
-  public abstract class AccessibilityRequestPreparer {
-    ctor public AccessibilityRequestPreparer(android.view.View, int);
-    method public android.view.View getView();
-    method public abstract void onPrepareExtraData(int, java.lang.String, android.os.Bundle, android.os.Message);
-    field public static final int REQUEST_TYPE_EXTRA_DATA = 1; // 0x1
-  }
-
   public final class AccessibilityWindowInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.view.accessibility.AccessibilityNodeInfo getAnchor();
@@ -52456,7 +52435,6 @@ package android.webkit {
     method public void goBack();
     method public void goBackOrForward(int);
     method public void goForward();
-    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
     method public void invokeZoomPicker();
     method public boolean isPrivateBrowsingEnabled();
     method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -52501,7 +52479,6 @@ package android.webkit {
     method public static void setWebContentsDebuggingEnabled(boolean);
     method public void setWebViewClient(android.webkit.WebViewClient);
     method public deprecated boolean showFindDialog(java.lang.String, boolean);
-    method public static void shutdownSafeBrowsing();
     method public void stopLoading();
     method public void zoomBy(float);
     method public boolean zoomIn();
@@ -52689,10 +52666,8 @@ package android.webkit {
     method public abstract java.lang.String findAddress(java.lang.String);
     method public abstract void freeMemoryForTests();
     method public abstract java.lang.String getDefaultUserAgent(android.content.Context);
-    method public abstract void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
     method public abstract android.net.Uri[] parseFileChooserResult(int, android.content.Intent);
     method public abstract void setWebContentsDebuggingEnabled(boolean);
-    method public abstract void shutdownSafeBrowsing();
   }
 
   public class WebViewFragment extends android.app.Fragment {
index 96bda4f..5a265cc 100644 (file)
@@ -10753,7 +10753,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
     field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef";
     field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep";
-    field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc";
     field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
     field public static final java.lang.String FEATURE_PRINTING = "android.software.print";
     field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
@@ -10795,7 +10794,6 @@ package android.content.pm {
     field public static final java.lang.String FEATURE_WIFI = "android.hardware.wifi";
     field public static final java.lang.String FEATURE_WIFI_AWARE = "android.hardware.wifi.aware";
     field public static final java.lang.String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
-    field public static final java.lang.String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
     field public static final int GET_ACTIVITIES = 1; // 0x1
     field public static final int GET_CONFIGURATIONS = 16384; // 0x4000
     field public static final deprecated int GET_DISABLED_COMPONENTS = 512; // 0x200
@@ -38880,7 +38878,7 @@ package android.telecom {
 
   public static final class Call.RttCall {
     method public int getRttAudioMode();
-    method public java.lang.String read() throws java.io.IOException;
+    method public java.lang.String read();
     method public java.lang.String readImmediately() throws java.io.IOException;
     method public void setRttMode(int);
     method public void write(java.lang.String) throws java.io.IOException;
@@ -44360,7 +44358,6 @@ package android.view {
     method public android.os.Vibrator getVibrator();
     method public boolean[] hasKeys(int...);
     method public boolean hasMicrophone();
-    method public boolean isEnabled();
     method public boolean isVirtual();
     method public boolean supportsSource(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -49226,7 +49223,6 @@ package android.webkit {
     method public void goBack();
     method public void goBackOrForward(int);
     method public void goForward();
-    method public static void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
     method public void invokeZoomPicker();
     method public boolean isPrivateBrowsingEnabled();
     method public void loadData(java.lang.String, java.lang.String, java.lang.String);
@@ -49271,7 +49267,6 @@ package android.webkit {
     method public static void setWebContentsDebuggingEnabled(boolean);
     method public void setWebViewClient(android.webkit.WebViewClient);
     method public deprecated boolean showFindDialog(java.lang.String, boolean);
-    method public static void shutdownSafeBrowsing();
     method public void stopLoading();
     method public void zoomBy(float);
     method public boolean zoomIn();
index ff9425e..9eacd21 100644 (file)
@@ -279,7 +279,6 @@ public class DevicePolicyManager {
      * @hide
      */
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
-    @SystemApi
     public static final String ACTION_STATE_USER_SETUP_COMPLETE =
             "android.app.action.STATE_USER_SETUP_COMPLETE";
 
index 6bc7d42..06dbc0b 100644 (file)
@@ -2285,6 +2285,7 @@ public abstract class PackageManager {
     /**
      * Feature for {@link #getSystemAvailableFeatures} and
      * {@link #hasSystemFeature}: The device supports Wi-Fi Passpoint.
+     * @hide
      */
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
@@ -2342,6 +2343,7 @@ public abstract class PackageManager {
      * computers, laptops and variants such as convertibles or detachables.
      * Due to the larger screen, the device will most likely use the
      * {@link #FEATURE_FREEFORM_WINDOW_MANAGEMENT} feature as well.
+     * @hide
      */
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_PC = "android.hardware.type.pc";
@@ -5773,7 +5775,6 @@ public abstract class PackageManager {
      *
      * @hide
      */
-    @SystemApi
     public static abstract class DexModuleRegisterCallback {
         public abstract void onDexModuleRegistered(String dexModulePath, boolean success,
                 String message);
@@ -5807,7 +5808,6 @@ public abstract class PackageManager {
      *
      * @hide
      */
-    @SystemApi
     public abstract void registerDexModule(String dexModulePath,
             @Nullable DexModuleRegisterCallback callback);
 }
index 8405d9e..15be2b0 100644 (file)
@@ -772,6 +772,7 @@ public final class InputDevice implements Parcelable {
     /**
      * Returns true if input device is enabled.
      * @return Whether the input device is enabled.
+     * @hide
      */
     public boolean isEnabled() {
         return InputManager.getInstance().isInputDeviceEnabled(mId);
index 8fc586e..3a3e171 100644 (file)
@@ -25,6 +25,7 @@ import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
+import android.annotation.TestApi;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.PackageManager;
@@ -704,7 +705,9 @@ public final class AccessibilityManager {
 
     /**
      * Registers a {@link AccessibilityRequestPreparer}.
+     * @hide
      */
+    @TestApi
     public void addAccessibilityRequestPreparer(AccessibilityRequestPreparer preparer) {
         if (mRequestPreparerLists == null) {
             mRequestPreparerLists = new SparseArray<>(1);
@@ -720,7 +723,9 @@ public final class AccessibilityManager {
 
     /**
      * Unregisters a {@link AccessibilityRequestPreparer}.
+     * @hide
      */
+    @TestApi
     public void removeAccessibilityRequestPreparer(AccessibilityRequestPreparer preparer) {
         if (mRequestPreparerLists == null) {
             return;
index 889feb9..c032390 100644 (file)
@@ -18,6 +18,7 @@ package android.view.accessibility;
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
+import android.annotation.TestApi;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Message;
@@ -39,7 +40,9 @@ import java.lang.ref.WeakReference;
  * <p>
  * <strong>Note:</strong> This class should only be needed in exceptional situations where a
  * {@link View} cannot otherwise synchronously meet the request for accessibility data.
+ * @hide
  */
+@TestApi
 public abstract class AccessibilityRequestPreparer {
     public static final int REQUEST_TYPE_EXTRA_DATA = 0x00000001;
 
index ec2b302..2753ff6 100644 (file)
@@ -1625,6 +1625,7 @@ public class WebView extends AbsoluteLayout
      * @param context is the activity context the WebView will be used in.
      * @param callback will be called with the value true if initialization is
      * successful. The callback will be run on the UI thread.
+     * @hide
      */
     public static void initSafeBrowsing(Context context, ValueCallback<Boolean> callback) {
         getFactory().getStatics().initSafeBrowsing(context, callback);
@@ -1632,6 +1633,7 @@ public class WebView extends AbsoluteLayout
 
     /**
      * Shuts down Safe Browsing. This should only be called once.
+     * @hide
      */
     public static void shutdownSafeBrowsing() {
         getFactory().getStatics().shutdownSafeBrowsing();
index 5cf48b5..00fdac8 100644 (file)
@@ -78,14 +78,18 @@ public interface WebViewFactoryProvider {
         /**
          * Implement the API method
          * {@link android.webkit.WebView#initSafeBrowsing(Context , ValueCallback<Boolean>)}
+         * @hide
          */
-        void initSafeBrowsing(Context context, ValueCallback<Boolean> callback);
+        default void initSafeBrowsing(Context context, ValueCallback<Boolean> callback) {
+        }
 
         /**
          * Implement the API method
          * {@link android.webkit.WebView#shutdownSafeBrowsing()}
+         * @hide
          */
-        void shutdownSafeBrowsing();
+        default void shutdownSafeBrowsing() {
+        }
     }
 
     Statics getStatics();
index af45985..d2b9018 100644 (file)
@@ -2418,24 +2418,26 @@ public class RemoteViews implements Parcelable, Filter {
     }
 
 
-    public synchronized RemoteViews clone() {
-        Preconditions.checkState(mIsRoot, "RemoteView has been attached to another RemoteView. "
-                + "May only clone the root of a RemoteView hierarchy.");
+    public RemoteViews clone() {
+        synchronized (this) {
+            Preconditions.checkState(mIsRoot, "RemoteView has been attached to another RemoteView. "
+                    + "May only clone the root of a RemoteView hierarchy.");
 
-        Parcel p = Parcel.obtain();
+            Parcel p = Parcel.obtain();
 
-        // Do not parcel the Bitmap cache - doing so creates an expensive copy of all bitmaps.
-        // Instead pretend we're not owning the cache while parceling.
-        mIsRoot = false;
-        writeToParcel(p, PARCELABLE_ELIDE_DUPLICATES);
-        p.setDataPosition(0);
-        mIsRoot = true;
+            // Do not parcel the Bitmap cache - doing so creates an expensive copy of all bitmaps.
+            // Instead pretend we're not owning the cache while parceling.
+            mIsRoot = false;
+            writeToParcel(p, PARCELABLE_ELIDE_DUPLICATES);
+            p.setDataPosition(0);
+            mIsRoot = true;
 
-        RemoteViews rv = new RemoteViews(p, mBitmapCache.clone(), mApplication, 0);
-        rv.mIsRoot = true;
+            RemoteViews rv = new RemoteViews(p, mBitmapCache.clone(), mApplication, 0);
+            rv.mIsRoot = true;
 
-        p.recycle();
-        return rv;
+            p.recycle();
+            return rv;
+        }
     }
 
     public String getPackage() {
index c147578..a6bfbad 100644 (file)
@@ -19,6 +19,7 @@ package android.telecom;
 import android.annotation.IntDef;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -1076,12 +1077,17 @@ public final class Call {
          * @return A string containing text sent by the remote user, or {@code null} if the
          * conversation has been terminated or if there was an error while reading.
          */
-        public String read() throws IOException {
-            int numRead = mReceiveStream.read(mReadBuffer, 0, READ_BUFFER_SIZE);
-            if (numRead < 0) {
-                return null;
+        public String read() {
+            try {
+                int numRead = mReceiveStream.read(mReadBuffer, 0, READ_BUFFER_SIZE);
+                if (numRead < 0) {
+                    return null;
+                }
+                return new String(mReadBuffer, 0, numRead);
+            } catch (IOException e) {
+                Log.w(this, "Exception encountered when reading from InputStreamReader: %s", e);
             }
-            return new String(mReadBuffer, 0, numRead);
+            return null;
         }
 
         /**
@@ -1089,7 +1095,9 @@ public final class Call {
          * be read.
          * @return A string containing text entered by the user, or {@code null} if the user has
          * not entered any new text yet.
+         * @hide
          */
+        @TestApi
         public String readImmediately() throws IOException {
             if (mReceiveStream.ready()) {
                 return read();