diff options
author | Fujia Mi <fmi@codeaurora.org> | 2015-12-10 10:14:34 +0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-10-26 17:16:10 -0700 |
commit | f35a631ff98b1f9c3f4da048a7d1204f8d420050 (patch) | |
tree | 14835b948fce5ccdf8100bf43b7f6a59b413be26 | |
parent | e339f3e72cdeb1e794765dac672328aa3ddeb631 (diff) | |
download | android_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.xml | 16 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/ui/widgets/BreadcrumbView.java | 16 |
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); } |