diff options
author | Rohit Yengisetty <rohit@cyngn.com> | 2015-01-22 17:02:34 -0800 |
---|---|---|
committer | Rohit Yengisetty <rohit@cyngn.com> | 2015-01-23 10:49:12 -0800 |
commit | 13be85a40ad87800d53cb790648525776a9354b4 (patch) | |
tree | 63845495692e5256e8a999e8c143154050e4c52b /src | |
parent | a083297887366bc9756da38c1fa6e4fe21163ece (diff) | |
download | android_packages_apps_CMFileManager-13be85a40ad87800d53cb790648525776a9354b4.tar.gz android_packages_apps_CMFileManager-13be85a40ad87800d53cb790648525776a9354b4.tar.bz2 android_packages_apps_CMFileManager-13be85a40ad87800d53cb790648525776a9354b4.zip |
CM File Manager : Change Document search to include TEXT mime types
> modify SearchActivity to accept multiple mime type categories
> "Document" in EasyMode also searches for TEXT mime types
Change-Id: I2a23b824d576500d5aeb0f5f7628e489a10e9456
Diffstat (limited to 'src')
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/NavigationActivity.java | 13 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/SearchActivity.java | 39 |
2 files changed, 36 insertions, 16 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index 6c95ea1c..00028af2 100644 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -1451,16 +1451,21 @@ public class NavigationActivity extends Activity performHideEasyMode(); return; case 1: - intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, MimeTypeCategory.IMAGE); + intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, + new MimeTypeCategory[] { MimeTypeCategory.IMAGE }); break; case 2: - intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, MimeTypeCategory.VIDEO); + intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, + new MimeTypeCategory[] { MimeTypeCategory.VIDEO }); break; case 3: - intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, MimeTypeCategory.AUDIO); + intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, + new MimeTypeCategory[] { MimeTypeCategory.AUDIO }); break; case 4: - intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, MimeTypeCategory.DOCUMENT); + // search for both DOCUMENT and TEXT mime types + MimeTypeCategory[] categories = { MimeTypeCategory.DOCUMENT, MimeTypeCategory.TEXT }; + intent.putExtra(SearchActivity.EXTRA_SEARCH_MIMETYPE, categories); break; } startActivity(intent); diff --git a/src/com/cyanogenmod/filemanager/activities/SearchActivity.java b/src/com/cyanogenmod/filemanager/activities/SearchActivity.java index 2e5f4452..9177470b 100644 --- a/src/com/cyanogenmod/filemanager/activities/SearchActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/SearchActivity.java @@ -90,7 +90,9 @@ import com.cyanogenmod.filemanager.util.MimeTypeHelper.MimeTypeCategory; import com.cyanogenmod.filemanager.util.StorageHelper; import java.io.FileNotFoundException; +import java.io.Serializable; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; /** @@ -270,15 +272,15 @@ public class SearchActivity extends Activity //Saved in the global result list, for save at the end if (partialResults instanceof FileSystemObject) { FileSystemObject fso = (FileSystemObject) partialResults; - if (mMimeTypeCategory == null || mMimeTypeCategory == MimeTypeHelper - .getCategory(SearchActivity.this, fso)) { + if (mMimeTypeCategories == null || mMimeTypeCategories.contains(MimeTypeHelper + .getCategory(SearchActivity.this, fso))) { SearchActivity.this.mResultList.add((FileSystemObject) partialResults); } } else { List<FileSystemObject> fsoList = (List<FileSystemObject>) partialResults; for (FileSystemObject fso : fsoList) { - if (mMimeTypeCategory == null || mMimeTypeCategory == MimeTypeHelper - .getCategory(SearchActivity.this, fso)) { + if (mMimeTypeCategories == null || mMimeTypeCategories.contains(MimeTypeHelper + .getCategory(SearchActivity.this, fso))) { SearchActivity.this.mResultList.add(fso); } } @@ -369,7 +371,7 @@ public class SearchActivity extends Activity /** * @hide */ - MimeTypeCategory mMimeTypeCategory; + HashSet<MimeTypeCategory> mMimeTypeCategories; /** * {@inheritDoc} @@ -611,8 +613,18 @@ public class SearchActivity extends Activity * Method that initializes the titlebar of the activity. */ private void initSearch() { - mMimeTypeCategory = (MimeTypeCategory) getIntent() - .getSerializableExtra(EXTRA_SEARCH_MIMETYPE); + Serializable mimeTypeExtra = getIntent().getSerializableExtra(EXTRA_SEARCH_MIMETYPE); + + if (mimeTypeExtra != null) { + MimeTypeCategory[] categories = (MimeTypeCategory[]) getIntent() + .getSerializableExtra(EXTRA_SEARCH_MIMETYPE); + // setting load factor to 1 to avoid the backing map's resizing + mMimeTypeCategories = new HashSet<MimeTypeCategory>(categories.length, 1); + for (MimeTypeCategory category : categories) { + mMimeTypeCategories.add(category); + } + } + //Stop any pending action try { if (SearchActivity.this.mDrawingSearchResultTask != null @@ -663,7 +675,7 @@ public class SearchActivity extends Activity boolean ask = false; // Mime type search uses '*' which needs to bypass // length check - if (mMimeTypeCategory == null) { + if (mMimeTypeCategories == null) { //Check if some queries has lower than allowed, in this case //request the user for stop the search int cc = queries.size(); @@ -757,14 +769,17 @@ public class SearchActivity extends Activity this.mSearchListView.setAdapter(adapter); //Set terms - if (mMimeTypeCategory == null) { + if (mMimeTypeCategories == null) { this.mSearchTerms.setText( Html.fromHtml(getString(R.string.search_terms, query.getTerms()))); } else { + ArrayList<String> localizedNames = new ArrayList<String>(mMimeTypeCategories.size()); + for (MimeTypeCategory category : mMimeTypeCategories) { + localizedNames + .add(NavigationActivity.MIME_TYPE_LOCALIZED_NAMES[category.ordinal()]); + } this.mSearchTerms.setText( - Html.fromHtml(getString(R.string.search_terms, - NavigationActivity.MIME_TYPE_LOCALIZED_NAMES[mMimeTypeCategory - .ordinal()]))); + Html.fromHtml(getString(R.string.search_terms, localizedNames))); } //Now, do the search in background |