aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java')
-rw-r--r--src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java b/src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java
new file mode 100644
index 00000000..1993af64
--- /dev/null
+++ b/src/com/cyanogenmod/filemanager/ui/widgets/DialogBreadcrumbView.java
@@ -0,0 +1,83 @@
+package com.cyanogenmod.filemanager.ui.widgets;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import com.cyanogenmod.filemanager.R;
+import com.cyanogenmod.filemanager.model.MountPoint;
+import com.cyanogenmod.filemanager.tasks.FilesystemAsyncTask;
+import com.cyanogenmod.filemanager.ui.ThemeManager;
+import com.cyanogenmod.filemanager.util.MountPointHelper;
+
+public class DialogBreadcrumbView extends BreadcrumbView {
+ public DialogBreadcrumbView(Context context) {
+ super(context);
+ }
+
+ public DialogBreadcrumbView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public DialogBreadcrumbView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ @Override
+ public void applyTheme() {
+ ThemeManager.Theme theme = ThemeManager.getCurrentTheme(getContext());
+
+ //- Breadcrumb
+ if (this.mBreadcrumbBar != null) {
+ int cc = this.mBreadcrumbBar.getChildCount();
+ for (int i = 0; i < cc; i++) {
+ // There are 2 types: Breadcrumb items and separators
+ View v = this.mBreadcrumbBar.getChildAt(i);
+ if (v instanceof BreadcrumbItem) {
+ // Breadcrumb item
+ theme.setTextColor(
+ getContext(), (BreadcrumbItem)v, "text_color"); //$NON-NLS-1$
+ } else if (v instanceof ImageView) {
+ // Divider drawable
+ theme.setImageDrawable(
+ getContext(),
+ (ImageView)v, "breadcrumb_divider_drawable"); //$NON-NLS-1$
+ }
+ }
+ }
+ if (this.mDiskUsageInfo != null) {
+ Drawable dw = theme.getDrawable(getContext(), "horizontal_progress_bar"); //$NON-NLS-1$
+ this.mDiskUsageInfo.setProgressDrawable(dw);
+ }
+ final ImageView fsInfo = (ImageView)findViewById(R.id.ab_filesystem_info);
+ if (fsInfo != null) {
+ MountPoint mp = (MountPoint) fsInfo.getTag();
+ if (mp == null) {
+ theme.setImageDrawable(getContext(), fsInfo, "filesystem_dialog_warning_drawable");
+ } else {
+ String resource =
+ MountPointHelper.isReadOnly(mp)
+ ? "filesystem_dialog_locked_drawable"
+ : "filesystem_dialog_unlocked_drawable";
+ theme.setImageDrawable(getContext(), fsInfo, resource);
+ }
+ }
+ }
+
+ @Override
+ public synchronized void updateMountPointInfo() {
+ //Cancel the current execution (if any) and launch again
+ if (this.mFilesystemAsyncTask != null && this.mFilesystemAsyncTask.isRunning()) {
+ this.mFilesystemAsyncTask.cancel(true);
+ }
+ final ImageView filesystemInfo = (ImageView)findViewById(R.id.ab_filesystem_info);
+ final ProgressBar diskUsageInfo = (ProgressBar)findViewById(R.id.breadcrumb_diskusage);
+ this.mFilesystemAsyncTask =
+ new FilesystemAsyncTask(
+ getContext(), filesystemInfo,
+ diskUsageInfo, this.mFreeDiskSpaceWarningLevel, true);
+ this.mFilesystemAsyncTask.execute(this.mCurrentPath);
+ }
+}