From b7e47ae84f6fbfb082f5a286db2e5f0bae50c1a1 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 22 Mar 2016 12:30:23 -0700 Subject: [PATCH] UpdateEngine: Add resetStatus() as system API. It calls update engine to reset an already applied payload. Also change all the RemoteExceptions in UpdateEngine class to be rethrown as RuntimeExceptions according to API guidelines [FW9]. Bug: 27123767 Change-Id: I936331019cdb00f4f225f5605e51cc94bb491e24 --- api/system-current.txt | 13 ++++--- core/java/android/os/UpdateEngine.java | 51 ++++++++++++++++++++------ 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 2cad670aca10f..b8dfb3b4bd909 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -31568,12 +31568,13 @@ package android.os { public class UpdateEngine { ctor public UpdateEngine(); - method public void applyPayload(java.lang.String, long, long, java.lang.String[]) throws android.os.RemoteException; - method public boolean bind(android.os.UpdateEngineCallback, android.os.Handler) throws android.os.RemoteException; - method public boolean bind(android.os.UpdateEngineCallback) throws android.os.RemoteException; - method public void cancel() throws android.os.RemoteException; - method public void resume() throws android.os.RemoteException; - method public void suspend() throws android.os.RemoteException; + method public void applyPayload(java.lang.String, long, long, java.lang.String[]); + method public boolean bind(android.os.UpdateEngineCallback, android.os.Handler); + method public boolean bind(android.os.UpdateEngineCallback); + method public void cancel(); + method public void resetStatus(); + method public void resume(); + method public void suspend(); } public static final class UpdateEngine.ErrorCodeConstants { diff --git a/core/java/android/os/UpdateEngine.java b/core/java/android/os/UpdateEngine.java index 80e61462873f2..bf03cce947e2a 100644 --- a/core/java/android/os/UpdateEngine.java +++ b/core/java/android/os/UpdateEngine.java @@ -87,7 +87,7 @@ public class UpdateEngine { } @SystemApi - public boolean bind(final UpdateEngineCallback callback, final Handler handler) throws RemoteException { + public boolean bind(final UpdateEngineCallback callback, final Handler handler) { IUpdateEngineCallback updateEngineCallback = new IUpdateEngineCallback.Stub() { @Override public void onStatusUpdate(final int status, final float percent) { @@ -118,31 +118,60 @@ public class UpdateEngine { } }; - return mUpdateEngine.bind(updateEngineCallback); + try { + return mUpdateEngine.bind(updateEngineCallback); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } @SystemApi - public boolean bind(final UpdateEngineCallback callback) throws RemoteException { + public boolean bind(final UpdateEngineCallback callback) { return bind(callback, null); } @SystemApi - public void applyPayload(String url, long offset, long size, String[] headerKeyValuePairs) throws RemoteException { - mUpdateEngine.applyPayload(url, offset, size, headerKeyValuePairs); + public void applyPayload(String url, long offset, long size, String[] headerKeyValuePairs) { + try { + mUpdateEngine.applyPayload(url, offset, size, headerKeyValuePairs); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } @SystemApi - public void cancel() throws RemoteException { - mUpdateEngine.cancel(); + public void cancel() { + try { + mUpdateEngine.cancel(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } @SystemApi - public void suspend() throws RemoteException { - mUpdateEngine.suspend(); + public void suspend() { + try { + mUpdateEngine.suspend(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } @SystemApi - public void resume() throws RemoteException { - mUpdateEngine.resume(); + public void resume() { + try { + mUpdateEngine.resume(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + @SystemApi + public void resetStatus() { + try { + mUpdateEngine.resetStatus(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } }