Loading src/com/cyanogenmod/filemanager/commands/java/CopyCommand.java +4 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.cyanogenmod.filemanager.commands.java; import android.util.Log; import com.cyanogenmod.filemanager.commands.CopyExecutable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading Loading @@ -64,7 +65,8 @@ public class CopyCommand extends Program implements CopyExecutable { */ @Override public void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException { throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException { if (isTrace()) { Log.v(TAG, String.format("Moving from %s to %s", //$NON-NLS-1$ Loading @@ -81,7 +83,7 @@ public class CopyCommand extends Program implements CopyExecutable { } //Copy recursively if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading src/com/cyanogenmod/filemanager/commands/java/MoveCommand.java +5 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.cyanogenmod.filemanager.commands.java; import android.util.Log; import com.cyanogenmod.filemanager.commands.MoveExecutable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading Loading @@ -64,7 +65,8 @@ public class MoveCommand extends Program implements MoveExecutable { */ @Override public void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException { throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException { if (isTrace()) { Log.v(TAG, String.format("Creating from %s to %s", this.mSrc, this.mDst)); //$NON-NLS-1$ Loading @@ -81,7 +83,7 @@ public class MoveCommand extends Program implements MoveExecutable { //Move or copy recursively if (d.exists()) { if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading @@ -95,7 +97,7 @@ public class MoveCommand extends Program implements MoveExecutable { } else { // Move between filesystem is not allow. If rename fails then use copy operation if (!s.renameTo(d)) { if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading src/com/cyanogenmod/filemanager/commands/java/Program.java +11 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.cyanogenmod.filemanager.commands.java; import com.cyanogenmod.filemanager.commands.Executable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading @@ -29,6 +30,7 @@ public abstract class Program implements Executable { private boolean mTrace; private int mBufferSize; private boolean mCancelled = false; /** * Constructor of <code>Program</code> Loading Loading @@ -92,6 +94,14 @@ public abstract class Program implements Executable { * @throws ExecutionException If the operation returns a invalid exit code */ public abstract void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException; throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException; public void requestCancel() { mCancelled = true; } public boolean isCancelled() { return mCancelled; } } src/com/cyanogenmod/filemanager/console/java/JavaConsole.java +13 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.cyanogenmod.filemanager.commands.Executable; import com.cyanogenmod.filemanager.commands.ExecutableFactory; import com.cyanogenmod.filemanager.commands.java.JavaExecutableFactory; import com.cyanogenmod.filemanager.commands.java.Program; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.CommandNotFoundException; import com.cyanogenmod.filemanager.console.ConsoleAllocException; import com.cyanogenmod.filemanager.console.ExecutionException; Loading @@ -43,6 +44,7 @@ public final class JavaConsole extends VirtualConsole { private static final String TAG = "JavaConsole"; //$NON-NLS-1$ private final int mBufferSize; private Program mActiveProgram; /** * Constructor of <code>JavaConsole</code> Loading Loading @@ -79,7 +81,7 @@ public final class JavaConsole extends VirtualConsole { public synchronized void execute(Executable executable, Context ctx) throws ConsoleAllocException, InsufficientPermissionsException, NoSuchFileOrDirectory, OperationTimeoutException, ExecutionException, CommandNotFoundException, ReadOnlyFilesystemException { CancelledOperationException, ReadOnlyFilesystemException { // Check that the program is a java program try { Program p = (Program)executable; Loading @@ -98,6 +100,7 @@ public final class JavaConsole extends VirtualConsole { // Execute the program final Program program = (Program)executable; mActiveProgram = program; program.setTrace(isTrace()); program.setBufferSize(this.mBufferSize); if (program.isAsynchronous()) { Loading @@ -123,4 +126,12 @@ public final class JavaConsole extends VirtualConsole { } } /** * {@inheritDoc} */ @Override public boolean onCancel() { mActiveProgram.requestCancel(); return true; } } No newline at end of file src/com/cyanogenmod/filemanager/console/shell/ShellConsole.java +7 −2 Original line number Diff line number Diff line Loading @@ -1234,8 +1234,13 @@ public abstract class ShellConsole extends Console implements Program.ProgramLis } } catch (Throwable ex) { Log.w(TAG, String.format("Unable to kill current program: %s", //$NON-NLS-1$ this.mActiveCommand.getCommand()), ex); String.format("Unable to kill current program: %s", ( (this.mActiveCommand == null) ? "" : this.mActiveCommand.getCommand() ) ), ex); } } } Loading Loading
src/com/cyanogenmod/filemanager/commands/java/CopyCommand.java +4 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.cyanogenmod.filemanager.commands.java; import android.util.Log; import com.cyanogenmod.filemanager.commands.CopyExecutable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading Loading @@ -64,7 +65,8 @@ public class CopyCommand extends Program implements CopyExecutable { */ @Override public void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException { throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException { if (isTrace()) { Log.v(TAG, String.format("Moving from %s to %s", //$NON-NLS-1$ Loading @@ -81,7 +83,7 @@ public class CopyCommand extends Program implements CopyExecutable { } //Copy recursively if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading
src/com/cyanogenmod/filemanager/commands/java/MoveCommand.java +5 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.cyanogenmod.filemanager.commands.java; import android.util.Log; import com.cyanogenmod.filemanager.commands.MoveExecutable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading Loading @@ -64,7 +65,8 @@ public class MoveCommand extends Program implements MoveExecutable { */ @Override public void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException { throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException { if (isTrace()) { Log.v(TAG, String.format("Creating from %s to %s", this.mSrc, this.mDst)); //$NON-NLS-1$ Loading @@ -81,7 +83,7 @@ public class MoveCommand extends Program implements MoveExecutable { //Move or copy recursively if (d.exists()) { if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading @@ -95,7 +97,7 @@ public class MoveCommand extends Program implements MoveExecutable { } else { // Move between filesystem is not allow. If rename fails then use copy operation if (!s.renameTo(d)) { if (!FileHelper.copyRecursive(s, d, getBufferSize())) { if (!FileHelper.copyRecursive(s, d, getBufferSize(), this)) { if (isTrace()) { Log.v(TAG, "Result: FAIL. InsufficientPermissionsException"); //$NON-NLS-1$ } Loading
src/com/cyanogenmod/filemanager/commands/java/Program.java +11 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.cyanogenmod.filemanager.commands.java; import com.cyanogenmod.filemanager.commands.Executable; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.ExecutionException; import com.cyanogenmod.filemanager.console.InsufficientPermissionsException; import com.cyanogenmod.filemanager.console.NoSuchFileOrDirectory; Loading @@ -29,6 +30,7 @@ public abstract class Program implements Executable { private boolean mTrace; private int mBufferSize; private boolean mCancelled = false; /** * Constructor of <code>Program</code> Loading Loading @@ -92,6 +94,14 @@ public abstract class Program implements Executable { * @throws ExecutionException If the operation returns a invalid exit code */ public abstract void execute() throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException; throws InsufficientPermissionsException, NoSuchFileOrDirectory, ExecutionException, CancelledOperationException; public void requestCancel() { mCancelled = true; } public boolean isCancelled() { return mCancelled; } }
src/com/cyanogenmod/filemanager/console/java/JavaConsole.java +13 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.cyanogenmod.filemanager.commands.Executable; import com.cyanogenmod.filemanager.commands.ExecutableFactory; import com.cyanogenmod.filemanager.commands.java.JavaExecutableFactory; import com.cyanogenmod.filemanager.commands.java.Program; import com.cyanogenmod.filemanager.console.CancelledOperationException; import com.cyanogenmod.filemanager.console.CommandNotFoundException; import com.cyanogenmod.filemanager.console.ConsoleAllocException; import com.cyanogenmod.filemanager.console.ExecutionException; Loading @@ -43,6 +44,7 @@ public final class JavaConsole extends VirtualConsole { private static final String TAG = "JavaConsole"; //$NON-NLS-1$ private final int mBufferSize; private Program mActiveProgram; /** * Constructor of <code>JavaConsole</code> Loading Loading @@ -79,7 +81,7 @@ public final class JavaConsole extends VirtualConsole { public synchronized void execute(Executable executable, Context ctx) throws ConsoleAllocException, InsufficientPermissionsException, NoSuchFileOrDirectory, OperationTimeoutException, ExecutionException, CommandNotFoundException, ReadOnlyFilesystemException { CancelledOperationException, ReadOnlyFilesystemException { // Check that the program is a java program try { Program p = (Program)executable; Loading @@ -98,6 +100,7 @@ public final class JavaConsole extends VirtualConsole { // Execute the program final Program program = (Program)executable; mActiveProgram = program; program.setTrace(isTrace()); program.setBufferSize(this.mBufferSize); if (program.isAsynchronous()) { Loading @@ -123,4 +126,12 @@ public final class JavaConsole extends VirtualConsole { } } /** * {@inheritDoc} */ @Override public boolean onCancel() { mActiveProgram.requestCancel(); return true; } } No newline at end of file
src/com/cyanogenmod/filemanager/console/shell/ShellConsole.java +7 −2 Original line number Diff line number Diff line Loading @@ -1234,8 +1234,13 @@ public abstract class ShellConsole extends Console implements Program.ProgramLis } } catch (Throwable ex) { Log.w(TAG, String.format("Unable to kill current program: %s", //$NON-NLS-1$ this.mActiveCommand.getCommand()), ex); String.format("Unable to kill current program: %s", ( (this.mActiveCommand == null) ? "" : this.mActiveCommand.getCommand() ) ), ex); } } } Loading