Loading src/java/com/android/ims/internal/ImsVideoCallProvider.java +26 −3 Original line number Diff line number Diff line Loading @@ -56,8 +56,16 @@ public abstract class ImsVideoCallProvider { mCallback = (IImsVideoCallCallback) msg.obj; break; case MSG_SET_CAMERA: onSetCamera((String) msg.obj); { SomeArgs args = (SomeArgs) msg.obj; try { onSetCamera((String) args.arg1); onSetCamera((String) args.arg1, args.argi1); } finally { args.recycle(); } break; } case MSG_SET_PREVIEW_SURFACE: onSetPreviewSurface((Surface) msg.obj); break; Loading Loading @@ -108,8 +116,11 @@ public abstract class ImsVideoCallProvider { mProviderHandler.obtainMessage(MSG_SET_CALLBACK, callback).sendToTarget(); } public void setCamera(String cameraId) { mProviderHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget(); public void setCamera(String cameraId, int uid) { SomeArgs args = SomeArgs.obtain(); args.arg1 = cameraId; args.argi1 = uid; mProviderHandler.obtainMessage(MSG_SET_CAMERA, args).sendToTarget(); } public void setPreviewSurface(Surface surface) { Loading Loading @@ -167,6 +178,18 @@ public abstract class ImsVideoCallProvider { /** @see Connection.VideoProvider#onSetCamera */ public abstract void onSetCamera(String cameraId); /** * Similar to {@link #onSetCamera(String)}, except includes the UID of the calling process which * the IMS service uses when opening the camera. This ensures camera permissions are verified * by the camera service. * * @param cameraId The id of the camera to be opened. * @param uid The uid of the caller, used when opening the camera for permission verification. * @see Connection.VideoProvider#onSetCamera */ public void onSetCamera(String cameraId, int uid) { } /** @see Connection.VideoProvider#onSetPreviewSurface */ public abstract void onSetPreviewSurface(Surface surface); Loading src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.ims.internal; import android.net.Uri; import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -216,7 +217,7 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { /** @inheritDoc */ public void onSetCamera(String cameraId) { try { mVideoCallProvider.setCamera(cameraId); mVideoCallProvider.setCamera(cameraId, Binder.getCallingUid()); } catch (RemoteException e) { } } Loading Loading
src/java/com/android/ims/internal/ImsVideoCallProvider.java +26 −3 Original line number Diff line number Diff line Loading @@ -56,8 +56,16 @@ public abstract class ImsVideoCallProvider { mCallback = (IImsVideoCallCallback) msg.obj; break; case MSG_SET_CAMERA: onSetCamera((String) msg.obj); { SomeArgs args = (SomeArgs) msg.obj; try { onSetCamera((String) args.arg1); onSetCamera((String) args.arg1, args.argi1); } finally { args.recycle(); } break; } case MSG_SET_PREVIEW_SURFACE: onSetPreviewSurface((Surface) msg.obj); break; Loading Loading @@ -108,8 +116,11 @@ public abstract class ImsVideoCallProvider { mProviderHandler.obtainMessage(MSG_SET_CALLBACK, callback).sendToTarget(); } public void setCamera(String cameraId) { mProviderHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget(); public void setCamera(String cameraId, int uid) { SomeArgs args = SomeArgs.obtain(); args.arg1 = cameraId; args.argi1 = uid; mProviderHandler.obtainMessage(MSG_SET_CAMERA, args).sendToTarget(); } public void setPreviewSurface(Surface surface) { Loading Loading @@ -167,6 +178,18 @@ public abstract class ImsVideoCallProvider { /** @see Connection.VideoProvider#onSetCamera */ public abstract void onSetCamera(String cameraId); /** * Similar to {@link #onSetCamera(String)}, except includes the UID of the calling process which * the IMS service uses when opening the camera. This ensures camera permissions are verified * by the camera service. * * @param cameraId The id of the camera to be opened. * @param uid The uid of the caller, used when opening the camera for permission verification. * @see Connection.VideoProvider#onSetCamera */ public void onSetCamera(String cameraId, int uid) { } /** @see Connection.VideoProvider#onSetPreviewSurface */ public abstract void onSetPreviewSurface(Surface surface); Loading
src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.ims.internal; import android.net.Uri; import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.Looper; Loading Loading @@ -216,7 +217,7 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { /** @inheritDoc */ public void onSetCamera(String cameraId) { try { mVideoCallProvider.setCamera(cameraId); mVideoCallProvider.setCamera(cameraId, Binder.getCallingUid()); } catch (RemoteException e) { } } Loading