tree 7f922afd2c94c03446b89e0f9bc0bcdc6ed25b2a
parent 03c14760a593b8bbea502fc8cbcc0ffe1e2ac058
author Tor Norbye <tnorbye@google.com> 1550719515 -0800
committer Tor Norbye <tnorbye@google.com> 1550719515 -0800

Update MbmsDownloadServiceBase to reflect implements IInterface

The interface is there in the stubs but was missing from the signature
file; this was added as a special case to be compatible with doclava
but the special case should have been removed when we switched to the
new signature file format.

This makes this signature match the other signature for
MbmsStreamingServiceBase:

  public class MbmsDownloadServiceBase extends android.os.Binder implements android.os.IInterface {
  public class MbmsStreamingServiceBase extends android.os.Binder implements android.os.IInterface {

Test: make update-api checkapi
Change-Id: I847066580248f47be609e2795db8904f58e550b8
