diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-01-30 01:05:47 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-01-30 01:05:47 +0000 |
commit | 75bb323cbe21d7c609946b6b680f88f7ccd4a043 (patch) | |
tree | 61b56ed5f6c89fcd50b7275d171f70b1a2dccd53 | |
parent | ddae58aaaa5af77ab925fd916e5352ee89f4dfd8 (diff) | |
parent | bbd2ae7c266e120d7457f9cad90ee8d7269cd87f (diff) | |
download | base-75bb323cbe21d7c609946b6b680f88f7ccd4a043.tar.gz |
Merge cherrypicks of [6206577, 6206578, 6206734, 6206098, 6206099, 6206100, 6206101, 6206102, 6206065] into pi-b4s4-release
Change-Id: I4ff6ecc889906d74e6796e8085a15927e326cb97
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 21 | ||||
-rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 21 |
2 files changed, 27 insertions, 15 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 6df0173d9684..a1c0967f0ab1 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1354,6 +1354,9 @@ public final class ViewRootImpl implements ViewParent, } if (mStopped) { + if (mSurfaceHolder != null) { + notifySurfaceDestroyed(); + } mSurface.release(); } } @@ -2227,13 +2230,7 @@ public final class ViewRootImpl implements ViewParent, } mIsCreating = false; } else if (hadSurface) { - mSurfaceHolder.ungetCallbacks(); - SurfaceHolder.Callback callbacks[] = mSurfaceHolder.getCallbacks(); - if (callbacks != null) { - for (SurfaceHolder.Callback c : callbacks) { - c.surfaceDestroyed(mSurfaceHolder); - } - } + notifySurfaceDestroyed(); mSurfaceHolder.mSurfaceLock.lock(); try { mSurfaceHolder.mSurface = new Surface(); @@ -2497,6 +2494,16 @@ public final class ViewRootImpl implements ViewParent, mIsInTraversal = false; } + private void notifySurfaceDestroyed() { + mSurfaceHolder.ungetCallbacks(); + SurfaceHolder.Callback[] callbacks = mSurfaceHolder.getCallbacks(); + if (callbacks != null) { + for (SurfaceHolder.Callback c : callbacks) { + c.surfaceDestroyed(mSurfaceHolder); + } + } + } + private void maybeHandleWindowMove(Rect frame) { // TODO: Well, we are checking whether the frame has changed similarly diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index c574fb4d6605..e7361ef66531 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -7581,6 +7581,9 @@ public class TelephonyManager { @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int slotIndex, List<CarrierIdentifier> carriers) { + if (!SubscriptionManager.isValidPhoneId(slotIndex)) { + return -1; + } try { ITelephony service = getITelephony(); if (service != null) { @@ -7608,15 +7611,17 @@ public class TelephonyManager { @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public List<CarrierIdentifier> getAllowedCarriers(int slotIndex) { - try { - ITelephony service = getITelephony(); - if (service != null) { - return service.getAllowedCarriers(slotIndex); + if (SubscriptionManager.isValidPhoneId(slotIndex)) { + try { + ITelephony service = getITelephony(); + if (service != null) { + return service.getAllowedCarriers(slotIndex); + } + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#getAllowedCarriers", e); + } catch (NullPointerException e) { + Log.e(TAG, "Error calling ITelephony#getAllowedCarriers", e); } - } catch (RemoteException e) { - Log.e(TAG, "Error calling ITelephony#getAllowedCarriers", e); - } catch (NullPointerException e) { - Log.e(TAG, "Error calling ITelephony#getAllowedCarriers", e); } return new ArrayList<CarrierIdentifier>(0); } |