diff options
Diffstat (limited to 'src/com/cyanogenmod/filemanager')
8 files changed, 68 insertions, 5 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index e5798328..b8eda658 100755 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -2000,6 +2000,11 @@ public class NavigationActivity extends Activity } } + @Override + public void onClearCache(Object o) { + getCurrentNavigationView().onClearCache(o); + } + /** * {@inheritDoc} */ diff --git a/src/com/cyanogenmod/filemanager/activities/SearchActivity.java b/src/com/cyanogenmod/filemanager/activities/SearchActivity.java index 6089873a..ff1eb1be 100755 --- a/src/com/cyanogenmod/filemanager/activities/SearchActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/SearchActivity.java @@ -1264,6 +1264,11 @@ public class SearchActivity extends Activity } } + @Override + public void onClearCache(Object o) { + // ignore + } + /** * {@inheritDoc} */ diff --git a/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java b/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java index dac15d43..0c0b57f6 100644 --- a/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java +++ b/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java @@ -138,6 +138,17 @@ public class FileSystemObjectAdapter } /** + * Method that Clears Cache of the adapter + * @param fso The Selected FileSystemObject reference + */ + public void clearCache(FileSystemObject fso) { + if (mIconHolder != null) { + mIconHolder.clearCacheImages(fso); + notifyDataSetChanged(); + } + } + + /** * Method that dispose the elements of the adapter. */ public void dispose() { diff --git a/src/com/cyanogenmod/filemanager/listeners/OnRequestRefreshListener.java b/src/com/cyanogenmod/filemanager/listeners/OnRequestRefreshListener.java index da307c38..893becac 100644 --- a/src/com/cyanogenmod/filemanager/listeners/OnRequestRefreshListener.java +++ b/src/com/cyanogenmod/filemanager/listeners/OnRequestRefreshListener.java @@ -50,6 +50,13 @@ public interface OnRequestRefreshListener { void onNavigateTo(Object o); /** + * Invoke to clear cache for object + * + * @param o object to clear cache for + */ + void onClearCache(Object o); + + /** * Invoked on action cancel */ void onCancel(); diff --git a/src/com/cyanogenmod/filemanager/providers/secure/SecureChoiceRefreshListener.java b/src/com/cyanogenmod/filemanager/providers/secure/SecureChoiceRefreshListener.java index cf0e21c5..7898fa3b 100644 --- a/src/com/cyanogenmod/filemanager/providers/secure/SecureChoiceRefreshListener.java +++ b/src/com/cyanogenmod/filemanager/providers/secure/SecureChoiceRefreshListener.java @@ -60,6 +60,11 @@ import java.io.File; } @Override + public void onClearCache(Object o) { + // ignore + } + + @Override public void onRequestBookmarksRefresh() { } diff --git a/src/com/cyanogenmod/filemanager/ui/IconHolder.java b/src/com/cyanogenmod/filemanager/ui/IconHolder.java index 29a8b856..2a8e0993 100644 --- a/src/com/cyanogenmod/filemanager/ui/IconHolder.java +++ b/src/com/cyanogenmod/filemanager/ui/IconHolder.java @@ -283,6 +283,17 @@ public class IconHolder { } /** + * Clearing the selected Icon Cache + * @param fso The Selected FileSystemObject reference + */ + public void clearCacheImages(FileSystemObject fso) { + final String filePath = MediaHelper.normalizeMediaPath(fso.getFullPath()); + if (filePath != null) { + mAppIcons.remove(filePath); + } + } + + /** * Method that returns a drawable reference of a FileSystemObject. * * @param iconView View to load the drawable into diff --git a/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java b/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java index f8936352..a3272208 100755 --- a/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java +++ b/src/com/cyanogenmod/filemanager/ui/policy/CopyMoveActionPolicy.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.DialogInterface; import android.text.Html; import android.text.Spanned; +import android.util.Log; import com.cyanogenmod.filemanager.R; import com.cyanogenmod.filemanager.console.Console; @@ -46,6 +47,8 @@ import java.util.List; */ public final class CopyMoveActionPolicy extends ActionsPolicy { + private static final String TAG = CopyMoveActionPolicy.class.getSimpleName(); + /** * @hide */ @@ -310,13 +313,23 @@ public final class CopyMoveActionPolicy extends ActionsPolicy { if (files != null) { for (LinkedResource linkedFiles : files) { Bookmarks.deleteOrphanBookmarks(ctx, linkedFiles.mSrc.getAbsolutePath()); + //Operation complete. Show refresh + if (mOnRequestRefreshListener != null) { + FileSystemObject fso = null; + try { + fso = CommandHelper.getFileInfo(ctx, + linkedFiles.mDst.getAbsolutePath(), false, null); + mOnRequestRefreshListener.onClearCache(fso); + } catch (Exception e) { + Log.w(TAG, "Exception getting file info for " + + linkedFiles.mDst.getAbsolutePath(), e); + } + } } } - //Operation complete. Refresh - if (this.mOnRequestRefreshListener != null) { - // The reference is not the same, so refresh the complete navigation view - this.mOnRequestRefreshListener.onRequestRefresh(null, true); + if (mOnRequestRefreshListener != null) { + mOnRequestRefreshListener.onRequestRefresh(null, true); } } diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java index 6d8ba671..3beaeac7 100755 --- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java +++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java @@ -829,7 +829,6 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe this.mCurrentDir = this.mPreviousDir; this.mPreviousDir = null; } - //Reload data changeCurrentDir(newDir, addToHistory, reload, useCurrent, searchInfo, scrollTo); } @@ -1275,6 +1274,13 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe } } + @Override + public void onClearCache(Object o) { + if (o instanceof FileSystemObject && mAdapter != null) { + mAdapter.clearCache((FileSystemObject)o); + } + } + /** * {@inheritDoc} */ |