aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjruesga <jorge@ruesga.com>2012-10-14 00:54:57 +0200
committerjruesga <jorge@ruesga.com>2012-10-14 00:54:57 +0200
commite05ec66a2c43d48ed2f11f0e18942f552b68e16f (patch)
tree2e04e8334a5eafeaf4cbc0427f87b37c918464f4 /src
parentb98418be05f584eccb9c4c86b9c49605f558f592 (diff)
Better handling of FolderUsage
Diffstat (limited to 'src')
-rw-r--r--src/com/cyanogenmod/explorer/commands/FolderUsageExecutable.java10
-rw-r--r--src/com/cyanogenmod/explorer/commands/shell/FolderUsageCommand.java8
-rw-r--r--src/com/cyanogenmod/explorer/ui/dialogs/FsoPropertiesDialog.java27
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**/}
}
/**