From 9d8104e15c21294a21a421a02303c9586f823e96 Mon Sep 17 00:00:00 2001 From: mgeier63 Date: Wed, 26 Aug 2015 11:13:38 +0200 Subject: initial mod --- .../openpgp/util/ParcelFileDescriptorUtil.java | 48 +++++++--------------- 1 file changed, 15 insertions(+), 33 deletions(-) (limited to 'openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java') diff --git a/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java b/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java index b9492f9..461a5ba 100644 --- a/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java +++ b/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java @@ -23,84 +23,66 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -/** - * Partially based on Stackoverflow: Transfer InputStream to another Service (across process boundaries) - **/ public class ParcelFileDescriptorUtil { - public interface IThreadListener { - void onThreadFinished(final Thread thread); - } - - public static ParcelFileDescriptor pipeFrom(InputStream inputStream, IThreadListener listener) + public static ParcelFileDescriptor pipeFrom(InputStream inputStream) throws IOException { ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe(); ParcelFileDescriptor readSide = pipe[0]; ParcelFileDescriptor writeSide = pipe[1]; - // start the transfer thread - new TransferThread(inputStream, new ParcelFileDescriptor.AutoCloseOutputStream(writeSide), - listener) + new TransferThread(inputStream, new ParcelFileDescriptor.AutoCloseOutputStream(writeSide)) .start(); return readSide; } - public static ParcelFileDescriptor pipeTo(OutputStream outputStream, IThreadListener listener) + + public static TransferThread pipeTo(OutputStream outputStream, ParcelFileDescriptor output) throws IOException { - ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe(); - ParcelFileDescriptor readSide = pipe[0]; - ParcelFileDescriptor writeSide = pipe[1]; - // start the transfer thread - new TransferThread(new ParcelFileDescriptor.AutoCloseInputStream(readSide), outputStream, - listener) - .start(); + TransferThread t = new TransferThread(new ParcelFileDescriptor.AutoCloseInputStream(output), outputStream); - return writeSide; + t.start(); + return t; } + static class TransferThread extends Thread { final InputStream mIn; final OutputStream mOut; - final IThreadListener mListener; - TransferThread(InputStream in, OutputStream out, IThreadListener listener) { - super("ParcelFileDescriptor Transfer Thread"); + TransferThread(InputStream in, OutputStream out) { + super("IPC Transfer Thread"); mIn = in; mOut = out; - mListener = listener; setDaemon(true); } @Override public void run() { - byte[] buf = new byte[1024]; + byte[] buf = new byte[4096]; int len; try { while ((len = mIn.read(buf)) > 0) { mOut.write(buf, 0, len); } - mOut.flush(); // just to be safe } catch (IOException e) { - //Log.e(OpenPgpApi.TAG, "TransferThread" + getId() + ": writing failed", e); + e.printStackTrace(); } finally { try { mIn.close(); } catch (IOException e) { - //Log.e(OpenPgpApi.TAG, "TransferThread" + getId(), e); + e.printStackTrace(); } try { mOut.close(); } catch (IOException e) { - //Log.e(OpenPgpApi.TAG, "TransferThread" + getId(), e); + e.printStackTrace(); } } - if (mListener != null) { - //Log.d(OpenPgpApi.TAG, "TransferThread " + getId() + " finished!"); - mListener.onThreadFinished(this); - } } } + } -- cgit v1.2.3 From 820e183ca76d0f7feb5d7584d5eddcd49a4e7d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Fri, 28 Aug 2015 17:03:15 +0200 Subject: Fix and improve OpenPgpService2 code --- .../org/openintents/openpgp/util/ParcelFileDescriptorUtil.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java') diff --git a/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java b/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java index 461a5ba..931ed84 100644 --- a/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java +++ b/openpgp-api/src/main/java/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java @@ -18,6 +18,7 @@ package org.openintents.openpgp.util; import android.os.ParcelFileDescriptor; +import android.util.Log; import java.io.IOException; import java.io.InputStream; @@ -69,17 +70,15 @@ public class ParcelFileDescriptorUtil { mOut.write(buf, 0, len); } } catch (IOException e) { - e.printStackTrace(); + Log.e(OpenPgpApi.TAG, "IOException when writing to out", e); } finally { try { mIn.close(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException ignored) { } try { mOut.close(); - } catch (IOException e) { - e.printStackTrace(); + } catch (IOException ignored) { } } } -- cgit v1.2.3