fixed disable account when sliding and not clicking the toggle

iNPUTmice created

Change summary

src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java  |  4 
src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java | 13 
2 files changed, 9 insertions(+), 8 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java 🔗

@@ -168,8 +168,8 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
 		}
 	}
 
-	public void onClickTglAccountState(Account account) {
-		if (account.isOptionSet(Account.OPTION_DISABLED)) {
+	public void onClickTglAccountState(Account account, boolean enable) {
+		if (enable) {
 			enableAccount(account);
 		} else {
 			disableAccount(account);

src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java 🔗

@@ -11,6 +11,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
+import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Switch;
@@ -51,14 +52,14 @@ public class AccountAdapter extends ArrayAdapter<Account> {
 				break;
 		}
 		final Switch tglAccountState = (Switch) view.findViewById(R.id.tgl_account_status);
-		boolean isDisabled = (account.getStatus() == Account.State.DISABLED) ? true : false;
+		final boolean isDisabled = (account.getStatus() == Account.State.DISABLED) ? true : false;
+		tglAccountState.setOnCheckedChangeListener(null);
 		tglAccountState.setChecked(!isDisabled);
-		tglAccountState.setOnClickListener(new View.OnClickListener() {
+		tglAccountState.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 			@Override
-			public void onClick(View v) {
-				if (activity instanceof ManageAccountActivity) {
-					((ManageAccountActivity) activity).onClickTglAccountState(account);
-					tglAccountState.toggle();
+			public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+				if (b == isDisabled && activity instanceof ManageAccountActivity) {
+					((ManageAccountActivity) activity).onClickTglAccountState(account,b);
 				}
 			}
 		});