Remove channels on disconnect

This commit is contained in:
Sebastian Kaspari 2010-03-05 19:43:02 +01:00
parent ef8ddfa227
commit 9367d44220
4 changed files with 18 additions and 12 deletions

View File

@ -92,7 +92,6 @@ public class DeckAdapter extends BaseAdapter
public void addItem(Channel channel) public void addItem(Channel channel)
{ {
channels.add(channel); channels.add(channel);
//views.add(view);
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -120,11 +119,6 @@ public class DeckAdapter extends BaseAdapter
public void removeItem(Channel channel) public void removeItem(Channel channel)
{ {
channels.remove(channel); channels.remove(channel);
/*
View view = map.get(channel);
views.remove(view);
map.remove(channel);
*/
notifyDataSetChanged(); notifyDataSetChanged();
} }

View File

@ -190,7 +190,7 @@ public class Server
} }
/** /**
* Renive a (joined) channel * Remove a (joined) channel
* *
* @param name * @param name
*/ */
@ -199,6 +199,14 @@ public class Server
channels.remove(name); channels.remove(name);
} }
/**
* Remove all channels
*/
public void clearChannels()
{
channels.clear();
}
/** /**
* Get icon for current server status * Get icon for current server status
* *

View File

@ -153,6 +153,7 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.disconnect: case R.id.disconnect:
binder.getService().getConnection(serverId).quitServer(); binder.getService().getConnection(serverId).quitServer();
server.clearChannels();
setResult(RESULT_OK); setResult(RESULT_OK);
finish(); finish();
break; break;

View File

@ -63,7 +63,8 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
private ServerListAdapter adapter; private ServerListAdapter adapter;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.servers); setContentView(R.layout.servers);
@ -82,9 +83,8 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
Intent intent = new Intent(this, IRCService.class); Intent intent = new Intent(this, IRCService.class);
startService(intent); startService(intent);
bindService(intent, this, 0); bindService(intent, this, 0);
receiver = new ServerReceiver(this); receiver = new ServerReceiver(this);
registerReceiver(receiver, new IntentFilter(Broadcast.SERVER_UPDATE)); registerReceiver(receiver, new IntentFilter(Broadcast.SERVER_UPDATE));
} }
@ -158,6 +158,7 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
break; break;
case 1: // Disconnect case 1: // Disconnect
server.clearChannels();
binder.getService().getConnection(server.getId()).quitServer(); binder.getService().getConnection(server.getId()).quitServer();
break; break;
case 2: // Delete case 2: // Delete
@ -186,7 +187,8 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
} }
@Override @Override
public boolean onMenuItemSelected(int featureId, MenuItem item) { public boolean onMenuItemSelected(int featureId, MenuItem item)
{
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.add: case R.id.add:
startActivityForResult(new Intent(this, AddServerActivity.class), 0); startActivityForResult(new Intent(this, AddServerActivity.class), 0);
@ -197,7 +199,8 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
} }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
// Refresh list from database // Refresh list from database
adapter.loadServers(); adapter.loadServers();