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 new file mode 100644 index 000000000..b1453746e --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/library/SavedItemFilter.kt @@ -0,0 +1,48 @@ +package app.omnivore.omnivore.ui.library + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material.icons.outlined.List +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable + +enum class SavedItemFilter(val displayText: String, val rawValue: String, val queryString: String) { + 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"), +} + +@Composable +fun SavedItemFilterContextMenu( + isExpanded: Boolean, + onDismiss: () -> Unit, + actionHandler: (SavedItemFilter) -> Unit +) { + DropdownMenu( + expanded = isExpanded, + onDismissRequest = onDismiss + ) { + DropdownMenuItem( + text = { Text("One") }, + onClick = { + actionHandler(SavedItemFilter.INBOX) + onDismiss() + } + ) + DropdownMenuItem( + text = { Text("Two") }, + onClick = { + actionHandler(SavedItemFilter.INBOX) + onDismiss() + } + ) + } +} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/savedItemViews/SavedItemContextMenu.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/savedItemViews/SavedItemContextMenu.kt index 642a32356..7725d62d7 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/savedItemViews/SavedItemContextMenu.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/savedItemViews/SavedItemContextMenu.kt @@ -1,33 +1,51 @@ package app.omnivore.omnivore.ui.savedItemViews +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material.icons.outlined.List import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import app.omnivore.omnivore.ui.library.SavedItemFilter +import app.omnivore.omnivore.ui.library.SavedItemAction @Composable fun SavedItemContextMenu( isExpanded: Boolean, + isArchived: Boolean, onDismiss: () -> Unit, - actionHandler: (SavedItemFilter) -> Unit + actionHandler: (SavedItemAction) -> Unit ) { DropdownMenu( expanded = isExpanded, onDismissRequest = onDismiss ) { DropdownMenuItem( - text = { Text("One") }, + text = { Text(if (isArchived) "Unarchive" else "Archive") }, onClick = { - actionHandler(SavedItemFilter.INBOX) + val action = if (isArchived) SavedItemAction.Unarchive else SavedItemAction.Archive + actionHandler(action) onDismiss() + }, + leadingIcon = { + Icon( + Icons.Outlined.List, // TODO: use more appropriate icon + contentDescription = null + ) } ) DropdownMenuItem( - text = { Text("Two") }, + text = { Text("Remove Item") }, onClick = { - actionHandler(SavedItemFilter.INBOX) + actionHandler(SavedItemAction.Delete) onDismiss() + }, + leadingIcon = { + Icon( + Icons.Outlined.Delete, + contentDescription = null + ) } ) }