Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4696dc9b authored by Rambo Wang's avatar Rambo Wang Committed by Android (Google) Code Review
Browse files

Merge "Clear binder identity in callback of IMS IPC interfaces" into sc-dev

parents 6a8ca02c 588ec9f3
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -13965,7 +13965,12 @@ public class TelephonyManager {
        IBooleanConsumer aidlConsumer = callback == null ? null : new IBooleanConsumer.Stub() {
        IBooleanConsumer aidlConsumer = callback == null ? null : new IBooleanConsumer.Stub() {
            @Override
            @Override
            public void accept(boolean result) {
            public void accept(boolean result) {
                final long identity = Binder.clearCallingIdentity();
                try {
                    executor.execute(() -> callback.accept(result));
                    executor.execute(() -> callback.accept(result));
                } finally {
                    Binder.restoreCallingIdentity(identity);
                }
            }
            }
        };
        };
+24 −4
Original line number Original line Diff line number Diff line
@@ -445,7 +445,12 @@ public class ImsMmTelManager implements RegistrationManager {
            iTelephony.getImsMmTelRegistrationState(mSubId, new IIntegerConsumer.Stub() {
            iTelephony.getImsMmTelRegistrationState(mSubId, new IIntegerConsumer.Stub() {
                @Override
                @Override
                public void accept(int result) {
                public void accept(int result) {
                    final long identity = Binder.clearCallingIdentity();
                    try {
                        executor.execute(() -> stateCallback.accept(result));
                        executor.execute(() -> stateCallback.accept(result));
                    } finally {
                        Binder.restoreCallingIdentity(identity);
                    }
                }
                }
            });
            });
        } catch (ServiceSpecificException | RemoteException e) {
        } catch (ServiceSpecificException | RemoteException e) {
@@ -487,7 +492,12 @@ public class ImsMmTelManager implements RegistrationManager {
                    new IIntegerConsumer.Stub() {
                    new IIntegerConsumer.Stub() {
                        @Override
                        @Override
                        public void accept(int result) {
                        public void accept(int result) {
                            final long identity = Binder.clearCallingIdentity();
                            try {
                                executor.execute(() -> transportTypeCallback.accept(result));
                                executor.execute(() -> transportTypeCallback.accept(result));
                            } finally {
                                Binder.restoreCallingIdentity(identity);
                            }
                        }
                        }
                    });
                    });
        } catch (ServiceSpecificException | RemoteException e) {
        } catch (ServiceSpecificException | RemoteException e) {
@@ -807,7 +817,12 @@ public class ImsMmTelManager implements RegistrationManager {
            iTelephony.isMmTelCapabilitySupported(mSubId, new IIntegerConsumer.Stub() {
            iTelephony.isMmTelCapabilitySupported(mSubId, new IIntegerConsumer.Stub() {
                @Override
                @Override
                public void accept(int result) {
                public void accept(int result) {
                    final long identity = Binder.clearCallingIdentity();
                    try {
                        executor.execute(() -> callback.accept(result == 1));
                        executor.execute(() -> callback.accept(result == 1));
                    } finally {
                        Binder.restoreCallingIdentity(identity);
                    }
                }
                }
            }, capability, transportType);
            }, capability, transportType);
        } catch (ServiceSpecificException sse) {
        } catch (ServiceSpecificException sse) {
@@ -1452,7 +1467,12 @@ public class ImsMmTelManager implements RegistrationManager {
            iTelephony.getImsMmTelFeatureState(mSubId, new IIntegerConsumer.Stub() {
            iTelephony.getImsMmTelFeatureState(mSubId, new IIntegerConsumer.Stub() {
                @Override
                @Override
                public void accept(int result) {
                public void accept(int result) {
                    final long identity = Binder.clearCallingIdentity();
                    try {
                        executor.execute(() -> callback.accept(result));
                        executor.execute(() -> callback.accept(result));
                    } finally {
                        Binder.restoreCallingIdentity(identity);
                    }
                }
                }
            });
            });
        } catch (ServiceSpecificException sse) {
        } catch (ServiceSpecificException sse) {
+12 −2
Original line number Original line Diff line number Diff line
@@ -299,7 +299,12 @@ public class ImsRcsManager {
            imsRcsController.getImsRcsRegistrationState(mSubId, new IIntegerConsumer.Stub() {
            imsRcsController.getImsRcsRegistrationState(mSubId, new IIntegerConsumer.Stub() {
                @Override
                @Override
                public void accept(int result) {
                public void accept(int result) {
                    final long identity = Binder.clearCallingIdentity();
                    try {
                        executor.execute(() -> stateCallback.accept(result));
                        executor.execute(() -> stateCallback.accept(result));
                    } finally {
                        Binder.restoreCallingIdentity(identity);
                    }
                }
                }
            });
            });
        } catch (ServiceSpecificException | RemoteException e) {
        } catch (ServiceSpecificException | RemoteException e) {
@@ -345,7 +350,12 @@ public class ImsRcsManager {
                    new IIntegerConsumer.Stub() {
                    new IIntegerConsumer.Stub() {
                        @Override
                        @Override
                        public void accept(int result) {
                        public void accept(int result) {
                            final long identity = Binder.clearCallingIdentity();
                            try {
                                executor.execute(() -> transportTypeCallback.accept(result));
                                executor.execute(() -> transportTypeCallback.accept(result));
                            } finally {
                                Binder.restoreCallingIdentity(identity);
                            }
                        }
                        }
                    });
                    });
        } catch (ServiceSpecificException | RemoteException e) {
        } catch (ServiceSpecificException | RemoteException e) {