diff --git a/app/src/main/java/net/xcreen/restsms/HomeFragment.java b/app/src/main/java/net/xcreen/restsms/HomeFragment.java
index ce21249..bd3cb91 100644
--- a/app/src/main/java/net/xcreen/restsms/HomeFragment.java
+++ b/app/src/main/java/net/xcreen/restsms/HomeFragment.java
@@ -7,6 +7,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.Toast;
public class HomeFragment extends Fragment {
@@ -28,20 +29,52 @@ public class HomeFragment extends Fragment {
toggleServerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- appContext.smsServer.start();
+ //Check if Server is running
+ if(appContext.smsServer.isRunning() && !appContext.smsServer.isStopping()){
+ //Stop Server
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ appContext.smsServer.stop();
+ }
+ catch (Exception ex){
+ ex.printStackTrace();
+ }
}
- catch (Exception ex){
- ex.printStackTrace();
+ }).start();
+ //Switch Button-Text
+ toggleServerBtn.setText(getResources().getText(R.string.start_server));
+ }
+ else if(!appContext.smsServer.isStopping()){
+ //Start Server
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ appContext.smsServer.start();
+ }
+ catch (Exception ex){
+ ex.printStackTrace();
+ Toast.makeText(getContext(), getResources().getText(R.string.server_failed_to_start), Toast.LENGTH_SHORT).show();
+ }
}
- }
- }).start();
+ }).start();
+ //Switch Button-Text
+ toggleServerBtn.setText(getResources().getText(R.string.stop_server));
+ }
+ else{
+ //Server is stopping
+ Toast.makeText(getContext(), getResources().getText(R.string.server_is_stopping), Toast.LENGTH_SHORT).show();
+ }
}
});
+ //Check Server is running, to set correct Button-Text
+ if(appContext.smsServer.isRunning()){
+ toggleServerBtn.setText(getResources().getText(R.string.stop_server));
+ }
+
return rootView;
}
}
diff --git a/app/src/main/java/net/xcreen/restsms/SMSServer.java b/app/src/main/java/net/xcreen/restsms/SMSServer.java
index 14c1ab6..f3d09b6 100644
--- a/app/src/main/java/net/xcreen/restsms/SMSServer.java
+++ b/app/src/main/java/net/xcreen/restsms/SMSServer.java
@@ -24,9 +24,49 @@ public class SMSServer {
jettyServer.join();
}
+ /**
+ * Stopping Jetty-Server
+ * @throws Exception - Jetty Exception
+ */
public void stop() throws Exception{
- Log.i("SMS-Server", "Stopping Server...");
- jettyServer.stop();
+ if(jettyServer != null) {
+ Log.i("SMS-Server", "Stopping Server...");
+ jettyServer.stop();
+ }
+ }
+
+ /**
+ * Checks if the Jetty is running
+ * @return boolean - true when server is running/starting/stopping, false otherwise
+ */
+ public boolean isRunning(){
+ if(jettyServer != null){
+ if(jettyServer.isRunning()){
+ return true;
+ }
+ else if(jettyServer.isStopping()){
+ return true;
+ }
+ else{
+ return false;
+ }
+ }
+ else{
+ return false;
+ }
+ }
+
+ /**
+ * Checks if Jetty is stopping
+ * @return boolean - True when server is stopping
+ */
+ public boolean isStopping(){
+ if(jettyServer != null) {
+ return jettyServer.isStopping();
+ }
+ else{
+ return false;
+ }
}
/**
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 132d713..e43a8bc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -12,4 +12,6 @@
Start Server
Stop Server
+ Server is shutting down. Please wait.
+ Server failed to start!