feat(ui): abas passivas sem badges na lista lateral (v1)
Sub-abas de chat e screencast são criadas em segundo plano ao receber; D23 adiado na UI. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
1414f59a20
commit
fc657345ba
10 files changed
+89
-200
No files matched your search
@@ -562,10 +562,11 @@ public class ScreenCastPanel extends JPanel {
|
||||
}
|
||||
receiveScopes.put(viewKey, scope != null ? scope : ScreenCastReceiveScope.BROADCAST);
|
||||
resolveSenderIp(message.getName(), viewKey);
|
||||
sessionTabs.addOrSelectTab(viewKey, message.getName(), message.getName(), new JPanel(), true);
|
||||
sessionTabs.addTabIfAbsent(viewKey, message.getName(), message.getName(), new JPanel(), true);
|
||||
setBodyContent(viewKey, new JScrollPane(new JLabel(new ImageIcon(image))));
|
||||
sessionTabs.selectTab(viewKey);
|
||||
showBodyCard(viewKey);
|
||||
if (viewKey.equals(sessionTabs.selectedKey())) {
|
||||
showBodyCard(viewKey);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
updateTabError(viewKey, message.getName(), "Erro ao ler imagem: " + ex.getMessage(), scope);
|
||||
}
|
||||
@@ -588,8 +589,10 @@ public class ScreenCastPanel extends JPanel {
|
||||
receiveScopes.put(tabKey, scope != null ? scope : ScreenCastReceiveScope.BROADCAST);
|
||||
JLabel label = new JLabel("<html><p style='color:#c62828'>" + error + "</p></html>");
|
||||
setBodyContent(tabKey, label);
|
||||
sessionTabs.addOrSelectTab(tabKey, title, title, new JPanel(), true);
|
||||
showBodyCard(tabKey);
|
||||
sessionTabs.addTabIfAbsent(tabKey, title, title, new JPanel(), true);
|
||||
if (tabKey.equals(sessionTabs.selectedKey())) {
|
||||
showBodyCard(tabKey);
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureBodyPanel(String key) {
|
||||
|
||||
@@ -4,8 +4,6 @@ import java.util.List;
|
||||
|
||||
import pitiupi.api.plugin.PeerActionsRegistrar;
|
||||
import pitiupi.api.plugin.PluginWorkspace;
|
||||
import pitiupi.api.plugin.PeerActivityFocusTokens;
|
||||
import pitiupi.application.activity.PeerActivityInbox;
|
||||
import pitiupi.application.peeractions.PeerAction;
|
||||
import pitiupi.application.presence.UserPeerView;
|
||||
import pitiupi.application.peeractions.PeerActionTarget;
|
||||
@@ -110,7 +108,6 @@ public class ScreenCastPlugin extends Plugin {
|
||||
return;
|
||||
}
|
||||
ScreenCastReceiveScope scope = classifyIncoming(msg);
|
||||
recordScreenCastActivity(msg, scope);
|
||||
screenCastPanel.receiveScreenCastMessage(msg, scope);
|
||||
}
|
||||
}
|
||||
@@ -137,27 +134,4 @@ public class ScreenCastPlugin extends Plugin {
|
||||
return ScreenCastReceiveScope.BROADCAST;
|
||||
}
|
||||
|
||||
private void recordScreenCastActivity(ScreenCastMessage msg, ScreenCastReceiveScope scope) {
|
||||
if (connectionManager == null) {
|
||||
return;
|
||||
}
|
||||
PeerActivityInbox inbox = connectionManager.getPeerActivityInbox();
|
||||
if (scope == ScreenCastReceiveScope.DIRECT) {
|
||||
for (UserPeerView view : connectionManager.getPresenceService().listPeerViews()) {
|
||||
if (!view.isBroadcastTarget()
|
||||
&& msg.getName() != null
|
||||
&& msg.getName().equals(view.getDisplayName())
|
||||
&& view.getInstanceId() != null) {
|
||||
inbox.signal(
|
||||
view.getInstanceId(),
|
||||
getIdentifier(),
|
||||
"screencast.peer",
|
||||
PeerActivityFocusTokens.peerInstance(view.getInstanceId())
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
inbox.signalBroadcast(getIdentifier(), "screencast.multicast", PeerActivityFocusTokens.broadcast());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user