src/main/java/de/unixwork/im/ConversationFrame.java

Wed, 25 Dec 2024 21:49:48 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Wed, 25 Dec 2024 21:49:48 +0100
changeset 0
f3095cda599e
child 1
42d0d099492b
permissions
-rw-r--r--

add initial code with minimal working contact list and conversations

0
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 package de.unixwork.im;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 import javax.swing.*;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 import java.awt.*;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 import java.awt.event.ActionEvent;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 import java.awt.event.ActionListener;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 import java.awt.event.KeyAdapter;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 import java.awt.event.KeyEvent;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 import java.time.LocalDateTime;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 import java.time.format.DateTimeFormatter;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 public class ConversationFrame extends JFrame implements MessageSendListener {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 private String xid;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 private JTextArea messageHistory;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 private JTextArea messageInput;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 private JButton sendButton;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 private JButton topRightButton;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 private MessageSendListener messageSendListener;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 private TopRightButtonListener topRightButtonListener;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 public ConversationFrame(String xid) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 this.xid = xid;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 setTitle(xid);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 setSize(500, 400);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28 setLayout(new BorderLayout(5, 5));
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 // Top panel with top-right button
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 JPanel topPanel = new JPanel(new BorderLayout());
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 topRightButton = new JButton("Insecure");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 topPanel.add(topRightButton, BorderLayout.EAST);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 add(topPanel, BorderLayout.NORTH);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 // Split pane
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 splitPane.setResizeWeight(0.8);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 // Message history area (top part)
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 messageHistory = new JTextArea();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 messageHistory.setEditable(false);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 JScrollPane messageHistoryScrollPane = new JScrollPane(messageHistory);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 splitPane.setTopComponent(messageHistoryScrollPane);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 // Message input area (bottom part)
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 JPanel inputPanel = new JPanel(new BorderLayout(5, 5));
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 messageInput = new JTextArea(3, 20);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 JScrollPane messageInputScrollPane = new JScrollPane(messageInput);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 sendButton = new JButton("Send");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 inputPanel.add(messageInputScrollPane, BorderLayout.CENTER);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 inputPanel.add(sendButton, BorderLayout.EAST);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 splitPane.setBottomComponent(inputPanel);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 add(splitPane, BorderLayout.CENTER);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 // Configure input behavior
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 messageInput.addKeyListener(new KeyAdapter() {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 @Override
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 public void keyPressed(KeyEvent e) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 if (e.getKeyCode() == KeyEvent.VK_ENTER) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62 if (e.isControlDown()) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 messageInput.append("\n");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 } else {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 e.consume();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 triggerMessageSend();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 });
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 // Button actions
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 sendButton.addActionListener(new ActionListener() {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 @Override
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 public void actionPerformed(ActionEvent e) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 triggerMessageSend();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 });
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 topRightButton.addActionListener(new ActionListener() {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81 @Override
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 public void actionPerformed(ActionEvent e) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 if (topRightButtonListener != null) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 topRightButtonListener.onTopRightButtonClicked();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 });
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 // message handler
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 setMessageSendListener(this);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 public void addToLog(String message, boolean incoming, boolean secure) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94 String prefix = incoming ? "< " : "> ";
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 // Get the current date and time
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96 LocalDateTime now = LocalDateTime.now();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 // Define the desired format
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 // Format the current date and time
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 String formattedDateTime = now.format(formatter);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 appendToMessageHistory(prefix + formattedDateTime + ": " + message);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 @Override
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 public void onMessageSend(String message) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 addToLog(message, false, false);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 App.getInstance().getXmpp().sendMessage(xid, message, false);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 // Method to append text to the message history
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 public void appendToMessageHistory(String text) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 messageHistory.append(text + "\n");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 // Method to set the message send listener
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118 public void setMessageSendListener(MessageSendListener listener) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 this.messageSendListener = listener;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 // Method to set the top-right button listener
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123 public void setTopRightButtonListener(TopRightButtonListener listener) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 this.topRightButtonListener = listener;
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
127 // Trigger the message send callback
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128 private void triggerMessageSend() {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 if (messageSendListener != null) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130 String message = messageInput.getText().trim();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131 if (!message.isEmpty()) {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 messageSendListener.onMessageSend(message);
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 messageInput.setText("");
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 // Interface for top-right button callback
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139 public interface TopRightButtonListener {
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140 void onTopRightButtonClicked();
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141 }
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142
f3095cda599e add initial code with minimal working contact list and conversations
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143 }

mercurial