Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13be85a4 authored by Rohit Yengisetty's avatar Rohit Yengisetty
Browse files

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
parent a0832978
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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);
+27 −12
Original line number Diff line number Diff line
@@ -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()
        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