summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2017-04-20 12:42:22 +0200
committerDanny Baumann <dannybaumann@web.de>2017-05-24 10:35:54 +0000
commitc0e5d54c041466ebc97b6279d717f8770dd36690 (patch)
tree81f53d43f06e4e1605f1133666f84d7592d5c1fc
parent7c7d90c33f5e5677a1f649f4b6b2bce99325fd2a (diff)
downloadandroid_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.java24
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) {