From 478e85ce9cc29c39450aee159ef93fac4a9d663e Mon Sep 17 00:00:00 2001 From: Przemek Grondek <github@nerull7.info> Date: Mon, 28 Jul 2014 14:39:40 +0200 Subject: [PATCH] Disable login button after clicking it preventing from spawn multiple AsyncTask and multiple errors/activities. Button is re-enable after finished AsyncTask. --- .../java/info/nerull7/mysqlbrowser/LoginFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java index 157aa6c..f4f671e 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/LoginFragment.java @@ -12,6 +12,7 @@ import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; @@ -25,6 +26,7 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy private EditText loginTextbox; private EditText passwordTextbox; // TODO: Mega super epic security (RSA/AES maybe?) private ProgressBar progressBar; + private Button loginButton; AsyncDatabaseConnector asyncDatabaseConnector; @@ -34,12 +36,14 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.fragment_login, container, false); - rootView.findViewById(R.id.buttonLogin).setOnClickListener(this); + loginButton = (Button) rootView.findViewById(R.id.buttonLogin); urlTextbox = (EditText) rootView.findViewById(R.id.editURL); loginTextbox = (EditText) rootView.findViewById(R.id.editLogin); passwordTextbox = (EditText) rootView.findViewById(R.id.editPassowrd); progressBar = (ProgressBar) rootView.findViewById(R.id.loginProgressBar); + + loginButton.setOnClickListener(this); processCredentials(); return rootView; @@ -58,6 +62,7 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy @Override public void onClick(View view) { progressBar.setVisibility(View.VISIBLE); + loginButton.setEnabled(false); // Blocks multiple clicks checkLogin(); } @@ -93,6 +98,7 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy builder.create(); builder.show(); } + loginButton.setEnabled(true); // Now we can click button again progressBar.setVisibility(View.INVISIBLE); } }