diff options
| author | jruesga <jorge@ruesga.com> | 2012-10-14 00:54:57 +0200 |
|---|---|---|
| committer | jruesga <jorge@ruesga.com> | 2012-10-14 00:54:57 +0200 |
| commit | e05ec66a2c43d48ed2f11f0e18942f552b68e16f (patch) | |
| tree | 2e04e8334a5eafeaf4cbc0427f87b37c918464f4 /src | |
| parent | b98418be05f584eccb9c4c86b9c49605f558f592 (diff) | |
Better handling of FolderUsage
Diffstat (limited to 'src')
3 files changed, 35 insertions, 10 deletions
diff --git a/src/com/cyanogenmod/explorer/commands/FolderUsageExecutable.java b/src/com/cyanogenmod/explorer/commands/FolderUsageExecutable.java index cc1b6a4..f133dff 100644 --- a/src/com/cyanogenmod/explorer/commands/FolderUsageExecutable.java +++ b/src/com/cyanogenmod/explorer/commands/FolderUsageExecutable.java @@ -16,9 +16,17 @@ package com.cyanogenmod.explorer.commands; +import com.cyanogenmod.explorer.model.FolderUsage; + /** * An interface that represents an executable for retrieve a folder usage */ public interface FolderUsageExecutable extends AsyncResultExecutable { - /**NON BLOCK**/ + + /** + * Method that returns the folder usage. + * + * @return FolderUsage The folder usage + */ + FolderUsage getFolderUsage(); } diff --git a/src/com/cyanogenmod/explorer/commands/shell/FolderUsageCommand.java b/src/com/cyanogenmod/explorer/commands/shell/FolderUsageCommand.java index fa8e8b9..4367327 100644 --- a/src/com/cyanogenmod/explorer/commands/shell/FolderUsageCommand.java +++ b/src/com/cyanogenmod/explorer/commands/shell/FolderUsageCommand.java @@ -200,6 +200,14 @@ public class FolderUsageCommand extends AsyncResultProgram implements FolderUsag * {@inheritDoc} */ @Override + public FolderUsage getFolderUsage() { + return this.mFolderUsage; + } + + /** + * {@inheritDoc} + */ + @Override public boolean isIgnoreShellStdErrCheck() { return true; } diff --git a/src/com/cyanogenmod/explorer/ui/dialogs/FsoPropertiesDialog.java b/src/com/cyanogenmod/explorer/ui/dialogs/FsoPropertiesDialog.java index 3cc9558..7851b64 100644 --- a/src/com/cyanogenmod/explorer/ui/dialogs/FsoPropertiesDialog.java +++ b/src/com/cyanogenmod/explorer/ui/dialogs/FsoPropertiesDialog.java @@ -37,8 +37,8 @@ import android.widget.Spinner; import android.widget.TextView; import com.cyanogenmod.explorer.R; -import com.cyanogenmod.explorer.commands.AsyncResultExecutable; import com.cyanogenmod.explorer.commands.AsyncResultListener; +import com.cyanogenmod.explorer.commands.FolderUsageExecutable; import com.cyanogenmod.explorer.console.ConsoleBuilder; import com.cyanogenmod.explorer.model.AID; import com.cyanogenmod.explorer.model.FileSystemObject; @@ -120,7 +120,7 @@ public class FsoPropertiesDialog private boolean mHasPrivileged; private final boolean mComputeFolderStatistics; - private AsyncResultExecutable mFolderUsageExecutable; + private FolderUsageExecutable mFolderUsageExecutable; private FolderUsage mFolderUsage; /** * @hide @@ -241,7 +241,11 @@ public class FsoPropertiesDialog //Fill the text views //- Info tvName.setText(this.mFso.getName()); - tvParent.setText(this.mFso.getParent()); + if (FileHelper.isRootDirectory(this.mFso)) { + tvParent.setText("-"); //$NON-NLS-1$ + } else { + tvParent.setText(this.mFso.getParent()); + } tvType.setText(MimeTypeHelper.getMimeTypeDescription(this.mContext, this.mFso)); if (this.mFso instanceof Symlink) { Symlink link = (Symlink)this.mFso; @@ -364,13 +368,13 @@ public class FsoPropertiesDialog try { if (this.mFso instanceof Symlink && ((Symlink) this.mFso).getLinkRef() != null) { this.mFolderUsageExecutable = - CommandHelper.getFolderUsage( - this.mContext, - ((Symlink) this.mFso).getLinkRef().getFullPath(), this, null); + (FolderUsageExecutable)CommandHelper.getFolderUsage( + this.mContext, + ((Symlink) this.mFso).getLinkRef().getFullPath(), this, null); } else { this.mFolderUsageExecutable = - CommandHelper.getFolderUsage( - this.mContext, this.mFso.getFullPath(), this, null); + (FolderUsageExecutable)CommandHelper.getFolderUsage( + this.mContext, this.mFso.getFullPath(), this, null); } } catch (Exception cause) { //Capture the exception @@ -900,7 +904,12 @@ public class FsoPropertiesDialog */ @Override public void onAsyncEnd(final boolean canceled) { - printFolderUsage(false, canceled); + try { + // Clone the reference + FsoPropertiesDialog.this.mFolderUsage = + (FolderUsage)this.mFolderUsageExecutable.getFolderUsage().clone(); + printFolderUsage(true, canceled); + } catch (Exception ex) {/** NON BLOCK**/} } /** |
