add context menu to show under saved item filter dropdown

This commit is contained in:
Satindar Dhillon
2023-02-16 09:30:13 -08:00
parent 59c47c2f23
commit a7c927f65d
2 changed files with 72 additions and 6 deletions

View File

@ -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()
}
)
}
}

View File

@ -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
)
}
)
}