From 245e32581b46acf11a2470441a296e9d520b6f71 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 17 May 2018 21:46:33 +0200 Subject: add possibility to de-/activate accounts fixes #195 --- .../pixart/messenger/ui/ManageAccountActivity.java | 8 ++++++++ .../messenger/ui/adapter/AccountAdapter.java | 24 ++++++++++++++++++++++ src/main/res/layout/account_row.xml | 15 ++++++++++++-- 3 files changed, 45 insertions(+), 2 deletions(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/ui/ManageAccountActivity.java b/src/main/java/de/pixart/messenger/ui/ManageAccountActivity.java index a47a128ab..bca4d3dbc 100644 --- a/src/main/java/de/pixart/messenger/ui/ManageAccountActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ManageAccountActivity.java @@ -227,6 +227,14 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda } } + public void onClickTglAccountState(Account account, boolean enable) { + if (enable) { + enableAccount(account); + } else { + disableAccount(account); + } + } + private void addAccountFromKey() { try { KeyChain.choosePrivateKeyAlias(this, this, null, null, null, -1, null); diff --git a/src/main/java/de/pixart/messenger/ui/adapter/AccountAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/AccountAdapter.java index 4ed6a5492..37d15f782 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/AccountAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/AccountAdapter.java @@ -6,6 +6,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.AsyncTask; +import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -20,6 +21,7 @@ import java.util.concurrent.RejectedExecutionException; import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.entities.Account; +import de.pixart.messenger.ui.ManageAccountActivity; import de.pixart.messenger.ui.XmppActivity; import de.pixart.messenger.ui.util.Color; import de.pixart.messenger.utils.UIHelper; @@ -27,10 +29,18 @@ import de.pixart.messenger.utils.UIHelper; public class AccountAdapter extends ArrayAdapter { private XmppActivity activity; + private boolean showStateButton; + + public AccountAdapter(XmppActivity activity, List objects, boolean showStateButton) { + super(activity, 0, objects); + this.activity = activity; + this.showStateButton = showStateButton; + } public AccountAdapter(XmppActivity activity, List objects) { super(activity, 0, objects); this.activity = activity; + this.showStateButton = true; } @Override @@ -63,6 +73,20 @@ public class AccountAdapter extends ArrayAdapter { statusView.setTextColor(Color.get(activity, R.attr.TextColorError)); break; } + final SwitchCompat tglAccountState = view.findViewById(R.id.tgl_account_status); + final boolean isDisabled = (account.getStatus() == Account.State.DISABLED); + tglAccountState.setOnCheckedChangeListener(null); + tglAccountState.setChecked(!isDisabled); + if (this.showStateButton) { + tglAccountState.setVisibility(View.VISIBLE); + } else { + tglAccountState.setVisibility(View.GONE); + } + tglAccountState.setOnCheckedChangeListener((compoundButton, b) -> { + if (b == isDisabled && activity instanceof ManageAccountActivity) { + ((ManageAccountActivity) activity).onClickTglAccountState(account, b); + } + }); return view; } diff --git a/src/main/res/layout/account_row.xml b/src/main/res/layout/account_row.xml index 9af3b9653..6a9dee422 100644 --- a/src/main/res/layout/account_row.xml +++ b/src/main/res/layout/account_row.xml @@ -4,8 +4,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/activatedBackgroundIndicator" - android:paddingLeft="8dp" android:paddingBottom="8dp" + android:paddingLeft="8dp" android:paddingTop="8dp"> @@ -22,7 +22,9 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" + android:layout_toLeftOf="@+id/tgl_account_status" android:layout_toRightOf="@+id/account_image" + android:layout_toStartOf="@+id/tgl_account_status" android:orientation="vertical" android:paddingLeft="@dimen/avatar_item_distance"> @@ -42,4 +44,13 @@ android:textAppearance="@style/TextAppearance.Conversations.Body2" /> + + \ No newline at end of file -- cgit v1.2.3