mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-04 00:59:32 +02:00
handle disconnect
This commit is contained in:
parent
735573f1d5
commit
8ac895eeb3
2 changed files with 37 additions and 16 deletions
|
@ -126,6 +126,7 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
|||
|
||||
tabLayout = (TabLayout) findViewById(R.id.tabs);
|
||||
tabLayout.setupWithViewPager(mViewPager);
|
||||
mViewPager.setVisibility(View.GONE);
|
||||
|
||||
getSupportActionBar().setSubtitle("Host: no Snapserver found");
|
||||
|
||||
|
@ -352,12 +353,26 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
|||
|
||||
@Override
|
||||
public void onConnected(RemoteControl remoteControl) {
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mViewPager.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
remoteControl.getServerStatus();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnected(RemoteControl remoteControl) {
|
||||
Log.d(TAG, "onDisconnected");
|
||||
serverInfo = null;
|
||||
sectionsPagerAdapter.updateServer(serverInfo);
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mViewPager.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -473,17 +488,23 @@ public class MainActivity extends AppCompatActivity implements ClientListFragmen
|
|||
@Override
|
||||
public void run() {
|
||||
SectionsPagerAdapter.this.serverInfo = serverInfo;
|
||||
boolean changed = (serverInfo.getStreams().size() != fragments.size());
|
||||
|
||||
while (serverInfo.getStreams().size() < fragments.size())
|
||||
fragments.removeElement(fragments.lastElement());
|
||||
boolean changed = ((serverInfo == null) || (serverInfo.getStreams().size() != fragments.size()));
|
||||
|
||||
while (serverInfo.getStreams().size() > fragments.size())
|
||||
fragments.add(ClientListFragment.newInstance("TODO1"));
|
||||
if (serverInfo != null) {
|
||||
|
||||
for (int i = 0; i < serverInfo.getStreams().size(); ++i) {
|
||||
fragments.get(i).setStream(serverInfo.getStreams().get(i));
|
||||
fragments.get(i).updateServer(serverInfo);
|
||||
while (serverInfo.getStreams().size() < fragments.size())
|
||||
fragments.removeElement(fragments.lastElement());
|
||||
|
||||
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) {
|
||||
|
|
|
@ -107,14 +107,16 @@ public class TcpClient {
|
|||
|
||||
mServerMessage = mBufferIn.readLine();
|
||||
|
||||
if (mServerMessage != null && mMessageListener != null) {
|
||||
// call the method messageReceived from MyActivity class
|
||||
mMessageListener.onMessageReceived(TcpClient.this, mServerMessage);
|
||||
if (mServerMessage != null) {
|
||||
Log.d(TAG, "Received Message: '" + mServerMessage + "'");
|
||||
if (mMessageListener != null) {
|
||||
mMessageListener.onMessageReceived(TcpClient.this, mServerMessage);
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Log.d(TAG, "Received Message: '" + mServerMessage + "'");
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.d(TAG, "Error", e);
|
||||
|
@ -124,17 +126,15 @@ public class TcpClient {
|
|||
// this socket
|
||||
// after it is closed, which means a new socket instance has to
|
||||
// be created.
|
||||
mRun = false;
|
||||
socket.close();
|
||||
if (mMessageListener != null)
|
||||
mMessageListener.onDisconnected(TcpClient.this);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
Log.d(TAG, "Error", e);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
worker = new Thread(runnable);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue