diff --git a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java index 389c79cc672cb741adeb11fdea06d17da2e32bce..8e07e8655f9fd2e0c63225d836fae9eab5489e44 100644 --- a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java +++ b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java @@ -52,7 +52,7 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection private ArrayList<Thread> threads; private RecyclerView recyclerView; - private ServerListAdapter adapter; + private ServerListAdapter adapter = null; @Override protected void onCreate(Bundle savedInstanceState) { @@ -85,38 +85,14 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection @Override protected void onPause() { - if (mNsdManager != null && discovering) { - mNsdManager.stopServiceDiscovery(mDiscoveryListener); - discovering = false; - - - for (ServerModel server : servers) { - if(ServerHolder.getSocket() != server.getSocket() || exit) - SendConnectionLost(server); - if(exit) - ServerHolder.setServerModel(null); - } - - - for (Thread thread : threads) { - thread.interrupt(); - } - - - - } super.onPause(); } @Override protected void onResume() { - super.onResume(); initRecyclerView(); - if (mNsdManager != null && !discovering) { - mNsdManager.discoverServices( - SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); - discovering = true; - } + super.onResume(); + } @@ -126,6 +102,17 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection mNsdManager.stopServiceDiscovery(mDiscoveryListener); discovering = false; + for (ServerModel server : servers) { + if(exit || ServerHolder.getSocket() != server.getSocket()) + SendConnectionLost(server); + if(exit) + ServerHolder.setServerModel(null); + } + + + for (Thread thread : threads) { + thread.interrupt(); + } } super.onDestroy(); @@ -403,7 +390,8 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection private void initRecyclerView() { recyclerView = (RecyclerView) findViewById(R.id.MainRecyclerView); - adapter = new ServerListAdapter(this); + if(adapter == null) + adapter = new ServerListAdapter(this); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); recyclerView.setAdapter(adapter); diff --git a/KvizClient/app/src/main/java/onlab/kvizclient/ServerHolder.java b/KvizClient/app/src/main/java/onlab/kvizclient/ServerHolder.java index bec71da1043365720edaf8957c7db4c25c070132..6fadbc89ddc0dc67da30d3b542b5b991b39d190b 100644 --- a/KvizClient/app/src/main/java/onlab/kvizclient/ServerHolder.java +++ b/KvizClient/app/src/main/java/onlab/kvizclient/ServerHolder.java @@ -5,7 +5,7 @@ import java.net.Socket; import onlab.kvizclient.model.ServerModel; public class ServerHolder { - private static ServerModel serverModel; + private static ServerModel serverModel = null; public static Socket getSocket() { return serverModel.getSocket(); diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java index 84899500881e6855fb3c70a056a702bd11b24759..a5c596b6ca03ef2318fbda2ff53b19f2057a83d6 100644 --- a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java +++ b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java @@ -115,16 +115,22 @@ public class LobbyActivity extends AppCompatActivity { @Override protected void onPause() { - try { - serverSocket.close(); - } catch (IOException e) { - e.printStackTrace(); - } + super.onPause(); + } + + @Override + protected void onResume() { + super.onResume(); + initRecyclerView(); + + } + + @Override + protected void onDestroy() { if (mNsdManager != null && registred) { mNsdManager.unregisterService(mRegistrationListener); registred = false; - for (ClientModel client : allclients) { boolean req = true; for(ClientModel c : clients) @@ -139,28 +145,6 @@ public class LobbyActivity extends AppCompatActivity { for (Thread thread : threads) { thread.interrupt(); } - - - } - super.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - initRecyclerView(); - if (mNsdManager != null && !registred) { - registerService(9000); - registred = true; - } - - } - - @Override - protected void onDestroy() { - if (mNsdManager != null && registred) { - mNsdManager.unregisterService(mRegistrationListener); - registred = false; } try { serverSocket.close();