aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix rename of files ending with . on sdcardcaf/cm-12.1emancebo2015-10-261-7/+33
| | | | | | | | | | | If sdcard is formatted as vfat then file names named as "foo." will be silently saved as "foo". This causes us to report the wrong target file to media scanner, which can cause an extra file to be shown in mtp mode on windows. The workaround is to rescan the parent dir to discover the correct filename to report to media scanner. Change-Id: Ia58a341ef6190efe3dca8b13bbc081b6e2d4e9c1 issue-id: QRDL-983
* Show message to user when toggling word wrap modeemancebo2015-10-242-2/+9
| | | | | | | | For very large files toggling word wrap mode takes a long time on the UI thread. Show a message to the user so they know what is happening. Change-Id: Idd3aed525233b944234b6f8864a9d3c02adc00b5 issue-id: QRDL-1080
* Fix Rename on VFatherriojr2015-08-315-25/+37
| | | | | | | | Changed how the java console handles detecting if a file rename collides with another file to more represent how the particular filesystem implementation handles it (I'm looking at you vfat). Change-Id: I6ac9ae848ee47fa33f02225c310c92f2a03fb50d
* Regex metacharacters result in error post searchRichard MacGregor2015-08-261-3/+17
| | | | | | | | | | | | | | | | | | | | After receiving search results, the user query was used to sort and highlight results. If a part of the search included an incomplete regex syntax (such as a regex metacharacter) it fails to compile the pattern. Repro steps: 1) Create file with regex metacharactes in name Example: "(test).txt" 2) Search for file using partial name, and only single regex character (from a set such as "()" or "[]"). Example: "(" Expected results: Search shows correct files Observed results: Search ends up crashing FileManager Change-Id: Idf5ee3b441481574a5bada1ca7e9048109a13435 Ticket: QRDL-1035
* Bookmarks: check to see if a bookmark exists before adding itStephen Bird2015-08-263-1/+12
| | | | | | | | | Previously, this would result in multiple bookmarks of the same location Ticket: QRDL-989 Change-Id: I0f19045bc7a6d5fa98c9ef4ee1a8ccda9c501eb1 (cherry picked from commit 85032a699b4f9d6101599be230257eab7a8cd76a)
* Search: Fix race condition with results displayStephen Bird2015-08-261-26/+10
| | | | | | | | | | Since results are now run through an asynctask before they are added this created a race condition which lead to the screen sometimes showing 'no results found' when results are actually available Ticket: QRDL-995 Change-Id: I5b7ddb44c16603fac7ceca3f955038cc3d646de8 (cherry picked from commit 1a23b92dc1d3a1a2f9b386139c40281d9c24fc26)
* CMFM: don't apply search filter when search hasn't startedRoman Birg2015-08-241-1/+3
| | | | | | | | | Otherwise it can lead to crashes with short searches Ref: QRDL-950 Change-Id: Icf555435b4cc7107db328c757633a29ffacd62c5 Signed-off-by: Roman Birg <roman@cyngn.com>
* FileManager: Fix shortcutsRichard MacGregor2015-08-213-5/+16
| | | | | | | | | | | | | | | | | | | | | Fix shortcuts behavior when FileManager is already open. Repro: 1) Open FileManager 2) Create shortcut for folder 3) Navigate to another folder (not including new folder) 4) Switch to homescreen (launcher) 5) Select the shortcut created in step 2 Expected behavior: Navigate to shortcut folder Observed behavior: FileManager shows last navigated directory (before going to launcher) (cherry picked from commit 8f0fb94de32e1ea773ce165bf5bc95122099171d) Change-Id: Icd03d38aa1d879d46f1c9a6d4c7efb15c3fb0b3f Ticket: QRDL-1034
* Fix MediaScan issue w/ DeletingStephen Bird2015-08-211-6/+53
| | | | | | | | | | | Mediascan wasn't working with deletion of items. We need to grab the items to delete before actually deleting them from the file system so that we know which items we should have deleted. Change-Id: Ia7b6d5c0612b8053d6b3f442dc9cc9312b02e47b Ticket: QRDL-982 (cherry picked from commit d5372f98c001a58cfdf332af0875a424ca0087da)
* Fixed MediaScan Issue w/ Directoriesherriojr2015-08-191-12/+84
| | | | | | | | | | | | | | | | MediaScan wasn't being done recursively, so moving a directory which had content to a different location wouldn't include the children in the scan. This implementation makes sure all files and folders within the directory are also scanned. Tested against a dataset of 1000 videos, so performance seems fine. Cherry-Pick: 037d6356fca976106f3ddb85906cc2e85f5a244e Ticket: QRDL-1009 Conflicts: src/com/cyanogenmod/filemanager/util/CommandHelper.java Change-Id: I1c0d33dca262e4215f5a41a9fc2e57196d6396d2
* Fix Navigation back from Searchherriojr2015-08-181-6/+17
| | | | | | | | When entering a search result and then backing out all the way, a history item wasn't being added for the directory the search was happening in. This fixes it. Change-Id: I28d5b290a18076f1156f699426420ca78fb3eee6
* CMFM: fix search mime type filter not applyingRoman Birg2015-08-171-43/+46
| | | | | | | | | | - update count when selecting mime type filter - use original result list to narrow results Ref: QRDL-950 Change-Id: I8715f0831e51adf18257d735b0d455c368083411 Signed-off-by: Roman Birg <roman@cyngn.com>
* Refresh: stop refreshes in actionStephen Bird2015-08-141-15/+18
| | | | | | | | | | If a refresh happens while another refresh is occuring, make sure that that old refresh is cancelled. In addition to this, remove some old logic that conflicted with itself. Also, keep ahold of the previous directory before running the task. Ticket: QRDL-1002 Change-Id: Ibc1f3d468243bc124d3baf259af21464f3c03c84
* Fix improper exception handling during copy operation.Matt Garnes2015-08-131-2/+6
| | | | | | | | - Do not cast ClosedByInterruptException to CancelledOperationException; return a new CancelledOperationException instead. Change-Id: I41cb0c605c55fc896a3e483cb5b1f1fcc913676e (cherry picked from commit 2444ef323fc5920588f45c96a36533a969ab6be2)
* Improve copy/move performance with nio and reintroduce cancel.Matt Garnes2015-08-124-38/+56
| | | | | | | | | | | | | | Utilize FileChannel.transferFrom to copy files faster. Chunk the file transfer so that we can check between each chunk if the user has cancelled the copy. In my tests copying a large file (650MB), this improved performance by 45%. Also, bring the cancel feature back for non secure storage. Fixes QRDL-976. Change-Id: I112cee7b9dfe682a438516f7f938dfd7538f1efb
* RTL: move buttons to proper spot in nav drawerStephen Bird2015-08-121-1/+1
| | | | | Change-Id: Ia6d6b1fd95f9def895b8d002ab0316ded6df9caf (cherry picked from commit 602f3dea218626182db9c926877c731107864a22)
* Fix don't pop up "Actions" menu when long pressing on a file/folderkai.cao2015-08-101-4/+8
| | | | | | | | | | | after open and close "Use swipe gesture". The FlingerListView will setLongClickable false when open "Use swipe gesture", if we close "Use swipe gesture",the longClickable still false and don't pop up "Actions" menu. Change-Id: Ifccb655d619fd32bc569eddfa5f05b0ca3002a50 (cherry picked from commit 13879c7fd08c4279286addf28107ca66766edc8a)
* Fixed ANR & Memory Leak Associated with 3GPherriojr2015-08-053-3/+23
| | | | | | | | | | | We are now defaulting to treating 3GP files as video files for determining the default icon as it was parsing the video files for their metadata which was causing ANR problems. On top of this, it was discovered that the metadata parser was leaking memory. Change-Id: I88f6cf3d8ae1a62d1294bd3272b27715c2352525 Ticket: QRDL-931 (cherry picked from commit 6f6094da21960569b93f6171e39e211e8d37f41a)
* ListPopupWindow: set height of the listStephen Bird2015-08-051-0/+15
| | | | | | | | | | | | | We need to make sure that the list is the proper height so that it does not draw off the screen. Ideally, we would stop handling the orientation changes and allow the app to do the orientation changes as android apps do normally. This would require some significant changes to how our dialog system works and could cause other potential issues. Ticket: QRDL-882 Change-Id: I39176d56d8286ed93b71dbe4c770fe79f39ac753
* Revert "configurationChanged: Don't handle the orientation change in our ↵Stephen Bird2015-08-051-1/+1
| | | | | | | | main Activity" This reverts commit 1b57d88ad06c2b4836b2b49400dcf019fc976982. Change-Id: I18dcd06de292c62414b112d1ced95a3090d3982b
* Fixed search to actually open the clicked folderherriojr2015-08-052-3/+8
| | | | | | | | | | | | | | When a folder was clicked in a search, what was happening is the refresh() in onStart() was being executed after onActivityResult(), so the changeCurrentDir() executed in onActivityResult() was being overriden by the refresh in onStart(). Since the mCurrentDir wasn't being set until the NavigationTask ends, it would always go back to the original directory. The change is to make the refresh not happen if a NavigationTask is currently under way. Change-Id: I5c354554c9b15fc9d14b4665852b40fb6a1f8853 Ticket: QRDL-932 (cherry picked from commit c740f92994c3e8dbbf985ef18d7d639756f1e0a9)
* Fixed ANR associated with SecureStorageherriojr2015-08-052-22/+17
| | | | | | | | | | | | | | An ANR was happening on SecureConsole when a very large item was added, canceled, and click the parent in the Secure folder. This is caused by the locking mechanism used by SecureConsole. Consoles, long-term, need to be refactored to not synchronize on the SecureConsole object itself during execute. The only fix we can do without full refactoring is to not allow cancelling the operation because the Console doesn't support the cancel operation. Change-Id: I845372567b8656d63192bfde27952240915ecfe6 Ticket: QRDL-971 (cherry picked from commit ddb22bba80ce56ca77eca2faeace1d33aff85cc1)
* Revert "Made NavigationView reliant on FileObserver to keep up to date."herriojr2015-08-056-234/+206
| | | | | | | This reverts commit 7b09bb0f1390b72d0ac18484721998eaf805e605. Change-Id: I24b6115c89e568f6895a3a9d0c074151b85c0be2 (cherry picked from commit cb05075905b8271204bc2f0306f36f92c35fff80)
* Made NavigationView reliant on FileObserver to keep up to date.herriojr2015-07-316-222/+238
| | | | | | | | | | | | | | | | | | We no longer deal with having to refresh a directory upon reentering. Instead we now just listen on the directory for changes and update as necessary. This will make it much more difficult to get out of sync with the file system in pretty much all situations. Changed per comments on patch to no longer do refreshes for the list when items change as the FileObserver handles all of this. Ticket: QRDL-932 (cherry picked from commit 7b09bb0f1390b72d0ac18484721998eaf805e605) Conflicts: src/com/cyanogenmod/filemanager/activities/NavigationActivity.java Change-Id: I1c2c4a852e61c6549d87ae07a03040d57f1fffdd
* CMFM: improved search performanceRoman Birg2015-07-313-192/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Search was usable with a small number of results, but when the result list grows to something > 1000, it can get really laggy. A few improvemnts: - The adapter was chunking items and adding them in bulk to the adapter, but it was doing all the work in the main thread. Now it will process one item at a time, doing all the rough work in an AsyncTask, and passing the final objects to the adapter. - We don't need to do any chunking of items to add them, but sorting the list as soon as they are added is expensive too, so re-use the streaming mechanism that was used to add items in chunks, and just sort the list during that time. - Cache common variables to not look them up on every result - Use a List instead of generating a new DataHolder array _every time_ a new object was added. It would end up GCing thousands of items every time a new result was added. - Make the adapter be as simple as possible and just display DataHolder objects so it doesn't have to do any processing. Ref: QRDL-950 Change-Id: I17dd606246556cdf2701bbf2b06933f138588d74 Signed-off-by: Roman Birg <roman@cyngn.com>
* Shell console: fix bug in shell output streamRoman Birg2015-07-311-1/+1
| | | | | | | | | | | The command is finished and the partial result may also have the command exit code. When the partial stream does have the exit code, we were writing *only* the contents of the exit code, but we need to write everything *until* the exit code, keeping the contents intact. Ref: QRDL-950 Change-Id: I5e7af1125270c394f42fe7661cbefdd98c6a6052 Signed-off-by: Roman Birg <roman@cyngn.com>
* Fix parsing of shell command output regardless of encodingRoman Birg2015-07-311-34/+136
| | | | | | | | | | | | We always know the start and end control patterns will be in UTF-8. However, the content in between could be encoded differently. Search for the patterns in the shell command output using raw bytes, instead of a string pattern match. Ref: QRDL-950 Change-Id: I6cb019b644d371c37593fe26784f6e9d41844dec Signed-off-by: Roman Birg <roman@cyngn.com>
* ANR Caused by passes over Data Set on notifyDataSetChanged()herriojr2015-07-301-196/+71
| | | | | | | | | | | | Logic existed which took a pass over the data on the UI thread each time notifyDataSetChange was called which can cause an ANR on a large data set. This fix removes a lot of the unnecessary logic associated with this and moves it to getView(). Performance still seems good on the OnePlus for scrolling. Change-Id: Idde74f0688fef0ba7e4b560b06d9494896a24174 Ticket: QRDL-931 (cherry picked from commit df55584ec69388fbc418c7236f20868e45f37caf)
* Fix Secure SD Card Entry to open folder.herriojr2015-07-271-2/+2
| | | | | | | | | | | | Whenever the secure folder was opened from the drawer, it would prompt for a password and then go to the root folder again. This was caused by the logic in onResume() which is all meant for when entering another activity and then coming back into this activity. This should really be the job on onStart() as onResume() also handles dialogs. Change-Id: I45e0e44e3e8f9031b0685628a3f24c02725e24e1 Ticket: QRDL-946 (cherry picked from commit 9426b243dd41dea57718efa922e9c5f345338472)
* Refactored the ImageLoader a bit, so that it doesn't have troubleherriojr2015-07-273-152/+157
| | | | | | | | | | | loading images. There were a couple of problem causing this, so I felt it best to change the implementation. Change-Id: Ic77a94681d77fa4fba49f3f24f40e260220b925a Ticket: QRDL-905 (cherry picked from commit c310a84552206b25705d2e7d2113c95ce29d8ecf)
* Moved the sort of the data set off the UI Thread.herriojr2015-07-221-9/+15
| | | | | | | | | For large data sets, this can cause slowdown on older devices or if you have a significant data set size. Change-Id: I1eeea9132df0d4e5c8dad17009b648826e3386c6 Ticket: QRDL-931 (cherry picked from commit 3303817816ef785de8d29d69dddd35b4fe22c5c4)
* configurationChanged: Don't handle the orientation change in our main ActivityStephen Bird2015-07-171-1/+1
| | | | | | | | | Let file manager redraw its actionbar on rotate. Otherwise, strange things happen with popupwindows Change-Id: I3c88e6df92251e895030bb80e4f3d7417716f505 (cherry picked from commit 8cd911bf2fd48aa9a1479486bff82a702cc37165) (cherry picked from commit 25c26ac8ac712f4d365499e62d74d8799f4ec433)
* Changed NavigationView.refresh() in onResume() of the activity to tryherriojr2015-07-161-1/+1
| | | | | | | | | | | | | to restore the original position. The only caveat is because the history items don't maintain the scroll offset, it's not a perfect restore. Ideally, we want to maintain the scroll offsets of the first item within the AdapterView and restore those as well. Change-Id: I69b01bef11e26a29aabd57d2bc3e7853b6f67e08 Ticket: QRDL-922 (cherry picked from commit 84ff5edc9e6f3331a5324e3f273998e4bed13b58)
* Preferences: Move huge paragraph description to own itemStephen Bird2015-07-161-1/+3
| | | | | | | | | | In some languages, this doesn't fit well into the switch preference. This huge wall of text also looks pretty bad when it shares a row with the switch itself. On its own row, this fits quite nicely. Change-Id: I0b35d84965a800e578d3557bfc522f34aabb79f0 (cherry picked from commit b8aa362e3bce47d4d0cd91dd19dea47081f790a0)
* ProgressDialog: Require user to explicitly use the cancel button.Stephen Bird2015-07-161-0/+1
| | | | | | | This prevents accidental touches outside of the dialog during long operations Change-Id: I5d903a56aa8e72963967629bd4d844d19e3922dc (cherry picked from commit 707e828f286373a2590ebf5e202afd3b9e854f02)
* Editor: Handle content uri's in the editorStephen Bird2015-07-161-58/+211
| | | | | | | | | | | | | | | | | | Previously, files opened that were not contained inside the /data/media partition were considered invalid. Repo steps: - Open email with .txt attachment - Open attachment with Editor This also fixes similar issues all across the system where content uri's would not open in editor. Previously they would report that the user needed to gain root access. Change-Id: I15aa3fd81ae261f66920d253d6adebe28cf28e66 (cherry picked from commit e09d8433144ac84045e1fbd7bb4723c7cfb66c65)
* Secure Storage: Fix unlock buttonStephen Bird2015-07-101-3/+3
| | | | | Change-Id: I852fff76aef4f47bbd6d809c64afcc2f77165553 (cherry picked from commit c2832885bd00d45ac7277930cff68063e1cb4d3a)
* Easy Mode: Fix exit on easy mode screenStephen Bird2015-07-101-4/+6
| | | | | Change-Id: Iec39763194916c12c1947fb4f297e74c6dfa2f5f (cherry picked from commit b4d6b6ec45f4f3310220816a9ea85ac41b3b5995)
* Search: Hide progress spinner if search failsStephen Bird2015-07-021-0/+2
| | | | Change-Id: I883bd3587e91cfc6ee73eec45ea9840d781719bb
* [CMFileManager] Fix "File Manager isn't responding..." pops up after tapping ↵kai.cao2015-07-011-10/+10
| | | | | | | | | | | | | | | "Secure storage" in File Manager Procedures 1.Go to “File Manager”. 2.Press "Menu" icon on upper left corner,and then tap "Secure storage". 3.Select "CANCEL" when the note "Create storage" pops up. 4.Repeat Step2 again,check the phone Have no response when pressing "Secure storage",wait about 10-20s,the note "File Manager isn't responding..." pops up. Change-Id: I8ce4b55002d6fc34f89c4a59404469e7f3637cbc (cherry picked from commit ebd0462a7320bf093d0209cfbbfa290df28cee69)
* ActionBar TextSelection: Prevent overlay of textfieldStephen Bird2015-06-302-6/+3
| | | | | | | | | | | | | | Selected text in the actionbar would be covered by the actionbar options. Eg: Search Repro steps: - Click the search button in CMFM - Type something into the searchbox - Select that text - Text is covered Change-Id: Ie4978035b27d938becf847f6438baffd0a099f14 (cherry picked from commit dad28ad7e93f5bc28509387ff3404d053f575e1e)
* Invalidate preferences headers when resumingd34d2015-06-131-0/+7
| | | | | | | | | | | If the use is in a sub settings, i.e. general settings, and changes their language. Upon returning to File Manager and pressing back to go to the main settings menu, the about text will remain in the previous language. This is easily reproduced when the intial language is set to Chinese and then switched to English. The about text will still be in Chinese. Change-Id: I1dff61a6a94e6aabf336d863e102c29044f3a649
* Properly validate fields when resetting passwordd34d2015-06-131-2/+3
| | | | | | | | | | | The logic for validating secure storage passwords is designed for when a user creates a new password and not when they reset it. This causes the dialog to enable the "Reset" button prematurely. This patch adds the necessary checks for when mResetPassword is true Change-Id: I6d52865b2316ff6eeffeb5eaf61e787f6222e9f7 (cherry picked from commit 215e74651e478c148a92695d86e36d100711ab63)
* onResume: Refresh current viewStephen Bird2015-06-111-0/+1
| | | | | | | | | | | Sometimes files get deleted while FM is in the background. Let's update the list of current items every time we resume just in case. Change-Id: Ib3076ec97d9a0af23f57bb83bff6e0de9c728285 (cherry picked from commit 039ec12aef45822b744d4297f8808ec74c0c2daf) (cherry picked from commit 1a897187749c43699cdeec5d6022b8381d277947)
* Sizes: Let disk usage show sizes as doublesStephen Bird2015-06-111-5/+9
| | | | | | | | This way, weird file system sizes display nicely. Without this a mountpoint with a size of 1.68GB displays as 1GB. Change-Id: I72e0d8ff911dd942efd5860f2d86607ebbb30fcb
* MediaScanning: Update with calls to MediascannerStephen Bird2015-06-111-24/+21
| | | | | | | | With older versions of android, updating with .delete was the proper way to remove these items The issue is that, doing this does not update MTP. Change-Id: I9b7098927fbda6e78a9baedb5e5e35968c082108
* Delete destination file when copy failsd34d2015-06-111-0/+7
| | | | Change-Id: Ic398a2eaa7ac06d8c2ffccc10033d2d32a0dba60
* [CMFileManager] Fix the filemanager can copy parent folder to child folderkai.cao2015-06-091-16/+19
| | | | | | | | | | | Procedures 1.Go into filemanager and select a directory(such as Music). 2.enter the Music and copy the folder. The filemanager stay in "copying" interface. Change-Id: I9a765d1d89c4736b26d57bdf99237f04a810f254 (cherry picked from commit 226460f8724fdc3f74e59e92862dd88087385b70)
* Fix there are no folders in NavigationView Pinned file managerkai.cao2015-05-251-1/+5
| | | | | | | | | | | | | | | | | Procedures 1.Go to Settings -> Security ->Screen pinning and Open the screen pinning. 2.Go to FileManager and Callout the Recents Task. 3.Press the screen pinning button and lock the CMFileManager screen. 4.Press back key sometimes when the scren pinning toast show. 5.Open DrawerLayout and Press the Internal storage 6.Press the All to enter NavigationView. There are no folders in NavigationView. Change-Id: I7bbdad87812a66c346c4632886b42c3c79540373 (cherry picked from commit b1bac2dda52f508a182746817df6228421839151) (cherry picked from commit 2fa646a48b3229b31e2e1ea1637e9582534005fb)
* [CMFileManager]Fix CMFileManager sometimes crash.kai.cao2015-05-251-1/+5
| | | | | | | sometimes,the CMFileManager crash. Change-Id: Id82ec92c680248539bb070c30b6bf45c2feab6ab (cherry picked from commit 9a75e1b333af5567c1c78dd4c7ee5b9d2101594b)