aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFujia Mi <fmi@codeaurora.org>2015-12-10 10:14:34 +0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-10-26 17:16:10 -0700
commitf35a631ff98b1f9c3f4da048a7d1204f8d420050 (patch)
tree14835b948fce5ccdf8100bf43b7f6a59b413be26
parente339f3e72cdeb1e794765dac672328aa3ddeb631 (diff)
downloadandroid_packages_apps_CMFileManager-f35a631ff98b1f9c3f4da048a7d1204f8d420050.tar.gz
android_packages_apps_CMFileManager-f35a631ff98b1f9c3f4da048a7d1204f8d420050.tar.bz2
android_packages_apps_CMFileManager-f35a631ff98b1f9c3f4da048a7d1204f8d420050.zip
CMFileManager: Show loading dialog while loading files
The loading file task costs much time if the folder contains a lot of files. This causes the illusion of a freeze if the user presses the back key during this time. Show a progress dialog while loading and do not allow the user to press the back key. CRs-Fixed: 949902 Change-Id: I527d70a55425d20bc50621533fba775bf5d0ead5
-rw-r--r--res/layout/breadcrumb_view.xml16
-rw-r--r--src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java16
2 files changed, 9 insertions, 23 deletions
diff --git a/res/layout/breadcrumb_view.xml b/res/layout/breadcrumb_view.xml
index cd0b530f..6b8951c2 100644
--- a/res/layout/breadcrumb_view.xml
+++ b/res/layout/breadcrumb_view.xml
@@ -29,22 +29,6 @@
android:src="@drawable/ic_material_light_fs_warning"
android:visibility="invisible" />
- <ProgressBar
- android:id="@+id/breadcrumb_loading"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_alignBottom="@id/ab_filesystem_info"
- android:layout_alignStart="@id/ab_filesystem_info"
- android:layout_alignEnd="@id/ab_filesystem_info"
- android:layout_alignTop="@id/ab_filesystem_info"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
- android:layout_margin="@dimen/default_margin"
- android:indeterminate="true"
- android:indeterminateBehavior="repeat"
- android:indeterminateOnly="true"
- android:visibility="invisible" />
-
<HorizontalScrollView
android:id="@+id/breadcrumb_scrollview"
android:layout_width="match_parent"
diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java b/src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java
index fbe397ab..7eae4118 100644
--- a/src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java
+++ b/src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java
@@ -16,6 +16,7 @@
package com.cyanogenmod.filemanager.ui.widgets;
+import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
@@ -61,10 +62,7 @@ public class BreadcrumbView extends RelativeLayout implements Breadcrumb, OnClic
* @hide
*/
ProgressBar mDiskUsageInfo;
- /**
- * @hide
- */
- View mLoading;
+
protected FilesystemAsyncTask mFilesystemAsyncTask;
protected int mFreeDiskSpaceWarningLevel = 95;
@@ -73,6 +71,8 @@ public class BreadcrumbView extends RelativeLayout implements Breadcrumb, OnClic
protected String mCurrentPath;
+ private ProgressDialog mLoadingDialog;
+
/**
* Constructor of <code>BreadcrumbView</code>.
*
@@ -126,7 +126,9 @@ public class BreadcrumbView extends RelativeLayout implements Breadcrumb, OnClic
this.mBreadcrumbBar = (ViewGroup)findViewById(R.id.breadcrumb);
this.mFilesystemInfo = (ImageView)findViewById(R.id.ab_filesystem_info);
this.mDiskUsageInfo = (ProgressBar)findViewById(R.id.breadcrumb_diskusage);
- this.mLoading = findViewById(R.id.breadcrumb_loading);
+ this.mLoadingDialog = new ProgressDialog(getContext());
+ this.mLoadingDialog.setMessage(getContext().getText(R.string.loading_message));
+ this.mLoadingDialog.setCancelable(false);
// Change the image of filesystem (this is not called after a changeBreadcrumbPath call,
// so if need to be theme previously to protect from errors)
@@ -170,7 +172,7 @@ public class BreadcrumbView extends RelativeLayout implements Breadcrumb, OnClic
public void run() {
BreadcrumbView.this.mFilesystemInfo.setVisibility(View.INVISIBLE);
BreadcrumbView.this.mDiskUsageInfo.setVisibility(View.INVISIBLE);
- BreadcrumbView.this.mLoading.setVisibility(View.VISIBLE);
+ BreadcrumbView.this.mLoadingDialog.show();
}
});
}
@@ -184,7 +186,7 @@ public class BreadcrumbView extends RelativeLayout implements Breadcrumb, OnClic
this.post(new Runnable() {
@Override
public void run() {
- BreadcrumbView.this.mLoading.setVisibility(View.INVISIBLE);
+ BreadcrumbView.this.mLoadingDialog.dismiss();
BreadcrumbView.this.mFilesystemInfo.setVisibility(View.VISIBLE);
BreadcrumbView.this.mDiskUsageInfo.setVisibility(View.VISIBLE);
}