aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-04-01 20:44:02 +0200
committerChristian Schneppe <christian@pix-art.de>2018-04-01 20:56:39 +0200
commit0aff702a72c54cd1dd6746e3080a4318fe17b72a (patch)
tree256600a5ae293d76ebb1ad59ba5b15cb523f2857 /src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
parentc2f72e3d8c91f92cc8cfe6480196a2f55d9e4364 (diff)
wip: new status message dialog
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/EditAccountActivity.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/EditAccountActivity.java27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
index a1a1956bc..a24dd3691 100644
--- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
@@ -10,6 +10,7 @@ import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.security.KeyChain;
import android.security.KeyChainAliasCallback;
@@ -19,6 +20,7 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.TextWatcher;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -50,12 +52,15 @@ import de.pixart.messenger.R;
import de.pixart.messenger.crypto.axolotl.AxolotlService;
import de.pixart.messenger.crypto.axolotl.XmppAxolotlSession;
import de.pixart.messenger.databinding.ActivityEditAccountBinding;
+import de.pixart.messenger.databinding.DialogPresenceBinding;
import de.pixart.messenger.entities.Account;
+import de.pixart.messenger.entities.PresenceTemplate;
import de.pixart.messenger.services.BarcodeProvider;
import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.services.XmppConnectionService.OnAccountUpdate;
import de.pixart.messenger.services.XmppConnectionService.OnCaptchaRequested;
import de.pixart.messenger.ui.adapter.KnownHostsAdapter;
+import de.pixart.messenger.ui.adapter.PresenceTemplateAdapter;
import de.pixart.messenger.utils.CryptoHelper;
import de.pixart.messenger.utils.UIHelper;
import de.pixart.messenger.utils.XmppUri;
@@ -637,7 +642,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
reconnect.setVisible(true);
announcePGP.setVisible(true);
mamPrefs.setVisible(mAccount.getXmppConnection().getFeatures().mam());
- changePresence.setVisible(manuallyChangePresence());
+ changePresence.setVisible(true);
} else {
announcePGP.setVisible(false);
reconnect.setVisible(false);
@@ -878,9 +883,23 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
}
private void changePresence() {
- Intent intent = new Intent(this, SetPresenceActivity.class);
- intent.putExtra(SetPresenceActivity.EXTRA_ACCOUNT, mAccount.getJid().toBareJid().toString());
- startActivity(intent);
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
+ boolean manualStatus = sharedPreferences.getBoolean(SettingsActivity.MANUALLY_CHANGE_PRESENCE, getResources().getBoolean(R.bool.manually_change_presence));
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ final DialogPresenceBinding binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.dialog_presence, null, false);
+ binding.show.setVisibility(manualStatus ? View.VISIBLE : View.GONE);
+ List<PresenceTemplate> templates = xmppConnectionService.getPresenceTemplates(mAccount);
+ PresenceTemplateAdapter presenceTemplateAdapter = new PresenceTemplateAdapter(this, R.layout.simple_list_item, templates);
+ binding.statusMessage.setAdapter(presenceTemplateAdapter);
+ binding.statusMessage.setOnItemClickListener((parent, view, position, id) -> {
+ PresenceTemplate template = (PresenceTemplate) parent.getItemAtPosition(position);
+ Log.d(Config.LOGTAG, "selected: " + template.getStatusMessage());
+ });
+ builder.setTitle(R.string.change_presence);
+ builder.setView(binding.getRoot());
+ builder.setNegativeButton(R.string.cancel, null);
+ builder.setPositiveButton(R.string.confirm, null);
+ builder.create().show();
}
@Override