Loading Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ LOCAL_SRC_FILES += \ core/java/android/os/IPowerManager.aidl \ core/java/android/os/IRemoteCallback.aidl \ core/java/android/os/IVibratorService.aidl \ core/java/android/service/urlrenderer/IUrlRendererService.aidl \ core/java/android/service/urlrenderer/IUrlRendererCallback.aidl \ core/java/android/service/wallpaper/IWallpaperConnection.aidl \ core/java/android/service/wallpaper/IWallpaperEngine.aidl \ core/java/android/service/wallpaper/IWallpaperService.aidl \ Loading core/java/android/service/urlrenderer/IUrlRendererCallback.aidl 0 → 100644 +26 −0 Original line number Diff line number Diff line /* * Copyright (c) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.os.ParcelFileDescriptor; /** * {@hide} */ oneway interface IUrlRendererCallback { void complete(String url, in ParcelFileDescriptor result); } core/java/android/service/urlrenderer/IUrlRendererService.aidl 0 → 100644 +27 −0 Original line number Diff line number Diff line /* * Copyright (c) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.service.urlrenderer.IUrlRendererCallback; /** * {@hide} */ interface IUrlRendererService { void render(in List<String> urls, int width, int height, IUrlRendererCallback cb); } core/java/android/service/urlrenderer/UrlRenderer.java 0 → 100644 +89 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import java.util.List; /** * TODO(phanna): Document this class. * {@hide} while developing */ public final class UrlRenderer { /** * Interface for clients to receive the result of calls to * {@link UrlRenderer#render}. * {@hide} while developing */ public interface Callback { /** * Calls to {@link render} will result in multiple invokations of this * method for each url. A null result means that there was a server * error or a problem rendering the url. * @param url The url that has been rendered. * @param result A ParcelFileDescriptor containing the encoded image * data. The client is responsible for closing the stream * to free resources. A null result indicates a failure * to render. */ public void complete(String url, ParcelFileDescriptor result); } private IUrlRendererService mService; /** * Create a new UrlRenderer to remotely render urls. * @param service An IBinder service usually obtained through * {@link ServiceConnection#onServiceConnected} */ public UrlRenderer(IBinder service) { mService = IUrlRendererService.Stub.asInterface(service); } private static class InternalCallback extends IUrlRendererCallback.Stub { private final Callback mCallback; InternalCallback(Callback cb) { mCallback = cb; } public void complete(String url, ParcelFileDescriptor result) { mCallback.complete(url, result); } } /** * Render the list of <var>urls</var> and invoke the <var>callback</var> * for each result. * @param urls A List of urls to render. * @param width The desired width of the result. * @param height The desired height of the result. * @param callback An instance of {@link Callback} invoked for each url. */ public void render(List<String> urls, int width, int height, Callback callback) { if (mService != null) { try { mService.render(urls, width, height, new InternalCallback(callback)); } catch (RemoteException ex) { } } } } core/java/android/service/urlrenderer/UrlRendererService.java 0 → 100644 +93 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.app.Service; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import java.util.List; /** * TODO(phanna): Complete documentation. * {@hide} while developing */ public abstract class UrlRendererService extends Service { /** * The {@link Intent} that must be declared as handled by the service. */ @SdkConstant(SdkConstantType.SERVICE_ACTION) public static final String SERVICE_INTERFACE = "android.service.urlrenderer.UrlRendererService"; static final String TAG = "UrlRendererService"; private static class InternalCallback implements UrlRenderer.Callback { private final IUrlRendererCallback mCallback; InternalCallback(IUrlRendererCallback cb) { mCallback = cb; } public void complete(String url, ParcelFileDescriptor result) { try { mCallback.complete(url, result); } catch (RemoteException ex) { } } } private final IUrlRendererService.Stub mBinderInterface = new IUrlRendererService.Stub() { public void render(List<String> urls, int width, int height, IUrlRendererCallback cb) { processRequest(urls, width, height, new InternalCallback(cb)); } }; /** * Implement to return the implementation of the internal accessibility * service interface. Subclasses should not override. */ @Override public final android.os.IBinder onBind(android.content.Intent intent) { return mBinderInterface; } /** * When all clients unbind from the service, stop the service. Subclasses * should not override. */ @Override public final boolean onUnbind(android.content.Intent intent) { stopSelf(); return false; } /** * Subclasses implement this function to process the given urls. When each * url is complete, the subclass must invoke the callback with the result. * @param urls A list of urls to render at the given dimensions. * @param width The desired width of the result. * @param height The desired height of the result. * @param cb The callback to invoke when each url is complete. */ public abstract void processRequest(List<String> urls, int width, int height, UrlRenderer.Callback cb); } Loading
Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ LOCAL_SRC_FILES += \ core/java/android/os/IPowerManager.aidl \ core/java/android/os/IRemoteCallback.aidl \ core/java/android/os/IVibratorService.aidl \ core/java/android/service/urlrenderer/IUrlRendererService.aidl \ core/java/android/service/urlrenderer/IUrlRendererCallback.aidl \ core/java/android/service/wallpaper/IWallpaperConnection.aidl \ core/java/android/service/wallpaper/IWallpaperEngine.aidl \ core/java/android/service/wallpaper/IWallpaperService.aidl \ Loading
core/java/android/service/urlrenderer/IUrlRendererCallback.aidl 0 → 100644 +26 −0 Original line number Diff line number Diff line /* * Copyright (c) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.os.ParcelFileDescriptor; /** * {@hide} */ oneway interface IUrlRendererCallback { void complete(String url, in ParcelFileDescriptor result); }
core/java/android/service/urlrenderer/IUrlRendererService.aidl 0 → 100644 +27 −0 Original line number Diff line number Diff line /* * Copyright (c) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.service.urlrenderer.IUrlRendererCallback; /** * {@hide} */ interface IUrlRendererService { void render(in List<String> urls, int width, int height, IUrlRendererCallback cb); }
core/java/android/service/urlrenderer/UrlRenderer.java 0 → 100644 +89 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import java.util.List; /** * TODO(phanna): Document this class. * {@hide} while developing */ public final class UrlRenderer { /** * Interface for clients to receive the result of calls to * {@link UrlRenderer#render}. * {@hide} while developing */ public interface Callback { /** * Calls to {@link render} will result in multiple invokations of this * method for each url. A null result means that there was a server * error or a problem rendering the url. * @param url The url that has been rendered. * @param result A ParcelFileDescriptor containing the encoded image * data. The client is responsible for closing the stream * to free resources. A null result indicates a failure * to render. */ public void complete(String url, ParcelFileDescriptor result); } private IUrlRendererService mService; /** * Create a new UrlRenderer to remotely render urls. * @param service An IBinder service usually obtained through * {@link ServiceConnection#onServiceConnected} */ public UrlRenderer(IBinder service) { mService = IUrlRendererService.Stub.asInterface(service); } private static class InternalCallback extends IUrlRendererCallback.Stub { private final Callback mCallback; InternalCallback(Callback cb) { mCallback = cb; } public void complete(String url, ParcelFileDescriptor result) { mCallback.complete(url, result); } } /** * Render the list of <var>urls</var> and invoke the <var>callback</var> * for each result. * @param urls A List of urls to render. * @param width The desired width of the result. * @param height The desired height of the result. * @param callback An instance of {@link Callback} invoked for each url. */ public void render(List<String> urls, int width, int height, Callback callback) { if (mService != null) { try { mService.render(urls, width, height, new InternalCallback(callback)); } catch (RemoteException ex) { } } } }
core/java/android/service/urlrenderer/UrlRendererService.java 0 → 100644 +93 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.service.urlrenderer; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.app.Service; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import java.util.List; /** * TODO(phanna): Complete documentation. * {@hide} while developing */ public abstract class UrlRendererService extends Service { /** * The {@link Intent} that must be declared as handled by the service. */ @SdkConstant(SdkConstantType.SERVICE_ACTION) public static final String SERVICE_INTERFACE = "android.service.urlrenderer.UrlRendererService"; static final String TAG = "UrlRendererService"; private static class InternalCallback implements UrlRenderer.Callback { private final IUrlRendererCallback mCallback; InternalCallback(IUrlRendererCallback cb) { mCallback = cb; } public void complete(String url, ParcelFileDescriptor result) { try { mCallback.complete(url, result); } catch (RemoteException ex) { } } } private final IUrlRendererService.Stub mBinderInterface = new IUrlRendererService.Stub() { public void render(List<String> urls, int width, int height, IUrlRendererCallback cb) { processRequest(urls, width, height, new InternalCallback(cb)); } }; /** * Implement to return the implementation of the internal accessibility * service interface. Subclasses should not override. */ @Override public final android.os.IBinder onBind(android.content.Intent intent) { return mBinderInterface; } /** * When all clients unbind from the service, stop the service. Subclasses * should not override. */ @Override public final boolean onUnbind(android.content.Intent intent) { stopSelf(); return false; } /** * Subclasses implement this function to process the given urls. When each * url is complete, the subclass must invoke the callback with the result. * @param urls A list of urls to render at the given dimensions. * @param width The desired width of the result. * @param height The desired height of the result. * @param cb The callback to invoke when each url is complete. */ public abstract void processRequest(List<String> urls, int width, int height, UrlRenderer.Callback cb); }