Loading packages/SystemUI/src/com/android/systemui/util/service/ObservableServiceConnection.java +12 −6 Original line number Diff line number Diff line Loading @@ -143,7 +143,13 @@ public class ObservableServiceConnection<T> implements ServiceConnection { * @return {@code true} if initiating binding succeed, {@code false} otherwise. */ public boolean bind() { final boolean bindResult = mContext.bindService(mServiceIntent, mFlags, mExecutor, this); boolean bindResult = false; try { bindResult = mContext.bindService(mServiceIntent, mFlags, mExecutor, this); } catch (SecurityException e) { Log.d(TAG, "Could not bind to service", e); mContext.unbindService(this); } mBoundCalled = true; if (DEBUG) { Log.d(TAG, "bind. bound:" + bindResult); Loading packages/SystemUI/tests/src/com/android/systemui/util/service/ObservableServiceConnectionTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.util.service; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; Loading Loading @@ -169,4 +171,19 @@ public class ObservableServiceConnectionTest extends SysuiTestCase { verify(mCallback).onDisconnected(eq(connection), eq(ObservableServiceConnection.DISCONNECT_REASON_UNBIND)); } @Test public void testBindServiceThrowsError() { ObservableServiceConnection<Foo> connection = new ObservableServiceConnection<>(mContext, mIntent, mExecutor, mTransformer); connection.addCallback(mCallback); when(mContext.bindService(eq(mIntent), anyInt(), eq(mExecutor), eq(connection))) .thenThrow(new SecurityException()); // Verify that the exception was caught and that bind returns false, and we properly // unbind. assertThat(connection.bind()).isFalse(); verify(mContext).unbindService(connection); } } Loading
packages/SystemUI/src/com/android/systemui/util/service/ObservableServiceConnection.java +12 −6 Original line number Diff line number Diff line Loading @@ -143,7 +143,13 @@ public class ObservableServiceConnection<T> implements ServiceConnection { * @return {@code true} if initiating binding succeed, {@code false} otherwise. */ public boolean bind() { final boolean bindResult = mContext.bindService(mServiceIntent, mFlags, mExecutor, this); boolean bindResult = false; try { bindResult = mContext.bindService(mServiceIntent, mFlags, mExecutor, this); } catch (SecurityException e) { Log.d(TAG, "Could not bind to service", e); mContext.unbindService(this); } mBoundCalled = true; if (DEBUG) { Log.d(TAG, "bind. bound:" + bindResult); Loading
packages/SystemUI/tests/src/com/android/systemui/util/service/ObservableServiceConnectionTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.util.service; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; Loading Loading @@ -169,4 +171,19 @@ public class ObservableServiceConnectionTest extends SysuiTestCase { verify(mCallback).onDisconnected(eq(connection), eq(ObservableServiceConnection.DISCONNECT_REASON_UNBIND)); } @Test public void testBindServiceThrowsError() { ObservableServiceConnection<Foo> connection = new ObservableServiceConnection<>(mContext, mIntent, mExecutor, mTransformer); connection.addCallback(mCallback); when(mContext.bindService(eq(mIntent), anyInt(), eq(mExecutor), eq(connection))) .thenThrow(new SecurityException()); // Verify that the exception was caught and that bind returns false, and we properly // unbind. assertThat(connection.bind()).isFalse(); verify(mContext).unbindService(connection); } }