diff options
author | iNPUTmice <daniel@gultsch.de> | 2015-04-01 23:24:35 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2015-04-01 23:24:35 +0200 |
commit | cb29c5bb15c31d4b2cde81ba91d89e11518578b4 (patch) | |
tree | c0375d3a358f8f3d5ddaf3f0b73e07d34da65e67 | |
parent | 1a376cacaca2ff3199624e791d1f4990196297fd (diff) | |
parent | e64049c4fc0f4514dee011a1f616ea4bdff1f16a (diff) |
Merge branch 'account_state_switch' of https://github.com/BrianBlade/Conversations into BrianBlade-account_state_switch
3 files changed, 45 insertions, 16 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java index b2d5ddfd7..c7db94af6 100644 --- a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -168,6 +168,14 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda } } + public void onClickTglAccountState(Account account) { + if (account.isOptionSet(Account.OPTION_DISABLED)) { + enableAccount(account); + } else { + disableAccount(account); + } + } + private void publishAvatar(Account account) { Intent intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java index 29730914f..5209aa124 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java @@ -5,6 +5,7 @@ import java.util.List; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.ui.XmppActivity; +import eu.siacs.conversations.ui.ManageAccountActivity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; @@ -12,6 +13,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Switch; public class AccountAdapter extends ArrayAdapter<Account> { @@ -24,7 +26,7 @@ public class AccountAdapter extends ArrayAdapter<Account> { @Override public View getView(int position, View view, ViewGroup parent) { - Account account = getItem(position); + final Account account = getItem(position); if (view == null) { LayoutInflater inflater = (LayoutInflater) getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); @@ -34,21 +36,32 @@ public class AccountAdapter extends ArrayAdapter<Account> { jid.setText(account.getJid().toBareJid().toString()); TextView statusView = (TextView) view.findViewById(R.id.account_status); ImageView imageView = (ImageView) view.findViewById(R.id.account_image); - imageView.setImageBitmap(activity.avatarService().get(account, - activity.getPixel(48))); - statusView.setText(getContext().getString(account.getStatus().getReadableId())); - switch (account.getStatus()) { - case ONLINE: - statusView.setTextColor(activity.getOnlineColor()); - break; - case DISABLED: - case CONNECTING: - statusView.setTextColor(activity.getSecondaryTextColor()); - break; - default: - statusView.setTextColor(activity.getWarningTextColor()); - break; - } + imageView.setImageBitmap(activity.avatarService().get(account, activity.getPixel(48))); + statusView.setText(getContext().getString(account.getStatus().getReadableId())); + switch (account.getStatus()) { + case ONLINE: + statusView.setTextColor(activity.getOnlineColor()); + break; + case DISABLED: + case CONNECTING: + statusView.setTextColor(activity.getSecondaryTextColor()); + break; + default: + statusView.setTextColor(activity.getWarningTextColor()); + break; + } + final Switch tglAccountState = (Switch) view.findViewById(R.id.tgl_account_status); + boolean isDisabled = (account.getStatus() == Account.State.DISABLED) ? true : false; + tglAccountState.setChecked(!isDisabled); + tglAccountState.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (activity instanceof ManageAccountActivity) { + ((ManageAccountActivity) activity).onClickTglAccountState(account); + tglAccountState.toggle(); + } + } + }); return view; } } diff --git a/src/main/res/layout/account_row.xml b/src/main/res/layout/account_row.xml index 60b69090f..1cd29d59c 100644 --- a/src/main/res/layout/account_row.xml +++ b/src/main/res/layout/account_row.xml @@ -41,4 +41,12 @@ android:textStyle="bold" /> </LinearLayout> + <Switch + android:id="@+id/tgl_account_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:focusable="false"/> + </RelativeLayout>
\ No newline at end of file |