Multi-Threading
Joule / Patterns / Multi-Threading
Intro
The multi-threading pattern allows multiple threads of conversation histories to be saved within Joule. Users can accomplish several tasks in parallel by managing separate conversation threads in the conversation menu.
Conversation menu in compact Joule panel (left) and expanded Joule panel (right)
Anatomy
Conversation Menu
A. Joule Panel
The conversation menu is a unique view of the Joule panel. It provides an overview of all conversations and allows users to edit and switch between them.
B. Panel Header
The panel header is modified when in the conversation menu. It provides the main navigation for the conversation menu.
C. Active Conversation Section
Includes the collapsible (by default) active conversations section header, a counter of active conversations, active conversations (if any), and a divider.
D. Active Conversation
Includes the active conversation title and conversation actions icon button.
E. Expired Conversation Section
Includes the expandable (by default) expired conversation section header, a counter of expired conversations, expired conversations (if any), and a divider.
F. Expired Conversation
Includes the expired conversation title and conversation actions icon button.
G. Disclaimer
Explains how conversations are defined as active or expired and outlines the limitations of active conversations.
H. “New Conversation” Button
Allows users to start a new active conversation.
Conversation menu anatomy
States
Selected State
The selected state is applied to an active or expired conversation item in the conversation menu when it is the most recently selected conversation. When within the conversation menu, tapping the “back icon” button in the panel header returns the user to the selected conversation.
Unselected State
The unselected state is applied to a conversation in the conversation menu when it is not the most recently selected conversation.
Conversation menu with the unselected conversation, “Conversation A”, and the selected conversation, “Conversation B”
Variations
Default
The conversation menu appears in the default variant when there are nine or fewer active conversations.
Full
The conversation menu appears in the full variant when there are ten active conversations.
Conversation menu in the default (left) and full (right) variants
Behavior and Interaction
Conversation Title
Creating a new conversation and then sending a query
Conversation Limit
Conversation limit behavior in the conversation menu (left) and within a conversation (right)
Expired Conversations
Expired conversation where conversation limit is not reached (left) and conversation limit is reached (right)
Reopening Joule
Reopening Joule after leaving off on the conversation menu
Opening/Closing Conversation Menu
Opening the conversation menu from a conversation
Expanding/Collapsing a Conversation Section
Expanding then collapsing the expired conversation section
Opening a Conversation
Active
Tapping an active conversation in the conversation menu opens the conversation.
Expired
Tapping an expired conversation in the conversation menu opens the conversation.
Opening an unselected expired conversation from the conversation menu
Creating a Conversation
From Conversation Menu
Creating a conversation from the conversation menu
From Conversation Thread
Creating a conversation from another conversation
Renaming a Conversation
From Conversation Menu
Renaming an unselected conversation from the conversation menu
From Conversation Thread
Renaming the conversation from within the conversation
Deleting Conversation
From Conversation Menu
Deleting a selected conversation from the conversation menu
From Conversation
Deleting a conversation from within the conversation
Adaptive Design
The multi-threading pattern opens on the side in landscape view, allowing the user to multitask between the conversation and conversation menu.
Multi-threading pattern in landscape view
Resources
Joule for Android: Multi-Threading