For certain RtoL languages, digit used as a part of input id
(like HW0) is also localized, hence language change results in
the duplicated inputs for an identical hardware. This CL
changes the way the id is built to language-neutral fashion,
and keeps the digit used in the id in Arabic.
Bug: 21523750
Change-Id: I8f95e0209eeee16ceb543e574ef9ed572e4d031f
Previously when a MidiManager client opened a virtual or Bluetooth device,
the client bound directly to the virtual device's MidiDeviceService
or BluetoothMidiDevice's IMidiDeviceServer for the given BluetoothDevice.
Only USB devices were opened in MidiService.
Now opening any type of MIDI device is done via IMidiManager.openDevice() or
IMidiManager.openBluetoothDevice(). MidiService tracks all connnections between
clients and devices.
Services that implement virtual devices must now require android.permission.BIND_MIDI_DEVICE_SERVICE
so only MidiService can bind to these services.
Bug: 21044677
Change-Id: I7172f7b1e0cbfe4a2a87dff376c32dc9b41aa563
Keep a reference on active Ringtones to avoid garbage collection
before playback is complete.
Bug: 11366759.
Change-Id: Icb04da427c20e0b4657e9e8b13b3ecab98e5a333
Also use boolean to control synth start and stop.
Add mention of feature declaration in Manifest.
Add virtual MIDI devices to bullet list.
Change-Id: I7b36e3ce69caf9d1d15d23f1a0836d525022ef9e
Signed-off-by: Phil Burk <philburk@google.com>
If a developer extends an existing ParcelableSpan and overwrites
writeToParcel, TextUtils will crash when attempting to unparcel
since the span type ID is not accurate. This CL makes a separate
framework-private method for writeToParcel to ensure that even if
a developer extends a ParcelableSpan class, they won't modify the
parceling or unparceling code that's tied to the span type ID.
Bug: 21274544
Change-Id: If4c3506a55999df7a3b6d87cb8d550235d7a02c6
This CL checks for the return value for Rect.intersect(Rect) for whether
there is actually an intersection before taking the calling rect as the
intersection. In the case of no intersection (Rect.intersect(Rect) returns
false), the calling rect would not have been changed, so here in this CL
it will be manually set empty.
Bug: 7368679
Change-Id: I7494c1a1649eca09e34412f0a59b795e8b3a82aa
This change also reverted commit 2c838fbd87ad5685c0008b419ea02421159b9b70,
"MediaPlayer: add mPreparing to weed out unwanted prepared messages".
Bug: 21266735
Change-Id: I392342519420bee2fde1fe1915c51d24101ca27d
More doc about AudioFormat constants, use of the builder,
sample rate, channel masks (position vs index, examples)
Bug 20921159
Change-Id: Ie60c2f3558b8b6008c6d9fb646ad9f6de396859d
Estimate the native allocation and register it so it can be
accounted for during GC.
Bug: 20299272
Change-Id: I43af3058b6fe9a41e5e7e119e390ed079402c4b8