diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2015-10-09 13:37:08 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2015-10-09 13:37:08 +0200 |
commit | b23cb5a9e43d804551dc18f399ffbec991479ee6 (patch) | |
tree | e54e041a2487ba4bb899a313e2090cdda47e5696 /src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java | |
parent | ef605e4cbd162d48e40d13d91b188b9838de308d (diff) |
initial UI work to allow setting up accounts from certifcates
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java index 5b9b7355..80e77506 100644 --- a/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -5,6 +5,9 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; +import android.security.KeyChain; +import android.security.KeyChainAliasCallback; +import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; @@ -14,6 +17,7 @@ import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; +import android.widget.Toast; import java.util.ArrayList; import java.util.List; @@ -21,10 +25,11 @@ import java.util.List; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.services.XmppConnectionService; import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate; import eu.siacs.conversations.ui.adapter.AccountAdapter; -public class ManageAccountActivity extends XmppActivity implements OnAccountUpdate { +public class ManageAccountActivity extends XmppActivity implements OnAccountUpdate, KeyChainAliasCallback, XmppConnectionService.OnAccountCreated { protected Account selectedAccount = null; @@ -61,7 +66,7 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda @Override public void onItemClick(AdapterView<?> arg0, View view, - int position, long arg3) { + int position, long arg3) { switchToAccount(accountList.get(position)); } }); @@ -144,6 +149,9 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda case R.id.action_enable_all: enableAllAccounts(); break; + case R.id.action_add_account_from_key: + addAccountFromKey(); + break; default: break; } @@ -179,6 +187,10 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda } } + private void addAccountFromKey() { + KeyChain.choosePrivateKeyAlias(this, this, null, null, null, -1, null); + } + private void publishAvatar(Account account) { Intent intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class); @@ -281,4 +293,26 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda } } } + + @Override + public void alias(String alias) { + if (alias != null) { + xmppConnectionService.createAccountFromKey(alias, this); + } + } + + @Override + public void onAccountCreated(Account account) { + switchToAccount(account, true); + } + + @Override + public void informUser(final int r) { + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(ManageAccountActivity.this,r,Toast.LENGTH_LONG).show(); + } + }); + } } |