mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-23 22:16:16 +02:00
fixed reconnecting
This commit is contained in:
parent
73a9223c6f
commit
07d76f365f
2 changed files with 18 additions and 19 deletions
|
@ -365,7 +365,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
@Override
|
@Override
|
||||||
public void onDisconnected(RemoteControl remoteControl) {
|
public void onDisconnected(RemoteControl remoteControl) {
|
||||||
Log.d(TAG, "onDisconnected");
|
Log.d(TAG, "onDisconnected");
|
||||||
serverInfo = null;
|
serverInfo = new ServerInfo();
|
||||||
sectionsPagerAdapter.updateServer(serverInfo);
|
sectionsPagerAdapter.updateServer(serverInfo);
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -436,7 +436,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
final ClientInfo clientInfo = clientInfoItem.getClientInfo();
|
final ClientInfo clientInfo = clientInfoItem.getClientInfo();
|
||||||
clientInfo.setDeleted(true);
|
clientInfo.setDeleted(true);
|
||||||
serverInfo.updateClient(clientInfo);
|
serverInfo.updateClient(clientInfo);
|
||||||
// sectionsPagerAdapter.update();
|
sectionsPagerAdapter.updateServer(serverInfo);
|
||||||
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
|
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
|
||||||
getString(R.string.client_deleted, clientInfo.getVisibleName()),
|
getString(R.string.client_deleted, clientInfo.getVisibleName()),
|
||||||
Snackbar.LENGTH_SHORT);
|
Snackbar.LENGTH_SHORT);
|
||||||
|
@ -445,7 +445,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
clientInfo.setDeleted(false);
|
clientInfo.setDeleted(false);
|
||||||
serverInfo.updateClient(clientInfo);
|
serverInfo.updateClient(clientInfo);
|
||||||
// sectionsPagerAdapter.update();
|
sectionsPagerAdapter.updateServer(serverInfo);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mySnackbar.setCallback(new Snackbar.Callback() {
|
mySnackbar.setCallback(new Snackbar.Callback() {
|
||||||
|
@ -478,6 +478,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
|
|
||||||
private Vector<ClientListFragment> fragments = new Vector<>();
|
private Vector<ClientListFragment> fragments = new Vector<>();
|
||||||
private ServerInfo serverInfo = new ServerInfo();
|
private ServerInfo serverInfo = new ServerInfo();
|
||||||
|
private int streamCount = 0;
|
||||||
|
|
||||||
public SectionsPagerAdapter(FragmentManager fm) {
|
public SectionsPagerAdapter(FragmentManager fm) {
|
||||||
super(fm);
|
super(fm);
|
||||||
|
@ -487,27 +488,23 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
MainActivity.this.runOnUiThread(new Runnable() {
|
MainActivity.this.runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
SectionsPagerAdapter.this.serverInfo = serverInfo;
|
if (serverInfo == null)
|
||||||
|
SectionsPagerAdapter.this.serverInfo = new ServerInfo();
|
||||||
|
else;
|
||||||
|
SectionsPagerAdapter.this.serverInfo = serverInfo;
|
||||||
|
|
||||||
boolean changed = ((serverInfo == null) || (serverInfo.getStreams().size() != fragments.size()));
|
boolean changed = (serverInfo.getStreams().size() != streamCount);
|
||||||
|
|
||||||
if (serverInfo != null) {
|
while (serverInfo.getStreams().size() > fragments.size())
|
||||||
|
fragments.add(ClientListFragment.newInstance("TODO1"));
|
||||||
|
|
||||||
while (serverInfo.getStreams().size() < fragments.size())
|
for (int i = 0; i < serverInfo.getStreams().size(); ++i) {
|
||||||
fragments.removeElement(fragments.lastElement());
|
fragments.get(i).setStream(serverInfo.getStreams().get(i));
|
||||||
|
fragments.get(i).updateServer(serverInfo);
|
||||||
while (serverInfo.getStreams().size() > fragments.size())
|
|
||||||
fragments.add(ClientListFragment.newInstance("TODO1"));
|
|
||||||
|
|
||||||
for (int i = 0; i < serverInfo.getStreams().size(); ++i) {
|
|
||||||
fragments.get(i).setStream(serverInfo.getStreams().get(i));
|
|
||||||
fragments.get(i).updateServer(serverInfo);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fragments.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
|
streamCount = serverInfo.getStreams().size();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
tabLayout.setTabsFromPagerAdapter(SectionsPagerAdapter.this);
|
tabLayout.setTabsFromPagerAdapter(SectionsPagerAdapter.this);
|
||||||
}
|
}
|
||||||
|
@ -529,7 +526,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return fragments.size();
|
return streamCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -107,6 +107,7 @@ public class RemoteControl implements TcpClient.TcpClientListener {
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(TcpClient tcpClient) {
|
public void onConnected(TcpClient tcpClient) {
|
||||||
Log.d(TAG, "onConnected");
|
Log.d(TAG, "onConnected");
|
||||||
|
serverInfo = new ServerInfo();
|
||||||
if (listener != null)
|
if (listener != null)
|
||||||
listener.onConnected(this);
|
listener.onConnected(this);
|
||||||
}
|
}
|
||||||
|
@ -114,6 +115,7 @@ public class RemoteControl implements TcpClient.TcpClientListener {
|
||||||
@Override
|
@Override
|
||||||
public void onDisconnected(TcpClient tcpClient) {
|
public void onDisconnected(TcpClient tcpClient) {
|
||||||
Log.d(TAG, "onDisconnected");
|
Log.d(TAG, "onDisconnected");
|
||||||
|
serverInfo = null;
|
||||||
if (listener != null)
|
if (listener != null)
|
||||||
listener.onDisconnected(this);
|
listener.onDisconnected(this);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue