From 0ebff46583de6e77b80bd0cd282d7a6ba0074f96 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Fri, 16 Jun 2017 17:37:20 -0700 Subject: [PATCH] Add details to Download progress callback Split decode into max size and current size. Test: builds Change-Id: Ice18d7f0e9ae99b3c24fe10843da80abd0d912d7 --- Android.mk | 2 +- .../telephony/MbmsDownloadManager.java | 9 ++++--- ...ack.java => DownloadProgressListener.java} | 26 +++++++++++-------- ...ck.aidl => IDownloadProgressListener.aidl} | 6 ++--- .../mbms/vendor/IMbmsDownloadService.aidl | 4 +-- .../mbms/vendor/MbmsDownloadServiceBase.java | 4 +-- 6 files changed, 28 insertions(+), 23 deletions(-) rename telephony/java/android/telephony/mbms/{DownloadCallback.java => DownloadProgressListener.java} (50%) rename telephony/java/android/telephony/mbms/{IDownloadCallback.aidl => IDownloadProgressListener.aidl} (87%) diff --git a/Android.mk b/Android.mk index 700cdc15e7285..8179748040f02 100644 --- a/Android.mk +++ b/Android.mk @@ -437,7 +437,7 @@ LOCAL_SRC_FILES += \ telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl \ telephony/java/android/telephony/mbms/IMbmsDownloadManagerCallback.aidl \ telephony/java/android/telephony/mbms/IMbmsStreamingManagerCallback.aidl \ - telephony/java/android/telephony/mbms/IDownloadCallback.aidl \ + telephony/java/android/telephony/mbms/IDownloadProgressListener.aidl \ telephony/java/android/telephony/mbms/IStreamingServiceCallback.aidl \ telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl \ telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl \ diff --git a/telephony/java/android/telephony/MbmsDownloadManager.java b/telephony/java/android/telephony/MbmsDownloadManager.java index 4eeabb078a646..c747b8488634c 100644 --- a/telephony/java/android/telephony/MbmsDownloadManager.java +++ b/telephony/java/android/telephony/MbmsDownloadManager.java @@ -28,8 +28,8 @@ import android.net.Uri; import android.os.IBinder; import android.os.RemoteException; import android.telephony.mbms.FileInfo; -import android.telephony.mbms.IDownloadCallback; import android.telephony.mbms.DownloadRequest; +import android.telephony.mbms.IDownloadProgressListener; import android.telephony.mbms.IMbmsDownloadManagerCallback; import android.telephony.mbms.MbmsDownloadManagerCallback; import android.telephony.mbms.MbmsDownloadReceiver; @@ -390,9 +390,10 @@ public class MbmsDownloadManager { * Asynchronous errors through the listener include any of the errors * * @param request The request that specifies what should be downloaded - * @param callback Optional callback that will provide progress updates if the app is running. + * @param progressListener Optional listener that will be provided progress updates + * if the app is running. */ - public void download(DownloadRequest request, IDownloadCallback callback) + public void download(DownloadRequest request, IDownloadProgressListener progressListener) throws MbmsException { IMbmsDownloadService downloadService = mService.get(); if (downloadService == null) { @@ -412,7 +413,7 @@ public class MbmsDownloadManager { checkValidDownloadDestination(request); writeDownloadRequestToken(request); try { - downloadService.download(request, callback); + downloadService.download(request, progressListener); } catch (RemoteException e) { mService.set(null); throw new MbmsException(MbmsException.ERROR_MIDDLEWARE_LOST); diff --git a/telephony/java/android/telephony/mbms/DownloadCallback.java b/telephony/java/android/telephony/mbms/DownloadProgressListener.java similarity index 50% rename from telephony/java/android/telephony/mbms/DownloadCallback.java rename to telephony/java/android/telephony/mbms/DownloadProgressListener.java index 0c6fec4b9c75e..d6bd5dca87819 100644 --- a/telephony/java/android/telephony/mbms/DownloadCallback.java +++ b/telephony/java/android/telephony/mbms/DownloadProgressListener.java @@ -20,22 +20,26 @@ package android.telephony.mbms; * A optional listener class used by download clients to track progress. * @hide */ -public class DownloadCallback extends IDownloadCallback.Stub { +public class DownloadProgressListener extends IDownloadProgressListener.Stub { /** * Gives process callbacks for a given DownloadRequest. - * request indicates which download is being referenced. - * fileInfo gives information about the file being downloaded. Note that + * This is optionally specified when requesting a download and + * only lives while the app is running - it's unlikely to be useful for + * downloads far in the future. + * + * @param request a {@link DownloadRequest}, indicating which download is being referenced. + * @param fileInfo a {@link FileInfo} specifying the file to report progress on. Note that * the request may result in many files being downloaded and the client * may not have been able to get a list of them in advance. - * downloadSize is the final amount to be downloaded. This may be different - * from the decoded final size, but is useful in gauging download progress. - * currentSize is the amount currently downloaded. - * decodedPercent is the percent from 0 to 100 of the file decoded. After the - * download completes the contents needs to be processed. It is perhaps - * uncompressed, transcoded and/or decrypted. Generally the download completes - * before the decode is started, but that's not required. + * @param currentDownloadSize is the current amount downloaded. + * @param fullDownloadSize is the total number of bytes that make up the downloaded content. + * This may be different from the decoded final size, but is useful in gauging download + * progress. + * @param currentDecodedSize is the number of bytes that have been decoded. + * @param fullDecodedSize is the total number of bytes that make up the final decoded content. */ public void progress(DownloadRequest request, FileInfo fileInfo, - int downloadSize, int currentSize, int decodedPercent) { + int currentDownloadSize, int fullDownloadSize, + int currentDecodedSize, int fullDecodedSize) { } } diff --git a/telephony/java/android/telephony/mbms/IDownloadCallback.aidl b/telephony/java/android/telephony/mbms/IDownloadProgressListener.aidl similarity index 87% rename from telephony/java/android/telephony/mbms/IDownloadCallback.aidl rename to telephony/java/android/telephony/mbms/IDownloadProgressListener.aidl index a6bd7e5f84f9b..bb9dc6cfea9f0 100755 --- a/telephony/java/android/telephony/mbms/IDownloadCallback.aidl +++ b/telephony/java/android/telephony/mbms/IDownloadProgressListener.aidl @@ -23,12 +23,12 @@ import android.telephony.mbms.FileInfo; * The optional interface used by download clients to track progress. * @hide */ -interface IDownloadCallback +interface IDownloadProgressListener { /** * Gives progress callbacks for a given DownloadRequest. Includes a FileInfo * as the list of files may not have been known at request-time. */ - void progress(in DownloadRequest request, in FileInfo fileInfo, int downloadSize, - int currentSize, int decodedPercent); + void progress(in DownloadRequest request, in FileInfo fileInfo, int currentDownloadSize, + int fullDownloadSize, int currentDecodedSize, int fullDecodedSize); } diff --git a/telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl b/telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl index 725d11c880b27..0a76f322bbbb7 100755 --- a/telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl +++ b/telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl @@ -21,7 +21,7 @@ import android.net.Uri; import android.telephony.mbms.DownloadRequest; import android.telephony.mbms.FileInfo; import android.telephony.mbms.IMbmsDownloadManagerCallback; -import android.telephony.mbms.IDownloadCallback; +import android.telephony.mbms.IDownloadProgressListener; /** * @hide @@ -34,7 +34,7 @@ interface IMbmsDownloadService int setTempFileRootDirectory(int subId, String rootDirectoryPath); - int download(in DownloadRequest downloadRequest, IDownloadCallback listener); + int download(in DownloadRequest downloadRequest, IDownloadProgressListener listener); List listPendingDownloads(int subscriptionId); diff --git a/telephony/java/android/telephony/mbms/vendor/MbmsDownloadServiceBase.java b/telephony/java/android/telephony/mbms/vendor/MbmsDownloadServiceBase.java index 8fbd4481cfc21..d725d9f633ce1 100644 --- a/telephony/java/android/telephony/mbms/vendor/MbmsDownloadServiceBase.java +++ b/telephony/java/android/telephony/mbms/vendor/MbmsDownloadServiceBase.java @@ -20,7 +20,7 @@ import android.annotation.NonNull; import android.os.RemoteException; import android.telephony.mbms.DownloadRequest; import android.telephony.mbms.FileInfo; -import android.telephony.mbms.IDownloadCallback; +import android.telephony.mbms.IDownloadProgressListener; import android.telephony.mbms.IMbmsDownloadManagerCallback; import android.telephony.mbms.MbmsException; @@ -105,7 +105,7 @@ public class MbmsDownloadServiceBase extends IMbmsDownloadService.Stub { * @return TODO: enumerate possible return values */ @Override - public int download(DownloadRequest downloadRequest, IDownloadCallback listener) + public int download(DownloadRequest downloadRequest, IDownloadProgressListener listener) throws RemoteException { return 0; }