diff options
Diffstat (limited to 'src/com/cyanogenmod/filemanager/commands/shell')
10 files changed, 39 insertions, 33 deletions
diff --git a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java index 7c0a6f78..a340b78f 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java @@ -47,7 +47,7 @@ public abstract class AsyncResultProgram /** * @hide */ - final List<String> mPartialData; + final List<byte[]> mPartialData; /** * @hide */ @@ -97,7 +97,7 @@ public abstract class AsyncResultProgram if (mAsyncResultListener instanceof ConcurrentAsyncResultListener) { ((ConcurrentAsyncResultListener) mAsyncResultListener).onRegister(); } - this.mPartialData = Collections.synchronizedList(new ArrayList<String>()); + this.mPartialData = Collections.synchronizedList(new ArrayList<byte[]>()); this.mPartialDataType = Collections.synchronizedList(new ArrayList<Byte>()); this.mTempBuffer = new StringBuffer(); this.mOnCancelListener = null; @@ -169,12 +169,12 @@ public abstract class AsyncResultProgram /** * Method that parse the result of a program invocation. * - * @param partialIn A partial standard input buffer (incremental buffer) + * @param input A partial standard input buffer (incremental buffer) * @hide */ - public final void onRequestParsePartialResult(String partialIn) { + public final void onRequestParsePartialResult(byte[] input) { + String partialIn = new String(input); synchronized (this.mSync) { - String data = partialIn; String rest = ""; //$NON-NLS-1$ if (parseOnlyCompleteLines()) { int pos = partialIn.lastIndexOf(FileHelper.NEWLINE); @@ -185,12 +185,11 @@ public abstract class AsyncResultProgram } //Retrieve the data - data = this.mTempBuffer.append(partialIn.substring(0, pos + 1)).toString(); rest = partialIn.substring(pos + 1); } this.mPartialDataType.add(STDIN); - this.mPartialData.add(data); + this.mPartialData.add(input); this.mTempBuffer = new StringBuffer(rest); this.mSync.notify(); } @@ -220,7 +219,7 @@ public abstract class AsyncResultProgram } this.mPartialDataType.add(STDERR); - this.mPartialData.add(data); + this.mPartialData.add(data.getBytes()); this.mTempBuffer = new StringBuffer(rest); this.mSync.notify(); } @@ -381,7 +380,7 @@ public abstract class AsyncResultProgram AsyncResultProgram.this.mSync.wait(); while (AsyncResultProgram.this.mPartialData.size() > 0) { Byte type = AsyncResultProgram.this.mPartialDataType.remove(0); - String data = AsyncResultProgram.this.mPartialData.remove(0); + byte[] data = AsyncResultProgram.this.mPartialData.remove(0); try { if (type.compareTo(STDIN) == 0) { AsyncResultProgram.this.onParsePartialResult(data); diff --git a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgramListener.java b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgramListener.java index 158023c3..11622ff3 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgramListener.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgramListener.java @@ -48,12 +48,12 @@ public interface AsyncResultProgramListener { * * @param partialIn A partial standard input buffer (incremental buffer) */ - void onParsePartialResult(String partialIn); + void onParsePartialResult(byte[] partialIn); /** * Method invoked when a parse of new error results are needed. * * @param partialErr A partial standard err buffer (incremental buffer) */ - void onParseErrorPartialResult(String partialErr); + void onParseErrorPartialResult(byte[] partialErr); } diff --git a/src/com/cyanogenmod/filemanager/commands/shell/ChecksumCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/ChecksumCommand.java index 97fbea39..7b37815c 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/ChecksumCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/ChecksumCommand.java @@ -89,8 +89,9 @@ public class ChecksumCommand extends AsyncResultProgram implements ChecksumExecu * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { - if (partialIn == null || partialIn.length() ==0) return; + public void onParsePartialResult(final byte[] in) { + String partialIn = new String(in); + if (partialIn == null || partialIn.length() == 0) return; boolean endsWithNewLine = partialIn.endsWith("\n"); //$NON-NLS-1$ String[] lines = partialIn.split("\n"); //$NON-NLS-1$ @@ -98,7 +99,7 @@ public class ChecksumCommand extends AsyncResultProgram implements ChecksumExecu lines[0] = this.mPartial + lines[0]; // Return all the lines, except the last - for (int i = 0; i < lines.length-1; i++) { + for (int i = 0; i < lines.length - 1; i++) { if (getAsyncResultListener() != null) { String data = processPartialResult(lines[i]); if (data != null) { @@ -110,7 +111,7 @@ public class ChecksumCommand extends AsyncResultProgram implements ChecksumExecu // Return the last line? if (endsWithNewLine) { if (getAsyncResultListener() != null) { - String data = processPartialResult(lines[lines.length-1]); + String data = processPartialResult(lines[lines.length - 1]); if (data != null) { getAsyncResultListener().onPartialResult(data); } @@ -118,7 +119,7 @@ public class ChecksumCommand extends AsyncResultProgram implements ChecksumExecu this.mPartial = ""; //$NON-NLS-1$ } else { // Save the partial for next calls - this.mPartial = lines[lines.length-1]; + this.mPartial = lines[lines.length - 1]; } } @@ -126,7 +127,7 @@ public class ChecksumCommand extends AsyncResultProgram implements ChecksumExecu * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/CompressCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/CompressCommand.java index 1659fa20..54e81315 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/CompressCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/CompressCommand.java @@ -202,7 +202,8 @@ public class CompressCommand extends AsyncResultProgram implements CompressExecu * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(final byte[] in) { + String partialIn = new String(in); if (partialIn == null || partialIn.length() ==0) return; boolean endsWithNewLine = partialIn.endsWith("\n"); //$NON-NLS-1$ String[] lines = partialIn.split("\n"); //$NON-NLS-1$ @@ -240,7 +241,7 @@ public class CompressCommand extends AsyncResultProgram implements CompressExecu * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/ExecCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/ExecCommand.java index c66cef9f..82c4e28f 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/ExecCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/ExecCommand.java @@ -65,7 +65,8 @@ public class ExecCommand extends AsyncResultProgram implements ExecExecutable { * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(byte[] in) { + String partialIn = new String(in); //If a listener is defined, then send the partial result if (partialIn != null && partialIn.length() > 0) { if (getAsyncResultListener() != null) { @@ -78,7 +79,8 @@ public class ExecCommand extends AsyncResultProgram implements ExecExecutable { * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) { + public void onParseErrorPartialResult(byte[] in) { + String partialErr = new String(in); //If a listener is defined, then send the partial result if (partialErr != null && partialErr.length() > 0) { if (getAsyncResultListener() != null) { diff --git a/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java index 4857a3e3..dfad941f 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java @@ -84,7 +84,8 @@ public class FindCommand extends AsyncResultProgram implements FindExecutable { * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(byte[] in) { + String partialIn = new String(in); // Check the in buffer to extract information final List<FileSystemObject> partialFiles = new ArrayList<FileSystemObject>(); @@ -144,7 +145,7 @@ public class FindCommand extends AsyncResultProgram implements FindExecutable { * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/FolderUsageCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/FolderUsageCommand.java index 134a3e34..9fc6d1bd 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/FolderUsageCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/FolderUsageCommand.java @@ -90,7 +90,8 @@ public class FolderUsageCommand extends AsyncResultProgram implements FolderUsag * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(byte[] in) { + String partialIn = new String(in); // Check the in buffer to extract information BufferedReader br = null; @@ -224,7 +225,7 @@ public class FolderUsageCommand extends AsyncResultProgram implements FolderUsag * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/ReadCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/ReadCommand.java index cd2232ba..c75f6a46 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/ReadCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/ReadCommand.java @@ -61,11 +61,11 @@ public class ReadCommand extends AsyncResultProgram implements ReadExecutable { * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(byte[] in) { //If a listener is defined, then send the partial result - if (partialIn != null && partialIn.length() > 0) { + if (in != null && in.length > 0) { if (getAsyncResultListener() != null) { - getAsyncResultListener().onPartialResult(partialIn.getBytes()); + getAsyncResultListener().onPartialResult(in); } } } @@ -74,7 +74,7 @@ public class ReadCommand extends AsyncResultProgram implements ReadExecutable { * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/UncompressCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/UncompressCommand.java index 4e77fdc7..bf5450b2 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/UncompressCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/UncompressCommand.java @@ -191,7 +191,8 @@ public class UncompressCommand extends AsyncResultProgram implements UncompressE * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) { + public void onParsePartialResult(byte[] in) { + String partialIn = new String(in); if (partialIn == null || partialIn.length() ==0) return; boolean endsWithNewLine = partialIn.endsWith("\n"); //$NON-NLS-1$ String[] lines = partialIn.split("\n"); //$NON-NLS-1$ @@ -228,7 +229,7 @@ public class UncompressCommand extends AsyncResultProgram implements UncompressE * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} diff --git a/src/com/cyanogenmod/filemanager/commands/shell/WriteCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/WriteCommand.java index 51c0800c..8ee8727e 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/WriteCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/WriteCommand.java @@ -128,13 +128,13 @@ public class WriteCommand extends AsyncResultProgram implements WriteExecutable * {@inheritDoc} */ @Override - public void onParsePartialResult(final String partialIn) {/**NON BLOCK**/} + public void onParsePartialResult(final byte[] partialIn) {/**NON BLOCK**/} /** * {@inheritDoc} */ @Override - public void onParseErrorPartialResult(String partialErr) {/**NON BLOCK**/} + public void onParseErrorPartialResult(byte[] partialErr) {/**NON BLOCK**/} /** * {@inheritDoc} |