Loading core/java/android/os/ExternalVibration.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.util.Slog; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import java.util.NoSuchElementException; /** /** * An ExternalVibration represents an on-going vibration being controlled by something other than * An ExternalVibration represents an on-going vibration being controlled by something other than * the core vibrator service. * the core vibrator service. Loading Loading @@ -149,7 +151,7 @@ public class ExternalVibration implements Parcelable { try { try { mToken.linkToDeath(recipient, 0); mToken.linkToDeath(recipient, 0); } catch (RemoteException e) { } catch (RemoteException e) { return; Slog.wtf(TAG, "Failed to link to token death: " + this, e); } } } } Loading @@ -157,7 +159,11 @@ public class ExternalVibration implements Parcelable { * Unlinks a recipient to death against this external vibration token * Unlinks a recipient to death against this external vibration token */ */ public void unlinkToDeath(IBinder.DeathRecipient recipient) { public void unlinkToDeath(IBinder.DeathRecipient recipient) { try { mToken.unlinkToDeath(recipient, 0); mToken.unlinkToDeath(recipient, 0); } catch (NoSuchElementException e) { Slog.wtf(TAG, "Failed to unlink to token death", e); } } } @Override @Override Loading @@ -184,12 +190,12 @@ public class ExternalVibration implements Parcelable { public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) { out.writeInt(mUid); out.writeInt(mUid); out.writeString(mPkg); out.writeString(mPkg); writeAudioAttributes(mAttrs, out, flags); writeAudioAttributes(mAttrs, out); out.writeStrongBinder(mController.asBinder()); out.writeStrongBinder(mController.asBinder()); out.writeStrongBinder(mToken); out.writeStrongBinder(mToken); } } private static void writeAudioAttributes(AudioAttributes attrs, Parcel out, int flags) { private static void writeAudioAttributes(AudioAttributes attrs, Parcel out) { out.writeInt(attrs.getUsage()); out.writeInt(attrs.getUsage()); out.writeInt(attrs.getContentType()); out.writeInt(attrs.getContentType()); out.writeInt(attrs.getCapturePreset()); out.writeInt(attrs.getCapturePreset()); Loading core/tests/vibrator/src/android/os/ExternalVibrationTest.java +17 −14 Original line number Original line Diff line number Diff line Loading @@ -16,34 +16,37 @@ package android.os; package android.os; import static junit.framework.Assert.assertEquals; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.media.AudioAttributes; import android.media.AudioAttributes; import org.junit.Ignore; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import org.junit.runners.JUnit4; @RunWith(MockitoJUnitRunner.class) @RunWith(JUnit4.class) public class ExternalVibrationTest { public class ExternalVibrationTest { @Ignore("b/291713224") @Test @Test public void testSerialization() { public void testSerialization() { AudioAttributes audio = new AudioAttributes.Builder().build(); IExternalVibrationController controller = mock(IExternalVibrationController.class); ExternalVibration original = new ExternalVibration( ExternalVibration original = new ExternalVibration( 123, // uid /* uid= */ 123, "pkg", "pkg", audio, new AudioAttributes.Builder() controller); .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .setFlags(AudioAttributes.FLAG_BYPASS_MUTE) .build(), IExternalVibrationController.Stub.asInterface(new Binder())); Parcel p = Parcel.obtain(); Parcel p = Parcel.obtain(); original.writeToParcel(p, 0); original.writeToParcel(p, 0); p.setDataPosition(0); p.setDataPosition(0); ExternalVibration restored = ExternalVibration.CREATOR.createFromParcel(p); ExternalVibration restored = ExternalVibration.CREATOR.createFromParcel(p); assertEquals(original, restored); assertThat(restored).isEqualTo(original); // ExternalVibration.equals relies on the binder token only, check other attributes as well assertThat(restored.getUid()).isEqualTo(original.getUid()); assertThat(restored.getPackage()).isEqualTo(original.getPackage()); assertThat(restored.getAudioAttributes()).isEqualTo(original.getAudioAttributes()); assertThat(restored.getToken()).isEqualTo(original.getToken()); } } } } Loading
core/java/android/os/ExternalVibration.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.util.Slog; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import java.util.NoSuchElementException; /** /** * An ExternalVibration represents an on-going vibration being controlled by something other than * An ExternalVibration represents an on-going vibration being controlled by something other than * the core vibrator service. * the core vibrator service. Loading Loading @@ -149,7 +151,7 @@ public class ExternalVibration implements Parcelable { try { try { mToken.linkToDeath(recipient, 0); mToken.linkToDeath(recipient, 0); } catch (RemoteException e) { } catch (RemoteException e) { return; Slog.wtf(TAG, "Failed to link to token death: " + this, e); } } } } Loading @@ -157,7 +159,11 @@ public class ExternalVibration implements Parcelable { * Unlinks a recipient to death against this external vibration token * Unlinks a recipient to death against this external vibration token */ */ public void unlinkToDeath(IBinder.DeathRecipient recipient) { public void unlinkToDeath(IBinder.DeathRecipient recipient) { try { mToken.unlinkToDeath(recipient, 0); mToken.unlinkToDeath(recipient, 0); } catch (NoSuchElementException e) { Slog.wtf(TAG, "Failed to unlink to token death", e); } } } @Override @Override Loading @@ -184,12 +190,12 @@ public class ExternalVibration implements Parcelable { public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) { out.writeInt(mUid); out.writeInt(mUid); out.writeString(mPkg); out.writeString(mPkg); writeAudioAttributes(mAttrs, out, flags); writeAudioAttributes(mAttrs, out); out.writeStrongBinder(mController.asBinder()); out.writeStrongBinder(mController.asBinder()); out.writeStrongBinder(mToken); out.writeStrongBinder(mToken); } } private static void writeAudioAttributes(AudioAttributes attrs, Parcel out, int flags) { private static void writeAudioAttributes(AudioAttributes attrs, Parcel out) { out.writeInt(attrs.getUsage()); out.writeInt(attrs.getUsage()); out.writeInt(attrs.getContentType()); out.writeInt(attrs.getContentType()); out.writeInt(attrs.getCapturePreset()); out.writeInt(attrs.getCapturePreset()); Loading
core/tests/vibrator/src/android/os/ExternalVibrationTest.java +17 −14 Original line number Original line Diff line number Diff line Loading @@ -16,34 +16,37 @@ package android.os; package android.os; import static junit.framework.Assert.assertEquals; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import android.media.AudioAttributes; import android.media.AudioAttributes; import org.junit.Ignore; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import org.junit.runners.JUnit4; @RunWith(MockitoJUnitRunner.class) @RunWith(JUnit4.class) public class ExternalVibrationTest { public class ExternalVibrationTest { @Ignore("b/291713224") @Test @Test public void testSerialization() { public void testSerialization() { AudioAttributes audio = new AudioAttributes.Builder().build(); IExternalVibrationController controller = mock(IExternalVibrationController.class); ExternalVibration original = new ExternalVibration( ExternalVibration original = new ExternalVibration( 123, // uid /* uid= */ 123, "pkg", "pkg", audio, new AudioAttributes.Builder() controller); .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .setFlags(AudioAttributes.FLAG_BYPASS_MUTE) .build(), IExternalVibrationController.Stub.asInterface(new Binder())); Parcel p = Parcel.obtain(); Parcel p = Parcel.obtain(); original.writeToParcel(p, 0); original.writeToParcel(p, 0); p.setDataPosition(0); p.setDataPosition(0); ExternalVibration restored = ExternalVibration.CREATOR.createFromParcel(p); ExternalVibration restored = ExternalVibration.CREATOR.createFromParcel(p); assertEquals(original, restored); assertThat(restored).isEqualTo(original); // ExternalVibration.equals relies on the binder token only, check other attributes as well assertThat(restored.getUid()).isEqualTo(original.getUid()); assertThat(restored.getPackage()).isEqualTo(original.getPackage()); assertThat(restored.getAudioAttributes()).isEqualTo(original.getAudioAttributes()); assertThat(restored.getToken()).isEqualTo(original.getToken()); } } } }