Loading services/contentcapture/java/com/android/server/contentcapture/ContentCaptureManagerService.java +35 −17 Original line number Diff line number Diff line Loading @@ -1072,26 +1072,18 @@ public final class ContentCaptureManagerService extends ParcelFileDescriptor sourceOut = servicePipe.second; ParcelFileDescriptor sinkOut = servicePipe.first; synchronized (mParentService.mLock) { mParentService.mPackagesWithShareRequests.add(mDataShareRequest.getPackageName()); } try { mClientAdapter.write(sourceIn); } catch (RemoteException e) { Slog.e(TAG, "Failed to call write() the client operation", e); if (!setUpSharingPipeline(mClientAdapter, serviceAdapter, sourceIn, sinkOut)) { sendErrorSignal(mClientAdapter, serviceAdapter, ContentCaptureManager.DATA_SHARE_ERROR_UNKNOWN); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_CLIENT_PIPE_FAIL); return; bestEffortCloseFileDescriptors(sourceIn, sinkIn, sourceOut, sinkOut); synchronized (mParentService.mLock) { mParentService.mPackagesWithShareRequests .remove(mDataShareRequest.getPackageName()); } try { serviceAdapter.start(sinkOut); } catch (RemoteException e) { Slog.e(TAG, "Failed to call start() the service operation", e); sendErrorSignal(mClientAdapter, serviceAdapter, ContentCaptureManager.DATA_SHARE_ERROR_UNKNOWN); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_SERVICE_PIPE_FAIL); return; } Loading Loading @@ -1184,6 +1176,32 @@ public final class ContentCaptureManagerService extends } } private boolean setUpSharingPipeline( IDataShareWriteAdapter clientAdapter, IDataShareReadAdapter serviceAdapter, ParcelFileDescriptor sourceIn, ParcelFileDescriptor sinkOut) { try { clientAdapter.write(sourceIn); } catch (RemoteException e) { Slog.e(TAG, "Failed to call write() the client operation", e); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_CLIENT_PIPE_FAIL); return false; } try { serviceAdapter.start(sinkOut); } catch (RemoteException e) { Slog.e(TAG, "Failed to call start() the service operation", e); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_SERVICE_PIPE_FAIL); return false; } return true; } private void enforceDataSharingTtl(ParcelFileDescriptor sourceIn, ParcelFileDescriptor sinkIn, ParcelFileDescriptor sourceOut, Loading Loading
services/contentcapture/java/com/android/server/contentcapture/ContentCaptureManagerService.java +35 −17 Original line number Diff line number Diff line Loading @@ -1072,26 +1072,18 @@ public final class ContentCaptureManagerService extends ParcelFileDescriptor sourceOut = servicePipe.second; ParcelFileDescriptor sinkOut = servicePipe.first; synchronized (mParentService.mLock) { mParentService.mPackagesWithShareRequests.add(mDataShareRequest.getPackageName()); } try { mClientAdapter.write(sourceIn); } catch (RemoteException e) { Slog.e(TAG, "Failed to call write() the client operation", e); if (!setUpSharingPipeline(mClientAdapter, serviceAdapter, sourceIn, sinkOut)) { sendErrorSignal(mClientAdapter, serviceAdapter, ContentCaptureManager.DATA_SHARE_ERROR_UNKNOWN); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_CLIENT_PIPE_FAIL); return; bestEffortCloseFileDescriptors(sourceIn, sinkIn, sourceOut, sinkOut); synchronized (mParentService.mLock) { mParentService.mPackagesWithShareRequests .remove(mDataShareRequest.getPackageName()); } try { serviceAdapter.start(sinkOut); } catch (RemoteException e) { Slog.e(TAG, "Failed to call start() the service operation", e); sendErrorSignal(mClientAdapter, serviceAdapter, ContentCaptureManager.DATA_SHARE_ERROR_UNKNOWN); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_SERVICE_PIPE_FAIL); return; } Loading Loading @@ -1184,6 +1176,32 @@ public final class ContentCaptureManagerService extends } } private boolean setUpSharingPipeline( IDataShareWriteAdapter clientAdapter, IDataShareReadAdapter serviceAdapter, ParcelFileDescriptor sourceIn, ParcelFileDescriptor sinkOut) { try { clientAdapter.write(sourceIn); } catch (RemoteException e) { Slog.e(TAG, "Failed to call write() the client operation", e); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_CLIENT_PIPE_FAIL); return false; } try { serviceAdapter.start(sinkOut); } catch (RemoteException e) { Slog.e(TAG, "Failed to call start() the service operation", e); logServiceEvent( CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__DATA_SHARE_ERROR_SERVICE_PIPE_FAIL); return false; } return true; } private void enforceDataSharingTtl(ParcelFileDescriptor sourceIn, ParcelFileDescriptor sinkIn, ParcelFileDescriptor sourceOut, Loading