diff --git a/android/Omnivore/app/build.gradle b/android/Omnivore/app/build.gradle index 9a8993561..ce2126bbc 100644 --- a/android/Omnivore/app/build.gradle +++ b/android/Omnivore/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "app.omnivore.omnivore" minSdk 26 targetSdk 33 - versionCode 24 - versionName "0.0.24" + versionCode 25 + versionName "0.0.25" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/LibraryLiveData.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/LibraryLiveData.kt index cbfd976a5..c9332b16b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/LibraryLiveData.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/LibraryLiveData.kt @@ -82,3 +82,53 @@ private data class LibraryLiveDataQueryParams( } } } + +//switch self { +// case .inbox: +// // non-archived items +// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, notInArchivePredicate]) + +// case .readlater: +// // non-archived or deleted items without the Newsletter label +// let nonNewsletterLabelPredicate = NSPredicate( +// format: "NOT SUBQUERY(labels, $label, $label.name == \"Newsletter\") .@count > 0" +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [ +// undeletedPredicate, notInArchivePredicate, nonNewsletterLabelPredicate +// ]) +// case .newsletters: +// // non-archived or deleted items with the Newsletter label +// let newsletterLabelPredicate = NSPredicate( +// format: "SUBQUERY(labels, $label, $label.name == \"Newsletter\").@count > 0" +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [notInArchivePredicate, newsletterLabelPredicate]) +// case .recommended: +// // non-archived or deleted items with the Newsletter label +// let recommendedPredicate = NSPredicate( +// format: "recommendations.@count > 0" +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [notInArchivePredicate, recommendedPredicate]) +// case .all: +// // include everything undeleted +// return undeletedPredicate +// case .archived: +// let inArchivePredicate = NSPredicate( +// format: "%K == %@", #keyPath(LinkedItem.isArchived), Int(truncating: true) as NSNumber +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, inArchivePredicate]) +// case .files: +// // include pdf only +// let isPDFPredicate = NSPredicate( +// format: "%K == %@", #keyPath(LinkedItem.contentReader), "PDF" +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, isPDFPredicate]) +// case .hasHighlights: +// let hasHighlightsPredicate = NSPredicate( +// format: "highlights.@count > 0" +// ) +// return NSCompoundPredicate(andPredicateWithSubpredicates: [ +// hasHighlightsPredicate +// ]) +//} +//} +//} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItem.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItem.kt index 4848ccb3f..548adffb9 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItem.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItem.kt @@ -154,69 +154,3 @@ interface SavedItemDao { object SavedItemQueryConstants { const val columns = "savedItemId, slug, publisherURLString, title, author, imageURLString, isArchived, pageURLString, contentReader " } - -// Archive Status: - -//INBOX("Inbox", rawValue = "inbox", "in:inbox"), -//READ_LATER("Read Later", "readlater", "in:inbox -label:Newsletter"), -//NEWSLETTERS("Newsletters", "newsletters", "in:inbox label:Newsletter"), -//RECOMMENDED("Recommended", "recommended", "recommendedBy:*"), -//ALL("All", "all", "in:all"), -//ARCHIVED("Archived", "archived", "in:archive"), -//HAS_HIGHLIGHTS("Highlighted", "hasHighlights", "has:highlights"), -//FILES("Files", "files", "type:file"), - - -//let notInArchivePredicate = NSPredicate( -//format: "%K == %@", #keyPath(LinkedItem.isArchived), Int(truncating: false) as NSNumber -//) - -//switch self { -// case .inbox: -// // non-archived items -// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, notInArchivePredicate]) - -// case .readlater: -// // non-archived or deleted items without the Newsletter label -// let nonNewsletterLabelPredicate = NSPredicate( -// format: "NOT SUBQUERY(labels, $label, $label.name == \"Newsletter\") .@count > 0" -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [ -// undeletedPredicate, notInArchivePredicate, nonNewsletterLabelPredicate -// ]) -// case .newsletters: -// // non-archived or deleted items with the Newsletter label -// let newsletterLabelPredicate = NSPredicate( -// format: "SUBQUERY(labels, $label, $label.name == \"Newsletter\").@count > 0" -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [notInArchivePredicate, newsletterLabelPredicate]) -// case .recommended: -// // non-archived or deleted items with the Newsletter label -// let recommendedPredicate = NSPredicate( -// format: "recommendations.@count > 0" -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [notInArchivePredicate, recommendedPredicate]) -// case .all: -// // include everything undeleted -// return undeletedPredicate -// case .archived: -// let inArchivePredicate = NSPredicate( -// format: "%K == %@", #keyPath(LinkedItem.isArchived), Int(truncating: true) as NSNumber -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, inArchivePredicate]) -// case .files: -// // include pdf only -// let isPDFPredicate = NSPredicate( -// format: "%K == %@", #keyPath(LinkedItem.contentReader), "PDF" -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [undeletedPredicate, isPDFPredicate]) -// case .hasHighlights: -// let hasHighlightsPredicate = NSPredicate( -// format: "highlights.@count > 0" -// ) -// return NSCompoundPredicate(andPredicateWithSubpredicates: [ -// hasHighlightsPredicate -// ]) -//} -//} -//} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/library/SavedItemFilter.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/library/SavedItemFilter.kt index b3f9b9094..6655d1ca7 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/library/SavedItemFilter.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/library/SavedItemFilter.kt @@ -26,7 +26,9 @@ fun SavedItemFilterContextMenu( expanded = isExpanded, onDismissRequest = onDismiss ) { - SavedItemFilter.values().forEach { + // Displaying only a subset of filters until we figure out the Room DB queries (and labels) +// SavedItemFilter.values().forEach { + listOf(SavedItemFilter.INBOX, SavedItemFilter.ARCHIVED, SavedItemFilter.ALL).forEach { DropdownMenuItem( text = { Text(it.displayText) }, onClick = {