mirror of
https://github.com/moparisthebest/Yaaic
synced 2024-11-14 21:15:04 -05:00
ConversationActivity: Join channel in onResume() and not in onActivityResult() - Fixes issue 6
This commit is contained in:
parent
ec9b00fd22
commit
aa77fb8587
@ -90,6 +90,13 @@ public class ConversationActivity extends Activity implements ServiceConnection,
|
|||||||
private DeckAdapter deckAdapter;
|
private DeckAdapter deckAdapter;
|
||||||
private Scrollback scrollback;
|
private Scrollback scrollback;
|
||||||
|
|
||||||
|
// XXX: This is ugly. This is a buffer for a channel that should be joined after showing the
|
||||||
|
// JoinActivity. As onActivityResult() is called before onResume() a "channel joined"
|
||||||
|
// broadcast may get lost as the broadcast receivers are registered in onResume() but the
|
||||||
|
// join command would be called in onActivityResult(). joinChannelBuffer will save the
|
||||||
|
// channel name in onActivityResult() and run the join command in onResume().
|
||||||
|
private String joinChannelBuffer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* On create
|
* On create
|
||||||
*/
|
*/
|
||||||
@ -171,6 +178,16 @@ public class ConversationActivity extends Activity implements ServiceConnection,
|
|||||||
mAdapter.addBulkMessages(conversation.getBuffer());
|
mAdapter.addBulkMessages(conversation.getBuffer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Join channel that has been selected in JoinActivity (onActivityResult())
|
||||||
|
if (joinChannelBuffer != null) {
|
||||||
|
new Thread() {
|
||||||
|
public void run() {
|
||||||
|
binder.getService().getConnection(serverId).joinChannel(joinChannelBuffer);
|
||||||
|
joinChannelBuffer = null;
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -498,14 +515,7 @@ public class ConversationActivity extends Activity implements ServiceConnection,
|
|||||||
{
|
{
|
||||||
// currently there's only the "join channel" activity
|
// currently there's only the "join channel" activity
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
final String channel = data.getExtras().getString("channel");
|
joinChannelBuffer = data.getExtras().getString("channel");
|
||||||
|
|
||||||
// run on own thread
|
|
||||||
new Thread() {
|
|
||||||
public void run() {
|
|
||||||
binder.getService().getConnection(serverId).joinChannel(channel);
|
|
||||||
}
|
|
||||||
}.start();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user