diff options
author | Danny Baumann <dannybaumann@web.de> | 2017-04-20 12:42:22 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2017-05-24 10:35:54 +0000 |
commit | c0e5d54c041466ebc97b6279d717f8770dd36690 (patch) | |
tree | 81f53d43f06e4e1605f1133666f84d7592d5c1fc | |
parent | 7c7d90c33f5e5677a1f649f4b6b2bce99325fd2a (diff) | |
download | android_packages_apps_Email-c0e5d54c041466ebc97b6279d717f8770dd36690.tar.gz android_packages_apps_Email-c0e5d54c041466ebc97b6279d717f8770dd36690.tar.bz2 android_packages_apps_Email-c0e5d54c041466ebc97b6279d717f8770dd36690.zip |
Search in folder specified via URI parameter, if possible.
Change-Id: Ie2e9b8f4980be593e65c8d1c57dab785aa1efb29
-rw-r--r-- | provider_src/com/android/email/provider/EmailProvider.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/provider_src/com/android/email/provider/EmailProvider.java b/provider_src/com/android/email/provider/EmailProvider.java index d015c94e1..96a475f04 100644 --- a/provider_src/com/android/email/provider/EmailProvider.java +++ b/provider_src/com/android/email/provider/EmailProvider.java @@ -6205,10 +6205,26 @@ public class EmailProvider extends ContentProvider private Cursor uiSearch(Uri uri, String[] projection) { LogUtils.d(TAG, "runSearchQuery in search %s", uri); final long accountId = Long.parseLong(uri.getLastPathSegment()); + long folderId = -1; - // TODO: Check the actual mailbox - Mailbox inbox = Mailbox.restoreMailboxOfType(getContext(), accountId, Mailbox.TYPE_INBOX); - if (inbox == null) { + try { + String folderIdString = uri.getQueryParameter( + UIProvider.SearchQueryParameters.FOLDER_ID); + if (folderIdString != null) { + folderId = Long.valueOf(folderIdString); + } + } catch (NumberFormatException e) { + // ignore and keep -1 + } + + Mailbox folder = null; + if (folderId >= 0) { + folder = Mailbox.restoreMailboxWithId(getContext(), folderId); + } + if (folder == null) { + folder = Mailbox.restoreMailboxOfType(getContext(), accountId, Mailbox.TYPE_INBOX); + } + if (folder == null) { LogUtils.w(Logging.LOG_TAG, "In uiSearch, inbox doesn't exist for account " + accountId); @@ -6224,7 +6240,7 @@ public class EmailProvider extends ContentProvider Mailbox searchMailbox = getSearchMailbox(accountId); final long searchMailboxId = searchMailbox.mId; - mSearchParams = new SearchParams(inbox.mId, filter, searchMailboxId); + mSearchParams = new SearchParams(folder.mId, filter, searchMailboxId); final Context context = getContext(); if (mSearchParams.mOffset == 0) { |