aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/AndroidManifest.xml2
-rw-r--r--src/main/java/de/pixart/messenger/generator/IqGenerator.java15
-rw-r--r--src/main/java/de/pixart/messenger/parser/PresenceParser.java2
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java33
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java24
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java2
-rw-r--r--src/main/java/de/pixart/messenger/ui/CreatePrivateGroupChatDialog.java (renamed from src/main/java/de/pixart/messenger/ui/CreateConferenceDialog.java)8
-rw-r--r--src/main/java/de/pixart/messenger/ui/CreatePublicChannelDialog.java296
-rw-r--r--src/main/java/de/pixart/messenger/ui/JoinConferenceDialog.java4
-rw-r--r--src/main/java/de/pixart/messenger/ui/StartConversationActivity.java168
-rw-r--r--src/main/java/de/pixart/messenger/utils/CryptoHelper.java3
-rw-r--r--src/main/res/drawable-hdpi/ic_add_white_24dp.pngbin0 -> 120 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_public_white_24dp.pngbin0 -> 774 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_add_white_24dp.pngbin0 -> 141 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_public_white_24dp.pngbin0 -> 607 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_add_white_24dp.pngbin0 -> 180 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_public_white_24dp.pngbin0 -> 1231 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_add_white_24dp.pngbin0 -> 191 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_public_white_24dp.pngbin0 -> 1608 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_add_white_24dp.pngbin0 -> 309 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_public_white_24dp.pngbin0 -> 3975 bytes
-rw-r--r--src/main/res/layout/activity_start_conversation.xml6
-rw-r--r--src/main/res/layout/create_conference_dialog.xml2
-rw-r--r--src/main/res/layout/create_public_channel_dialog.xml56
-rw-r--r--src/main/res/layout/dialog_join_conference.xml4
-rw-r--r--src/main/res/layout/enter_jid_dialog.xml2
-rw-r--r--src/main/res/menu/conference_context.xml3
-rw-r--r--src/main/res/menu/start_conversation_fab_submenu.xml19
-rw-r--r--src/main/res/menu/start_conversation_group_fab.xml11
-rw-r--r--src/main/res/values-ar/strings.xml8
-rw-r--r--src/main/res/values-bg/strings.xml2
-rw-r--r--src/main/res/values-ca/strings.xml6
-rw-r--r--src/main/res/values-ceb/strings.xml8
-rw-r--r--src/main/res/values-cs/strings.xml2
-rw-r--r--src/main/res/values-de/strings.xml8
-rw-r--r--src/main/res/values-es/strings.xml8
-rw-r--r--src/main/res/values-eu/strings.xml6
-rw-r--r--src/main/res/values-fil/strings.xml8
-rw-r--r--src/main/res/values-fr/strings.xml8
-rw-r--r--src/main/res/values-gl/strings.xml6
-rw-r--r--src/main/res/values-id/strings.xml8
-rw-r--r--src/main/res/values-it/strings.xml8
-rw-r--r--src/main/res/values-nl/strings.xml6
-rw-r--r--src/main/res/values-pl/strings.xml8
-rw-r--r--src/main/res/values-ro/strings.xml8
-rw-r--r--src/main/res/values-ru/strings.xml6
-rw-r--r--src/main/res/values-sv/strings.xml2
-rw-r--r--src/main/res/values-tl/strings.xml2
-rw-r--r--src/main/res/values-tr/strings.xml8
-rw-r--r--src/main/res/values/strings.xml36
50 files changed, 612 insertions, 210 deletions
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index d5dcd8dd6..d458673da 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -208,7 +208,7 @@
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ui.ConferenceDetailsActivity"
- android:label="@string/title_activity_conference_details"
+ android:label="@string/conference_details"
android:windowSoftInputMode="stateHidden" />
<activity
android:name=".ui.ContactDetailsActivity"
diff --git a/src/main/java/de/pixart/messenger/generator/IqGenerator.java b/src/main/java/de/pixart/messenger/generator/IqGenerator.java
index b2f43cbcf..d7ac6f994 100644
--- a/src/main/java/de/pixart/messenger/generator/IqGenerator.java
+++ b/src/main/java/de/pixart/messenger/generator/IqGenerator.java
@@ -466,7 +466,7 @@ public class IqGenerator extends AbstractGenerator {
return packet;
}
- public static Bundle defaultRoomConfiguration() {
+ public static Bundle defaultGroupChatConfiguration() {
Bundle options = new Bundle();
options.putString("muc#roomconfig_persistentroom", "1");
options.putString("muc#roomconfig_membersonly", "1");
@@ -478,6 +478,19 @@ public class IqGenerator extends AbstractGenerator {
return options;
}
+ public static Bundle defaultChannelConfiguration() {
+ Bundle options = new Bundle();
+ options.putString("muc#roomconfig_persistentroom", "1");
+ options.putString("muc#roomconfig_membersonly", "0");
+ options.putString("muc#roomconfig_publicroom", "1");
+ options.putString("muc#roomconfig_whois", "moderators");
+ options.putString("muc#roomconfig_enablearchiving", "1"); //prosody
+ options.putString("mam", "1"); //ejabberd community
+ options.putString("muc#roomconfig_mam", "1"); //ejabberd saas
+ return options;
+ }
+
+
public IqPacket requestPubsubConfiguration(Jid jid, String node) {
return pubsubConfiguration(jid, node, null);
}
diff --git a/src/main/java/de/pixart/messenger/parser/PresenceParser.java b/src/main/java/de/pixart/messenger/parser/PresenceParser.java
index 0e0b67382..8728a8a9a 100644
--- a/src/main/java/de/pixart/messenger/parser/PresenceParser.java
+++ b/src/main/java/de/pixart/messenger/parser/PresenceParser.java
@@ -95,7 +95,7 @@ public class PresenceParser extends AbstractParser implements
+ mucOptions.getConversation().getJid().asBareJid()
+ "' created. pushing default configuration");
mXmppConnectionService.pushConferenceConfiguration(mucOptions.getConversation(),
- IqGenerator.defaultRoomConfiguration(),
+ IqGenerator.defaultGroupChatConfiguration(),
null);
}
if (mXmppConnectionService.getPgpEngine() != null) {
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index e231b2f6c..41b83a76d 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -96,7 +96,6 @@ import de.pixart.messenger.entities.Bookmark;
import de.pixart.messenger.entities.Contact;
import de.pixart.messenger.entities.Conversation;
import de.pixart.messenger.entities.Conversational;
-import de.pixart.messenger.entities.DownloadableFile;
import de.pixart.messenger.entities.Message;
import de.pixart.messenger.entities.MucOptions;
import de.pixart.messenger.entities.MucOptions.OnRenameListener;
@@ -104,8 +103,6 @@ import de.pixart.messenger.entities.Presence;
import de.pixart.messenger.entities.PresenceTemplate;
import de.pixart.messenger.entities.Roster;
import de.pixart.messenger.entities.ServiceDiscoveryResult;
-import de.pixart.messenger.entities.Transferable;
-import de.pixart.messenger.entities.TransferablePlaceholder;
import de.pixart.messenger.generator.AbstractGenerator;
import de.pixart.messenger.generator.IqGenerator;
import de.pixart.messenger.generator.MessageGenerator;
@@ -2673,6 +2670,9 @@ public class XmppConnectionService extends Service {
if (mucOptions.nonanonymous() && !mucOptions.membersOnly() && !conversation.getBooleanAttribute("accept_non_anonymous", false)) {
mucOptions.setError(MucOptions.Error.NON_ANONYMOUS);
updateConversationUi();
+ if (onConferenceJoined != null) {
+ onConferenceJoined.onConferenceJoined(conversation);
+ }
return;
}
final Jid joinJid = mucOptions.getSelf().getFullJid();
@@ -2956,6 +2956,31 @@ public class XmppConnectionService extends Service {
return null;
}
+ public void createPublicChannel(final Account account, final String name, final Jid address, final UiCallback<Conversation> callback) {
+ joinMuc(findOrCreateConversation(account, address, true, false, true), conversation -> {
+ final Bundle configuration = IqGenerator.defaultChannelConfiguration();
+ if (!TextUtils.isEmpty(name)) {
+ configuration.putString("muc#roomconfig_roomname", name);
+ }
+ pushConferenceConfiguration(conversation, configuration, new OnConfigurationPushed() {
+ @Override
+ public void onPushSucceeded() {
+ saveConversationAsBookmark(conversation, name);
+ callback.success(conversation);
+ }
+
+ @Override
+ public void onPushFailed() {
+ if (conversation.getMucOptions().getSelf().getAffiliation().ranks(MucOptions.Affiliation.OWNER)) {
+ callback.error(R.string.unable_to_set_channel_configuration, conversation);
+ } else {
+ callback.error(R.string.joined_an_existing_channel, conversation);
+ }
+ }
+ });
+ });
+ }
+
public boolean createAdhocConference(final Account account,
final String name,
final Iterable<Jid> jids,
@@ -2975,7 +3000,7 @@ public class XmppConnectionService extends Service {
joinMuc(conversation, new OnConferenceJoined() {
@Override
public void onConferenceJoined(final Conversation conversation) {
- final Bundle configuration = IqGenerator.defaultRoomConfiguration();
+ final Bundle configuration = IqGenerator.defaultGroupChatConfiguration();
if (!TextUtils.isEmpty(name)) {
configuration.putString("muc#roomconfig_roomname", name);
}
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
index 02de197da..76c026308 100644
--- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
@@ -3,14 +3,8 @@ package de.pixart.messenger.ui;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentSender.SendIntentException;
-import android.content.res.Resources;
import android.databinding.DataBindingUtil;
-import android.graphics.Bitmap;
import android.graphics.PorterDuff;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
@@ -18,38 +12,24 @@ import android.text.Editable;
import android.text.SpannableStringBuilder;
import android.text.TextWatcher;
import android.util.Log;
-import android.view.ContextMenu;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.WindowManager;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
import android.widget.Toast;
-import org.openintents.openpgp.util.OpenPgpUtils;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
-import de.pixart.messenger.crypto.PgpEngine;
import de.pixart.messenger.databinding.ActivityMucDetailsBinding;
-import de.pixart.messenger.databinding.ContactBinding;
import de.pixart.messenger.entities.Account;
import de.pixart.messenger.entities.Bookmark;
-import de.pixart.messenger.entities.Contact;
import de.pixart.messenger.entities.Conversation;
import de.pixart.messenger.entities.MucOptions;
import de.pixart.messenger.entities.MucOptions.User;
-import de.pixart.messenger.services.EmojiService;
import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.services.XmppConnectionService.OnConversationUpdate;
import de.pixart.messenger.services.XmppConnectionService.OnMucRosterUpdate;
@@ -68,13 +48,11 @@ import de.pixart.messenger.utils.MenuDoubleTabUtil;
import de.pixart.messenger.utils.StringUtils;
import de.pixart.messenger.utils.StylingHelper;
import de.pixart.messenger.utils.TimeframeUtils;
-import de.pixart.messenger.utils.UIHelper;
import de.pixart.messenger.utils.XmppUri;
import me.drakeet.support.toast.ToastCompat;
import rocks.xmpp.addr.Jid;
import static de.pixart.messenger.entities.Bookmark.printableValue;
-import static de.pixart.messenger.ui.SettingsActivity.USE_BUNDLED_EMOJIS;
import static de.pixart.messenger.utils.StringUtils.changed;
public class ConferenceDetailsActivity extends XmppActivity implements OnConversationUpdate, OnMucRosterUpdate, XmppConnectionService.OnAffiliationChanged, XmppConnectionService.OnConfigurationPushed, TextWatcher, OnMediaLoaded {
@@ -520,7 +498,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
} else {
account = mConversation.getAccount().getJid().asBareJid().toString();
}
-
+ setTitle(mucOptions.isPrivateAndNonAnonymous() ? R.string.conference_details : R.string.channel_details);
this.binding.editMucNameButton.setVisibility((self.getAffiliation().ranks(MucOptions.Affiliation.OWNER) || mucOptions.canChangeSubject()) ? View.VISIBLE : View.GONE);
this.binding.detailsAccount.setText(getString(R.string.using_account, account));
this.binding.jid.setText(mConversation.getJid().asBareJid().toEscapedString());
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 56c989c8a..279dcb659 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -1131,7 +1131,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (conversation != null) {
if (conversation.getMode() == Conversation.MODE_MULTI) {
- menuInviteContact.setVisible(true);
+ menuInviteContact.setVisible(conversation.getMucOptions().canInvite());
menuArchiveChat.setTitle(R.string.action_end_conversation_muc);
} else {
menuInviteContact.setVisible(false);
diff --git a/src/main/java/de/pixart/messenger/ui/CreateConferenceDialog.java b/src/main/java/de/pixart/messenger/ui/CreatePrivateGroupChatDialog.java
index 059a6b94c..c77211e9d 100644
--- a/src/main/java/de/pixart/messenger/ui/CreateConferenceDialog.java
+++ b/src/main/java/de/pixart/messenger/ui/CreatePrivateGroupChatDialog.java
@@ -19,15 +19,15 @@ import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.ui.util.DelayedHintHelper;
-public class CreateConferenceDialog extends DialogFragment {
+public class CreatePrivateGroupChatDialog extends DialogFragment {
private static final String ACCOUNTS_LIST_KEY = "activated_accounts_list";
private static final String MULTIPLE_ACCOUNTS = "multiple_accounts_enabled";
public XmppConnectionService xmppConnectionService;
private CreateConferenceDialogListener mListener;
- public static CreateConferenceDialog newInstance(List<String> accounts, boolean multipleAccounts) {
- CreateConferenceDialog dialog = new CreateConferenceDialog();
+ public static CreatePrivateGroupChatDialog newInstance(List<String> accounts, boolean multipleAccounts) {
+ CreatePrivateGroupChatDialog dialog = new CreatePrivateGroupChatDialog();
Bundle bundle = new Bundle();
bundle.putStringArrayList(ACCOUNTS_LIST_KEY, (ArrayList<String>) accounts);
bundle.putBoolean(MULTIPLE_ACCOUNTS, multipleAccounts);
@@ -45,7 +45,7 @@ public class CreateConferenceDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(R.string.create_conference);
+ builder.setTitle(R.string.create_private_group_chat);
CreateConferenceDialogBinding binding = DataBindingUtil.inflate(getActivity().getLayoutInflater(), R.layout.create_conference_dialog, null, false);
if (getArguments().getBoolean(MULTIPLE_ACCOUNTS)) {
binding.yourAccount.setVisibility(View.VISIBLE);
diff --git a/src/main/java/de/pixart/messenger/ui/CreatePublicChannelDialog.java b/src/main/java/de/pixart/messenger/ui/CreatePublicChannelDialog.java
new file mode 100644
index 000000000..fe3244483
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/ui/CreatePublicChannelDialog.java
@@ -0,0 +1,296 @@
+package de.pixart.messenger.ui;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.databinding.DataBindingUtil;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v4.app.DialogFragment;
+import android.support.v7.app.AlertDialog;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.Button;
+import android.widget.Spinner;
+
+import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import de.pixart.messenger.R;
+import de.pixart.messenger.databinding.CreatePublicChannelDialogBinding;
+import de.pixart.messenger.entities.Account;
+import de.pixart.messenger.services.XmppConnectionService;
+import de.pixart.messenger.ui.adapter.KnownHostsAdapter;
+import de.pixart.messenger.ui.interfaces.OnBackendConnected;
+import de.pixart.messenger.ui.util.DelayedHintHelper;
+import de.pixart.messenger.utils.CryptoHelper;
+import de.pixart.messenger.xmpp.XmppConnection;
+import rocks.xmpp.addr.Jid;
+
+public class CreatePublicChannelDialog extends DialogFragment implements OnBackendConnected {
+
+ private static final char[] FORBIDDEN = new char[]{'\u0022', '&', '\'', '/', ':', '<', '>', '@'};
+
+ private static final String ACCOUNTS_LIST_KEY = "activated_accounts_list";
+ private CreatePublicChannelDialogListener mListener;
+ private KnownHostsAdapter knownHostsAdapter;
+ private boolean jidWasModified = false;
+ private boolean nameEntered = false;
+ private boolean skipTetxWatcher = false;
+ private static final SecureRandom RANDOM = new SecureRandom();
+
+ public static CreatePublicChannelDialog newInstance(List<String> accounts) {
+ CreatePublicChannelDialog dialog = new CreatePublicChannelDialog();
+ Bundle bundle = new Bundle();
+ bundle.putStringArrayList(ACCOUNTS_LIST_KEY, (ArrayList<String>) accounts);
+ dialog.setArguments(bundle);
+ return dialog;
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ setRetainInstance(true);
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ jidWasModified = savedInstanceState != null && savedInstanceState.getBoolean("jid_was_modified_false", false);
+ nameEntered = savedInstanceState != null && savedInstanceState.getBoolean("name_entered", false);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setTitle(R.string.create_public_channel);
+ final CreatePublicChannelDialogBinding binding = DataBindingUtil.inflate(getActivity().getLayoutInflater(), R.layout.create_public_channel_dialog, null, false);
+ binding.account.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+ updateJidSuggestion(binding);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+
+ }
+ });
+ binding.jid.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (skipTetxWatcher) {
+ return;
+ }
+ if (jidWasModified) {
+ jidWasModified = !TextUtils.isEmpty(s);
+ } else {
+ jidWasModified = !s.toString().equals(getJidSuggestion(binding));
+ }
+ }
+ });
+ updateInputs(binding, false);
+ ArrayList<String> mActivatedAccounts = getArguments().getStringArrayList(ACCOUNTS_LIST_KEY);
+ StartConversationActivity.populateAccountSpinner(getActivity(), mActivatedAccounts, binding.account);
+ builder.setView(binding.getRoot());
+ builder.setPositiveButton(nameEntered ? R.string.create : R.string.next, null);
+ builder.setNegativeButton(nameEntered ? R.string.back : R.string.cancel, null);
+ DelayedHintHelper.setHint(R.string.channel_bare_jid_example, binding.jid);
+ this.knownHostsAdapter = new KnownHostsAdapter(getActivity(), R.layout.simple_list_item);
+ binding.jid.setAdapter(knownHostsAdapter);
+ final AlertDialog dialog = builder.create();
+ binding.groupChatName.setOnEditorActionListener((v, actionId, event) -> {
+ submit(dialog, binding);
+ return true;
+ });
+ dialog.setOnShowListener(dialogInterface -> {
+ dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setOnClickListener(v -> goBack(dialog, binding));
+ dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(v -> submit(dialog, binding));
+ });
+ return dialog;
+ }
+
+ private void updateJidSuggestion(CreatePublicChannelDialogBinding binding) {
+ if (jidWasModified) {
+ return;
+ }
+ String jid = getJidSuggestion(binding);
+ skipTetxWatcher = true;
+ binding.jid.setText(jid);
+ skipTetxWatcher = false;
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ outState.putBoolean("jid_was_modified", jidWasModified);
+ outState.putBoolean("name_entered", nameEntered);
+ super.onSaveInstanceState(outState);
+ }
+
+ private static String getJidSuggestion(CreatePublicChannelDialogBinding binding) {
+ final Account account = StartConversationActivity.getSelectedAccount(binding.getRoot().getContext(), binding.account);
+ final XmppConnection connection = account == null ? null : account.getXmppConnection();
+ if (connection == null) {
+ return "";
+ }
+ final Editable nameText = binding.groupChatName.getText();
+ final String name = nameText == null ? "" : nameText.toString().trim();
+ final String domain = connection.getMucServer();
+ if (domain == null) {
+ return "";
+ }
+ final String localpart = clean(name);
+ if (TextUtils.isEmpty(localpart)) {
+ return "";
+ } else {
+ try {
+ return Jid.of(localpart, domain, null).toEscapedString();
+ } catch (IllegalArgumentException e) {
+ return Jid.of(CryptoHelper.pronounceable(RANDOM), domain, null).toEscapedString();
+ }
+ }
+ }
+
+ private static String clean(String name) {
+ for (char c : FORBIDDEN) {
+ name = name.replace(String.valueOf(c), "");
+ }
+ return name.replaceAll("\\s+", "-");
+ }
+
+ private void goBack(AlertDialog dialog, CreatePublicChannelDialogBinding binding) {
+ if (nameEntered) {
+ nameEntered = false;
+ updateInputs(binding, true);
+ updateButtons(dialog);
+ } else {
+ dialog.dismiss();
+ }
+ }
+
+ private void submit(AlertDialog dialog, CreatePublicChannelDialogBinding binding) {
+ final Context context = binding.getRoot().getContext();
+ final Editable nameText = binding.groupChatName.getText();
+ final String name = nameText == null ? "" : nameText.toString().trim();
+ final Editable addressText = binding.jid.getText();
+ final String address = addressText == null ? "" : addressText.toString().trim();
+ if (nameEntered) {
+ binding.nameLayout.setError(null);
+ if (address.isEmpty()) {
+ binding.xmppAddressLayout.setError(context.getText(R.string.please_enter_xmpp_address));
+ } else {
+ final Jid jid;
+ try {
+ jid = Jid.ofEscaped(address);
+ } catch (IllegalArgumentException e) {
+ binding.xmppAddressLayout.setError(context.getText(R.string.invalid_jid));
+ return;
+ }
+ final Account account = StartConversationActivity.getSelectedAccount(context, binding.account);
+ if (account == null) {
+ return;
+ }
+ final XmppConnectionService service = ((XmppActivity) context).xmppConnectionService;
+ if (service != null && service.findFirstMuc(jid) != null) {
+ binding.xmppAddressLayout.setError(context.getString(R.string.channel_already_exists));
+ return;
+ }
+ mListener.onCreatePublicChannel(account, name, jid);
+ dialog.dismiss();
+ }
+ } else {
+ binding.xmppAddressLayout.setError(null);
+ if (name.isEmpty()) {
+ binding.nameLayout.setError(context.getText(R.string.please_enter_name));
+ } else if (StartConversationActivity.isValidJid(name)) {
+ binding.nameLayout.setError(context.getText(R.string.this_is_an_xmpp_address));
+ } else {
+ binding.nameLayout.setError(null);
+ nameEntered = true;
+ updateInputs(binding, true);
+ updateButtons(dialog);
+ binding.jid.setText("");
+ binding.jid.append(getJidSuggestion(binding));
+ }
+ }
+ }
+
+
+ private void updateInputs(CreatePublicChannelDialogBinding binding, boolean requestFocus) {
+ binding.xmppAddressLayout.setVisibility(nameEntered ? View.VISIBLE : View.GONE);
+ binding.nameLayout.setVisibility(nameEntered ? View.GONE : View.VISIBLE);
+ if (!requestFocus) {
+ return;
+ }
+ if (nameEntered) {
+ binding.xmppAddressLayout.requestFocus();
+ } else {
+ binding.nameLayout.requestFocus();
+ }
+ }
+
+ private void updateButtons(AlertDialog dialog) {
+ final Button positive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+ final Button negative = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+ positive.setText(nameEntered ? R.string.create : R.string.next);
+ negative.setText(nameEntered ? R.string.back : R.string.cancel);
+ }
+
+ @Override
+ public void onBackendConnected() {
+ refreshKnownHosts();
+ }
+
+ private void refreshKnownHosts() {
+ Activity activity = getActivity();
+ if (activity instanceof XmppActivity) {
+ Collection<String> hosts = ((XmppActivity) activity).xmppConnectionService.getKnownConferenceHosts();
+ this.knownHostsAdapter.refresh(hosts);
+ }
+ }
+
+ public interface CreatePublicChannelDialogListener {
+ void onCreatePublicChannel(Account account, String name, Jid address);
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ try {
+ mListener = (CreatePublicChannelDialogListener) context;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(context.toString()
+ + " must implement CreateConferenceDialogListener");
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ final Activity activity = getActivity();
+ if (activity instanceof XmppActivity && ((XmppActivity) activity).xmppConnectionService != null) {
+ refreshKnownHosts();
+ }
+ }
+
+ @Override
+ public void onDestroyView() {
+ Dialog dialog = getDialog();
+ if (dialog != null && getRetainInstance()) {
+ dialog.setDismissMessage(null);
+ }
+ super.onDestroyView();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/de/pixart/messenger/ui/JoinConferenceDialog.java b/src/main/java/de/pixart/messenger/ui/JoinConferenceDialog.java
index 4d05d6d2c..67cc3a9d2 100644
--- a/src/main/java/de/pixart/messenger/ui/JoinConferenceDialog.java
+++ b/src/main/java/de/pixart/messenger/ui/JoinConferenceDialog.java
@@ -54,9 +54,9 @@ public class JoinConferenceDialog extends DialogFragment implements OnBackendCon
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(R.string.join_conference);
+ builder.setTitle(R.string.join_public_channel);
DialogJoinConferenceBinding binding = DataBindingUtil.inflate(getActivity().getLayoutInflater(), R.layout.dialog_join_conference, null, false);
- DelayedHintHelper.setHint(R.string.conference_address_example, binding.jid);
+ DelayedHintHelper.setHint(R.string.channel_full_jid_example, binding.jid);
this.knownHostsAdapter = new KnownHostsAdapter(getActivity(), R.layout.simple_list_item);
binding.jid.setAdapter(knownHostsAdapter);
String prefilledJid = getArguments().getString(PREFILLED_JID_KEY);
diff --git a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
index 13a7c9e80..97e1f9fd3 100644
--- a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
@@ -66,7 +66,6 @@ import de.pixart.messenger.entities.Contact;
import de.pixart.messenger.entities.Conversation;
import de.pixart.messenger.entities.ListItem;
import de.pixart.messenger.entities.Presence;
-import de.pixart.messenger.services.EmojiService;
import de.pixart.messenger.services.QuickConversationsService;
import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.services.XmppConnectionService.OnRosterUpdate;
@@ -81,9 +80,7 @@ import de.pixart.messenger.xmpp.OnUpdateBlocklist;
import de.pixart.messenger.xmpp.XmppConnection;
import rocks.xmpp.addr.Jid;
-import static de.pixart.messenger.ui.SettingsActivity.USE_BUNDLED_EMOJIS;
-
-public class StartConversationActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, CreateConferenceDialog.CreateConferenceDialogListener, JoinConferenceDialog.JoinConferenceDialogListener {
+public class StartConversationActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, CreatePrivateGroupChatDialog.CreateConferenceDialogListener, JoinConferenceDialog.JoinConferenceDialogListener, CreatePublicChannelDialog.CreatePublicChannelDialogListener {
public static final String EXTRA_INVITE_URI = "de.pixart.messenger.invite_uri";
@@ -208,12 +205,6 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
return true;
}
};
- private ViewPager.SimpleOnPageChangeListener mOnPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
- @Override
- public void onPageSelected(int position) {
- onTabChanged();
- }
- };
public static void populateAccountSpinner(Context context, List<String> accounts, Spinner spinner) {
if (accounts.size() > 0) {
@@ -271,33 +262,8 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
Toolbar toolbar = (Toolbar) binding.toolbar;
setSupportActionBar(toolbar);
configureActionBar(getSupportActionBar());
- this.binding.speedDial.setOnChangeListener(new SpeedDialView.OnChangeListener() {
- @Override
- public boolean onMainActionSelected() {
- if (binding.startConversationViewPager.getCurrentItem() == 0) {
- String searchString = mSearchEditText != null ? mSearchEditText.getText().toString() : null;
- if (searchString != null && !searchString.trim().isEmpty()) {
- try {
- Jid jid = Jid.of(searchString);
- if (jid.getLocal() != null && jid.isBareJid() && jid.getDomain().contains(".")) {
- showCreateContactDialog(jid.toString(), null);
- return false;
- }
- } catch (IllegalArgumentException ignored) {
- //ignore and fall through
- }
- }
- showCreateContactDialog(null, null);
- }
- return false;
- }
-
- @Override
- public void onToggleChanged(boolean isOpen) {
- }
- });
+ binding.speedDial.inflate(R.menu.start_conversation_fab_submenu);
binding.tabLayout.setupWithViewPager(binding.startConversationViewPager);
- binding.startConversationViewPager.addOnPageChangeListener(mOnPageChangeListener);
mListPagerAdapter = new ListPagerAdapter(getSupportFragmentManager());
binding.startConversationViewPager.setAdapter(mListPagerAdapter);
@@ -331,18 +297,40 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
}
mRequestedContactsPermission.set(savedInstanceState != null && savedInstanceState.getBoolean("requested_contacts_permission", false));
binding.speedDial.setOnActionSelectedListener(actionItem -> {
+ final String searchString = mSearchEditText != null ? mSearchEditText.getText().toString() : null;
+ final String prefilled;
+ if (isValidJid(searchString)) {
+ prefilled = Jid.ofEscaped(searchString).toEscapedString();
+ } else {
+ prefilled = null;
+ }
switch (actionItem.getId()) {
- case R.id.enter:
- showJoinConferenceDialog(null);
+ case R.id.join_public_channel:
+ showJoinConferenceDialog(prefilled);
break;
- case R.id.create:
- showCreateConferenceDialog();
+ case R.id.create_private_group_chat:
+ showCreatePrivateGroupChatDialog();
+ break;
+ case R.id.create_public_channel:
+ showPublicChannelDialog();
+ break;
+ case R.id.create_contact:
+ showCreateContactDialog(prefilled, null);
break;
}
return false;
});
}
+ public static boolean isValidJid(String input) {
+ try {
+ Jid jid = Jid.ofEscaped(input);
+ return !jid.isDomainJid();
+ } catch (IllegalArgumentException e) {
+ return false;
+ }
+ }
+
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
Intent pendingIntent = pendingViewIntent.peek();
@@ -390,10 +378,6 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
switchToConversation(conversation);
}
- protected void openConversationForBookmark() {
- openConversationForBookmark(conference_context_id);
- }
-
protected void openConversationForBookmark(int position) {
Bookmark bookmark = (Bookmark) conferences.get(position);
openConversationsForBookmark(bookmark);
@@ -499,7 +483,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
ft.addToBackStack(null);
EnterJidDialog dialog = EnterJidDialog.newInstance(
mActivatedAccounts,
- getString(R.string.create_contact),
+ getString(R.string.add_contact),
getString(R.string.create),
prefilledJid,
null,
@@ -551,32 +535,51 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
joinConferenceFragment.show(ft, FRAGMENT_TAG_DIALOG);
}
- private void showCreateConferenceDialog() {
+ private void showCreatePrivateGroupChatDialog() {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Fragment prev = getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG_DIALOG);
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
- CreateConferenceDialog createConferenceFragment = CreateConferenceDialog.newInstance(mActivatedAccounts, xmppConnectionService.multipleAccounts());
+ CreatePrivateGroupChatDialog createConferenceFragment = CreatePrivateGroupChatDialog.newInstance(mActivatedAccounts, xmppConnectionService.multipleAccounts());
createConferenceFragment.show(ft, FRAGMENT_TAG_DIALOG);
}
- private Account getSelectedAccount(Spinner spinner) {
- if (!spinner.isEnabled()) {
+ private void showPublicChannelDialog() {
+ FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+ Fragment prev = getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG_DIALOG);
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+ CreatePublicChannelDialog dialog = CreatePublicChannelDialog.newInstance(mActivatedAccounts);
+ dialog.show(ft, FRAGMENT_TAG_DIALOG);
+ }
+
+ public static Account getSelectedAccount(Context context, Spinner spinner) {
+ if (spinner == null || !spinner.isEnabled()) {
return null;
}
- Jid jid;
- try {
- if (Config.DOMAIN_LOCK != null) {
- jid = Jid.of((String) spinner.getSelectedItem(), Config.DOMAIN_LOCK, null);
- } else {
- jid = Jid.of((String) spinner.getSelectedItem());
+ if (context instanceof XmppActivity) {
+ Jid jid;
+ try {
+ if (Config.DOMAIN_LOCK != null) {
+ jid = Jid.of((String) spinner.getSelectedItem(), Config.DOMAIN_LOCK, null);
+ } else {
+ jid = Jid.of((String) spinner.getSelectedItem());
+ }
+ } catch (final IllegalArgumentException e) {
+ return null;
}
- } catch (final IllegalArgumentException e) {
+ final XmppConnectionService service = ((XmppActivity) context).xmppConnectionService;
+ if (service == null) {
+ return null;
+ }
+ return service.findAccountByJid(jid);
+ } else {
return null;
}
- return xmppConnectionService.findAccountByJid(jid);
}
protected void switchToConversation(Contact contact) {
@@ -919,19 +922,6 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
mConferenceAdapter.notifyDataSetChanged();
}
- private void onTabChanged() {
- @DrawableRes final int fabDrawable;
- if (binding.startConversationViewPager.getCurrentItem() == 0) {
- fabDrawable = R.drawable.ic_person_add_white_24dp;
- binding.speedDial.clearActionItems();
- } else {
- fabDrawable = R.drawable.ic_group_add_white_24dp;
- binding.speedDial.inflate(R.menu.start_conversation_group_fab);
- }
- binding.speedDial.setMainFabClosedDrawable(ContextCompat.getDrawable(this, fabDrawable));
- invalidateOptionsMenu();
- }
-
@Override
public void OnUpdateBlocklist(final Status status) {
refreshUi();
@@ -968,7 +958,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
if (!xmppConnectionServiceBound) {
return;
}
- final Account account = getSelectedAccount(spinner);
+ final Account account = getSelectedAccount(this, spinner);
if (account == null) {
return;
}
@@ -987,7 +977,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
if (!xmppConnectionServiceBound) {
return;
}
- final Account account = getSelectedAccount(spinner);
+ final Account account = getSelectedAccount(this, spinner);
if (account == null) {
return;
}
@@ -1030,6 +1020,35 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
refreshUi();
}
+ @Override
+ public void onCreatePublicChannel(Account account, String name, Jid address) {
+ mToast = Toast.makeText(this, R.string.creating_channel, Toast.LENGTH_LONG);
+ mToast.show();
+ xmppConnectionService.createPublicChannel(account, name, address, new UiCallback<Conversation>() {
+ @Override
+ public void success(Conversation conversation) {
+ runOnUiThread(() -> {
+ hideToast();
+ switchToConversation(conversation);
+ });
+
+ }
+
+ @Override
+ public void error(int errorCode, Conversation conversation) {
+ runOnUiThread(() -> {
+ replaceToast(getString(errorCode));
+ switchToConversation(conversation);
+ });
+ }
+
+ @Override
+ public void userInputRequried(PendingIntent pi, Conversation object) {
+
+ }
+ });
+ }
+
public static class MyListFragment extends ListFragment {
private AdapterView.OnItemClickListener mOnItemClickListener;
private int mResContextMenu;
@@ -1111,9 +1130,6 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
case R.id.context_delete_contact:
activity.deleteContact();
break;
- case R.id.context_join_conference:
- activity.openConversationForBookmark();
- break;
case R.id.context_share_uri:
activity.shareBookmarkUri();
break;
@@ -1178,7 +1194,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
case 0:
return getResources().getString(R.string.contacts);
case 1:
- return getResources().getString(R.string.conferences);
+ return getResources().getString(R.string.bookmarks);
default:
return super.getPageTitle(position);
}
diff --git a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java
index 2104349d8..5d1e7980c 100644
--- a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java
+++ b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java
@@ -63,7 +63,8 @@ public final class CryptoHelper {
}
public static String pronounceable(SecureRandom random) {
- char[] output = new char[random.nextInt(4) * 2 + 5];
+ final int rand = random.nextInt(4);
+ char[] output = new char[rand * 2 + (5 - rand)];
boolean vowel = random.nextBoolean();
for (int i = 0; i < output.length; ++i) {
output[i] = vowel ? VOWELS[random.nextInt(VOWELS.length)] : CONSONANTS[random.nextInt(CONSONANTS.length)];
diff --git a/src/main/res/drawable-hdpi/ic_add_white_24dp.png b/src/main/res/drawable-hdpi/ic_add_white_24dp.png
new file mode 100644
index 000000000..bcd24f2d9
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/ic_public_white_24dp.png b/src/main/res/drawable-hdpi/ic_public_white_24dp.png
new file mode 100644
index 000000000..242c0de59
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_public_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/ic_add_white_24dp.png b/src/main/res/drawable-mdpi/ic_add_white_24dp.png
new file mode 100644
index 000000000..c5d5ae2fe
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/ic_public_white_24dp.png b/src/main/res/drawable-mdpi/ic_public_white_24dp.png
new file mode 100644
index 000000000..5b99884ad
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_public_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/ic_add_white_24dp.png b/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
new file mode 100644
index 000000000..d7540be50
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/ic_public_white_24dp.png b/src/main/res/drawable-xhdpi/ic_public_white_24dp.png
new file mode 100644
index 000000000..800b7dbf9
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_public_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
new file mode 100644
index 000000000..d1c0a1d79
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/ic_public_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_public_white_24dp.png
new file mode 100644
index 000000000..b8c8448a2
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_public_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png b/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
new file mode 100644
index 000000000..54a96a38a
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_public_white_24dp.png b/src/main/res/drawable-xxxhdpi/ic_public_white_24dp.png
new file mode 100644
index 000000000..7fb0b9929
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_public_white_24dp.png
Binary files differ
diff --git a/src/main/res/layout/activity_start_conversation.xml b/src/main/res/layout/activity_start_conversation.xml
index f5ca18b5a..2a77e6654 100644
--- a/src/main/res/layout/activity_start_conversation.xml
+++ b/src/main/res/layout/activity_start_conversation.xml
@@ -47,9 +47,9 @@
android:layout_alignParentBottom="true"
app:backgroundTint="?attr/colorAccent"
app:sdMainFabClosedBackgroundColor="?attr/colorAccent"
- app:sdMainFabClosedSrc="@drawable/ic_person_add_white_24dp"
+ app:sdMainFabClosedSrc="@drawable/ic_add_white_24dp"
app:sdMainFabOpenedBackgroundColor="?attr/colorAccent"
- app:sdMainFabOpenedSrc="@drawable/ic_close_white_24dp"
- app:sdOverlayLayout="@id/overlay" />
+ app:sdOverlayLayout="@id/overlay"
+ app:sdUseReverseAnimationOnClose="true" />
</RelativeLayout>
</layout> \ No newline at end of file
diff --git a/src/main/res/layout/create_conference_dialog.xml b/src/main/res/layout/create_conference_dialog.xml
index 85a4cbf89..fc4aefaf5 100644
--- a/src/main/res/layout/create_conference_dialog.xml
+++ b/src/main/res/layout/create_conference_dialog.xml
@@ -39,7 +39,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/create_dialog_group_chat_name"
- android:imeOptions="actionNext" />
+ android:imeOptions="actionNext|flagNoExtractUi" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</layout> \ No newline at end of file
diff --git a/src/main/res/layout/create_public_channel_dialog.xml b/src/main/res/layout/create_public_channel_dialog.xml
new file mode 100644
index 000000000..a409cde37
--- /dev/null
+++ b/src/main/res/layout/create_public_channel_dialog.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="?dialogPreferredPadding">
+
+ <TextView
+ style="@style/InputLabel"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/your_account" />
+
+ <Spinner
+ android:id="@+id/account"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+ <android.support.design.widget.TextInputLayout
+ android:id="@+id/name_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
+ app:hintTextAppearance="@style/TextAppearance.Conversations.Design.Hint">
+
+ <de.pixart.messenger.ui.widget.EmojiWrapperEditText
+ android:id="@+id/group_chat_name"
+ style="@style/Widget.Conversations.EditText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/create_dialog_channel_name"
+ android:imeOptions="actionNext|flagNoExtractUi" />
+ </android.support.design.widget.TextInputLayout>
+
+ <android.support.design.widget.TextInputLayout
+ android:id="@+id/xmpp_address_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/xmpp_address"
+ android:visibility="gone"
+ app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
+ app:hintTextAppearance="@style/TextAppearance.Conversations.Design.Hint">
+
+ <AutoCompleteTextView
+ android:id="@+id/jid"
+ style="@style/Widget.Conversations.EditText"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:imeOptions="actionDone|flagNoExtractUi"
+ android:inputType="textEmailAddress" />
+ </android.support.design.widget.TextInputLayout>
+ </LinearLayout>
+</layout> \ No newline at end of file
diff --git a/src/main/res/layout/dialog_join_conference.xml b/src/main/res/layout/dialog_join_conference.xml
index 27acefc4a..3d8478a34 100644
--- a/src/main/res/layout/dialog_join_conference.xml
+++ b/src/main/res/layout/dialog_join_conference.xml
@@ -31,7 +31,7 @@
android:id="@+id/account_jid_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:hint="@string/conference_address"
+ android:hint="@string/xmpp_address"
app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error"
app:hintTextAppearance="@style/TextAppearance.Conversations.Design.Hint">
@@ -40,7 +40,7 @@
style="@style/Widget.Conversations.EditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:imeOptions="actionDone"
+ android:imeOptions="actionDone|flagNoExtractUi"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
diff --git a/src/main/res/layout/enter_jid_dialog.xml b/src/main/res/layout/enter_jid_dialog.xml
index 11f673916..932868771 100644
--- a/src/main/res/layout/enter_jid_dialog.xml
+++ b/src/main/res/layout/enter_jid_dialog.xml
@@ -40,7 +40,7 @@
style="@style/Widget.Conversations.EditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:imeOptions="actionDone"
+ android:imeOptions="actionDone|flagNoExtractUi"
android:inputType="textEmailAddress"
android:textColor="?attr/text_Color_Main" />
</android.support.design.widget.TextInputLayout>
diff --git a/src/main/res/menu/conference_context.xml b/src/main/res/menu/conference_context.xml
index 051a468d4..dbc6ebfa6 100644
--- a/src/main/res/menu/conference_context.xml
+++ b/src/main/res/menu/conference_context.xml
@@ -2,9 +2,6 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
- android:id="@+id/context_join_conference"
- android:title="@string/join_conference" />
- <item
android:id="@+id/context_delete_conference"
android:title="@string/delete_bookmark" />
<item
diff --git a/src/main/res/menu/start_conversation_fab_submenu.xml b/src/main/res/menu/start_conversation_fab_submenu.xml
new file mode 100644
index 000000000..212a94a7e
--- /dev/null
+++ b/src/main/res/menu/start_conversation_fab_submenu.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/join_public_channel"
+ android:icon="@drawable/ic_input_white_24dp"
+ android:title="@string/join_public_channel" />
+ <item
+ android:id="@+id/create_public_channel"
+ android:icon="@drawable/ic_public_white_24dp"
+ android:title="@string/create_public_channel" />
+ <item
+ android:id="@+id/create_private_group_chat"
+ android:icon="@drawable/ic_group_white_24dp"
+ android:title="@string/create_private_group_chat" />
+ <item
+ android:id="@+id/create_contact"
+ android:icon="@drawable/ic_person_white_48dp"
+ android:title="@string/add_contact" />
+</menu> \ No newline at end of file
diff --git a/src/main/res/menu/start_conversation_group_fab.xml b/src/main/res/menu/start_conversation_group_fab.xml
deleted file mode 100644
index 9eb95bc03..000000000
--- a/src/main/res/menu/start_conversation_group_fab.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/enter"
- android:icon="@drawable/ic_input_white_24dp"
- android:title="@string/join_group_chat" />
- <item
- android:id="@+id/create"
- android:icon="@drawable/ic_edit_white_24dp"
- android:title="@string/create_group_chat" />
-</menu> \ No newline at end of file
diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml
index f7a5e4e40..a8243c3c0 100644
--- a/src/main/res/values-ar/strings.xml
+++ b/src/main/res/values-ar/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">إلغاء حجب اسم النطاق</string>
<string name="title_activity_manage_accounts">إدارة الحسابات</string>
<string name="title_activity_settings">الإعدادات</string>
- <string name="title_activity_conference_details">تفاصيل فريق المحادثة</string>
+ <string name="conference_details">تفاصيل فريق المحادثة</string>
<string name="title_activity_contact_details">تفاصيل المُراسِل</string>
<string name="title_activity_sharewith">شارك بواسطة بيكسل آرت ماسنجر</string>
<string name="title_activity_start_conversation">الشروع في محادثة</string>
@@ -166,7 +166,7 @@
<string name="search">بحث</string>
<string name="create_contact">انشاء مُراسِل</string>
<string name="enter_contact">أدخل مراسلا</string>
- <string name="join_conference">الالتحاق بفريق المحادثة</string>
+ <string name="join_public_channel">الالتحاق بفريق المحادثة</string>
<string name="delete_contact">حذف المراسِل</string>
<string name="view_contact_details">عرض تفاصيل المُراسِل</string>
<string name="block_contact">حجب مُراسِل</string>
@@ -175,7 +175,7 @@
<string name="select">اختيار</string>
<string name="join">الانضمام</string>
<string name="conference_address">عنوان فريق المحادثة</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">أضفه كفاصلة مرجعية</string>
<string name="delete_bookmark">حذف الفاصلة المرجعية</string>
<string name="action_edit_subject">تعديل موضوع فريق المحادثة</string>
@@ -356,7 +356,7 @@
<string name="action_end_conversation_muc">مغادرة المحادثة الجماعية</string>
<string name="show_password">إظهار الكلمة السرية</string>
<string name="registration_password_too_weak">فشلت عملية إنشاء الحساب: إنّ الكلمة السرية ضعيفة</string>
- <string name="create_conference">انشاء محادثة جماعية</string>
+ <string name="create_private_group_chat">انشاء محادثة جماعية</string>
<string name="conference_subject">الموضوع</string>
<string name="choose_participants">اختر المشاركين</string>
<string name="creating_conference">عملية انشاء فريق المحادثة جارية…</string>
diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml
index 448844ac8..69213d000 100644
--- a/src/main/res/values-bg/strings.xml
+++ b/src/main/res/values-bg/strings.xml
@@ -13,7 +13,7 @@
<string name="action_unblock_domain">Разблокираи доминио</string>
<string name="title_activity_manage_accounts">Управление на профили</string>
<string name="title_activity_settings">Настройки</string>
- <string name="title_activity_conference_details">Детаили на чат групата</string>
+ <string name="conference_details">Детаили на чат групата</string>
<string name="title_activity_contact_details">Детайли на контакта</string>
<string name="title_activity_sharewith">Сподели със конверсация</string>
<string name="title_activity_start_conversation">Започнете Разговор</string>
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index 244eb7196..af9910453 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -195,7 +195,7 @@
<string name="search">Cercar</string>
<string name="create_contact">Crea un contacte</string>
<string name="enter_contact">Introduïu un contacte</string>
- <string name="join_conference">Uniu-vos al xat en grup</string>
+ <string name="join_public_channel">Uniu-vos al xat en grup</string>
<string name="delete_contact">Suprimeix el contacte</string>
<string name="view_contact_details">Veure els detalls dels contactes</string>
<string name="block_contact">Bloqueja contacte</string>
@@ -205,7 +205,7 @@
<string name="contact_already_exists">El contacte ja existeix</string>
<string name="join">Unir-se</string>
<string name="conference_address">Direcció del xat de grup</string>
- <string name="conference_address_example">room@conference.example.com/nick</string>
+ <string name="channel_full_jid_example">room@conference.example.com/nick</string>
<string name="save_as_bookmark">Guardar com a favorits</string>
<string name="delete_bookmark">Eliminar de favorits</string>
<string name="bookmark_already_exists">Aquesta llista de favorits ja existeix</string>
@@ -500,7 +500,7 @@ d\'altres proveïdors donant-los la vostra ID Jabber completa.</string>
<string name="show_password">Ensenya la contrasenya</string>
<string name="registration_please_wait">Error de registre: torna-ho a provar més tard</string>
<string name="registration_password_too_weak">Ha fallat la inscripció: la contrasenya és massa feble</string>
- <string name="create_conference">Crea un xat en grup</string>
+ <string name="create_private_group_chat">Crea un xat en grup</string>
<string name="conference_subject">Subjecte</string>
<string name="choose_participants">Tria els participants</string>
<string name="creating_conference">S\'està creant el xat en grup...</string>
diff --git a/src/main/res/values-ceb/strings.xml b/src/main/res/values-ceb/strings.xml
index eef95dc51..f227b1995 100644
--- a/src/main/res/values-ceb/strings.xml
+++ b/src/main/res/values-ceb/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Ayaw i-block ang domain</string>
<string name="title_activity_manage_accounts">Pagdumala sa mga account</string>
<string name="title_activity_settings">Mga pagtakda</string>
- <string name="title_activity_conference_details">Mga detalyi sa Group chat</string>
+ <string name="conference_details">Mga detalyi sa Group chat</string>
<string name="title_activity_contact_details">Mga detalyi sa kontak</string>
<string name="title_activity_sharewith">Ipakigbahin ang gepanag-estoryahan</string>
<string name="title_activity_start_conversation">Pagsugod sa Panag-estorya</string>
@@ -208,7 +208,7 @@
<string name="search">Pangita</string>
<string name="create_contact">Buhat ug kontak</string>
<string name="enter_contact">Isulod ang kontak</string>
- <string name="join_conference">Apil sa group chat</string>
+ <string name="join_public_channel">Apil sa group chat</string>
<string name="delete_contact">Tangtanga ang kontak</string>
<string name="view_contact_details">Tan-awa ang mga detayi sa kontak</string>
<string name="block_contact">I-block ang kontak</string>
@@ -218,7 +218,7 @@
<string name="contact_already_exists">Ang kontak kay naa na daan</string>
<string name="join">Apil</string>
<string name="conference_address">Address sa group chat</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">Sagupa ingun sa bookmark</string>
<string name="delete_bookmark">Tangtanga ang bookmark</string>
<string name="bookmark_already_exists">Ang kini nga bookmark kay naa na daan</string>
@@ -492,7 +492,7 @@
<string name="show_password">Ipakita ang password</string>
<string name="registration_please_wait">Napakyas ang pagrehistro: Sulayi pag-usab taud-taud</string>
<string name="registration_password_too_weak">Ang pag-rehistro napakyas: Ang password sobra ra ka-huyang</string>
- <string name="create_conference">Buhat ug grupo sa chat</string>
+ <string name="create_private_group_chat">Buhat ug grupo sa chat</string>
<string name="conference_subject">Subject</string>
<string name="choose_participants">Pili ug mga partisipante</string>
<string name="creating_conference">Nagbuhat ug grupo sa chat…</string>
diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml
index fd2478b24..913ed3e7f 100644
--- a/src/main/res/values-cs/strings.xml
+++ b/src/main/res/values-cs/strings.xml
@@ -192,7 +192,7 @@
<string name="select">Vybrat</string>
<string name="contact_already_exists">Kontakt již existuje</string>
<string name="join">Vstoupit</string>
- <string name="conference_address_example">room@conference.example.com/nick</string>
+ <string name="channel_full_jid_example">room@conference.example.com/nick</string>
<string name="save_as_bookmark">Uložit jako záložku</string>
<string name="delete_bookmark">Smazat záložku</string>
<string name="bookmark_already_exists">Tato záložka již existuje</string>
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index b1a09c773..32770eb13 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Domain entsperren</string>
<string name="title_activity_manage_accounts">Profile verwalten</string>
<string name="title_activity_settings">Einstellungen</string>
- <string name="title_activity_conference_details">Gruppenchat-Details</string>
+ <string name="conference_details">Gruppenchat-Details</string>
<string name="title_activity_contact_details">Kontakt-Details</string>
<string name="title_activity_sharewith">Mit Unterhaltung teilen</string>
<string name="title_activity_start_conversation">Unterhaltung beginnen</string>
@@ -214,7 +214,7 @@
<string name="search">Suchen</string>
<string name="create_contact">Kontakt hinzufügen</string>
<string name="enter_contact">Kontakt eingeben</string>
- <string name="join_conference">Gruppenchat beitreten</string>
+ <string name="join_public_channel">Gruppenchat beitreten</string>
<string name="delete_contact">Kontakt löschen</string>
<string name="view_contact_details">Kontakt-Details anzeigen</string>
<string name="block_contact">Kontakt sperren</string>
@@ -224,7 +224,7 @@
<string name="contact_already_exists">Der Kontakt existiert bereits</string>
<string name="join">Beitreten</string>
<string name="conference_address">Gruppenchat-Adresse</string>
- <string name="conference_address_example">gruppenchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">gruppenchat@room.pix-art.de</string>
<string name="save_as_bookmark">Zur Kontaktliste hinzufügen</string>
<string name="delete_bookmark">Von Kontaktliste entfernen</string>
<string name="bookmark_already_exists">Die Konferenz befindet sich bereits auf deiner Kontaktliste</string>
@@ -557,7 +557,7 @@
<string name="show_password">Passwort anzeigen</string>
<string name="registration_please_wait">Registrierung fehlgeschlagen: Bitte später versuchen</string>
<string name="registration_password_too_weak">Registrierung fehlgeschlagen: Passwort zu schwach</string>
- <string name="create_conference">Gruppenchat erstellen</string>
+ <string name="create_private_group_chat">Gruppenchat erstellen</string>
<string name="conference_subject">Titel</string>
<string name="choose_participants">Mitglieder auswählen</string>
<string name="creating_conference">Gruppenchat wird erstellt…</string>
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 14b42b602..f503e8444 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Desbloquear dominio</string>
<string name="title_activity_manage_accounts">Gestionar Cuentas</string>
<string name="title_activity_settings">Ajustes</string>
- <string name="title_activity_conference_details">Detalles del chat de grupo</string>
+ <string name="conference_details">Detalles del chat de grupo</string>
<string name="title_activity_contact_details">Detalles del contacto</string>
<string name="title_activity_sharewith">Compartir con Conversación</string>
<string name="title_activity_start_conversation">Comenzar conversación</string>
@@ -214,7 +214,7 @@
<string name="search">Buscar</string>
<string name="create_contact">Crear Contacto</string>
<string name="enter_contact">Introducir contacto</string>
- <string name="join_conference">Únete al grupo</string>
+ <string name="join_public_channel">Únete al grupo</string>
<string name="delete_contact">Eliminar Contacto</string>
<string name="view_contact_details">Ver detalles del contacto</string>
<string name="block_contact">Bloquear contacto</string>
@@ -224,7 +224,7 @@
<string name="contact_already_exists">El contacto ya existe</string>
<string name="join">Unirse</string>
<string name="conference_address">Dirección del chat de grupo</string>
- <string name="conference_address_example">grupo@room.pix-art.de</string>
+ <string name="channel_full_jid_example">grupo@room.pix-art.de</string>
<string name="save_as_bookmark">Guardar en marcadores</string>
<string name="delete_bookmark">Eliminar marcador</string>
<string name="bookmark_already_exists">Este marcador ya existe</string>
@@ -557,7 +557,7 @@
<string name="show_password">Mostrar contraseña</string>
<string name="registration_please_wait">El registro falló. Prueba de nuevo más tarde</string>
<string name="registration_password_too_weak">Error en el registro: La contraseña es demasiado débil</string>
- <string name="create_conference">Crear grupo</string>
+ <string name="create_private_group_chat">Crear grupo</string>
<string name="conference_subject">Asunto</string>
<string name="choose_participants">Elige a los participantes</string>
<string name="creating_conference">Crear chat de grupo…</string>
diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml
index 38ffee53c..7b37e7031 100644
--- a/src/main/res/values-eu/strings.xml
+++ b/src/main/res/values-eu/strings.xml
@@ -195,7 +195,7 @@
<string name="search">Bilatu</string>
<string name="create_contact">Kontaktua sortu</string>
<string name="enter_contact">Kontaktua sartu</string>
- <string name="join_conference">Taldera batu</string>
+ <string name="join_public_channel">Taldera batu</string>
<string name="delete_contact">Kontaktua ezabatu</string>
<string name="view_contact_details">Kontaktuaren xehetasunak ikusi</string>
<string name="block_contact">Kontaktua blokeatu</string>
@@ -205,7 +205,7 @@
<string name="contact_already_exists">Kontaktua existitzen da dagoeneko</string>
<string name="join">Batu</string>
<string name="conference_address">Taldearen helbidea</string>
- <string name="conference_address_example">gela@konferentzia.adibidea.eus/ezizena</string>
+ <string name="channel_full_jid_example">gela@konferentzia.adibidea.eus/ezizena</string>
<string name="save_as_bookmark">Gorde laster-marka bezala</string>
<string name="delete_bookmark">Laster-marka ezabatu</string>
<string name="bookmark_already_exists">Laster-marka hau existitzen da dagoeneko</string>
@@ -487,7 +487,7 @@
<string name="show_password">Pasahitza erakutsi</string>
<string name="registration_please_wait">Erregistroak huts egin du: saiatu berriz beranduago</string>
<string name="registration_password_too_weak">Erregistroa huts egin du: pasahitza ahulegia da</string>
- <string name="create_conference">Taldea sortu</string>
+ <string name="create_private_group_chat">Taldea sortu</string>
<string name="conference_subject">Gaia</string>
<string name="choose_participants">Parte hartzaileak hautatu</string>
<string name="creating_conference">Taldea sortzen…</string>
diff --git a/src/main/res/values-fil/strings.xml b/src/main/res/values-fil/strings.xml
index 34c2295d2..cbd906792 100644
--- a/src/main/res/values-fil/strings.xml
+++ b/src/main/res/values-fil/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Wag harangan ang domain</string>
<string name="title_activity_manage_accounts">Mamahala ng mga account</string>
<string name="title_activity_settings">Mga setting</string>
- <string name="title_activity_conference_details">Grupo ng detalye sa chat</string>
+ <string name="conference_details">Grupo ng detalye sa chat</string>
<string name="title_activity_contact_details">Mga detalyi sa kontak</string>
<string name="title_activity_sharewith">Ibahagi ang pag-uusap</string>
<string name="title_activity_start_conversation">Simulan ang pag-uusap</string>
@@ -208,7 +208,7 @@
<string name="search">Magsaliksik</string>
<string name="create_contact">Gumawa ng kontak</string>
<string name="enter_contact">Ipasok na kontak</string>
- <string name="join_conference">Sumali sa pang-grupong chat</string>
+ <string name="join_public_channel">Sumali sa pang-grupong chat</string>
<string name="delete_contact">Burahin ang kontak</string>
<string name="view_contact_details">Tingnan ang mga detalye sa kontak</string>
<string name="block_contact">Harangan ang kontak</string>
@@ -218,7 +218,7 @@
<string name="contact_already_exists">Mayroon ng kontak na umiiral</string>
<string name="join">Sumali</string>
<string name="conference_address">Address ng grupong chat</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">I-save bilang bookmark</string>
<string name="delete_bookmark">Burahin na bookmark</string>
<string name="bookmark_already_exists">Umiiral na ang bookmark</string>
@@ -531,7 +531,7 @@
<string name="show_password">Ipakita ang password</string>
<string name="registration_please_wait">Nabigo ang pagpaparehistro: Subukang muli sa ibang pagkakataon</string>
<string name="registration_password_too_weak">Nabigo ang pagpaparehistro: Mahina ang password</string>
- <string name="create_conference">Lumikha ng grupo ng chat</string>
+ <string name="create_private_group_chat">Lumikha ng grupo ng chat</string>
<string name="conference_subject">Paksa</string>
<string name="choose_participants">Pumili ng mga kalahok</string>
<string name="creating_conference">Paglikha ng grupo ng chat…</string>
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 6aeae1d1c..ad68f63e7 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Débloquer le domaine</string>
<string name="title_activity_manage_accounts">Gestion des comptes</string>
<string name="title_activity_settings">Paramètres</string>
- <string name="title_activity_conference_details">Détails de la conférence</string>
+ <string name="conference_details">Détails de la conférence</string>
<string name="title_activity_contact_details">Détails du contact</string>
<string name="title_activity_sharewith">Partager avec Conversation</string>
<string name="title_activity_start_conversation">Démarrer une conversation</string>
@@ -213,7 +213,7 @@
<string name="search">Rechercher</string>
<string name="create_contact">Ajouter un contact</string>
<string name="enter_contact">Ajouter contact</string>
- <string name="join_conference">Rejoindre une conférence</string>
+ <string name="join_public_channel">Rejoindre une conférence</string>
<string name="delete_contact">Supprimer le contact</string>
<string name="view_contact_details">Afficher les détails du contact</string>
<string name="block_contact">Bloquer le contact</string>
@@ -223,7 +223,7 @@
<string name="contact_already_exists">Le contact existe déjà.</string>
<string name="join">Rejoindre</string>
<string name="conference_address">Adresse de la conférence</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">Enregistrer comme favori</string>
<string name="delete_bookmark">Supprimer le favori</string>
<string name="bookmark_already_exists">Le favori existe déjà</string>
@@ -553,7 +553,7 @@
<string name="show_password">Afficher le mot de passe</string>
<string name="registration_please_wait">L’enregistrement a échoué : Réessayer plus tard</string>
<string name="registration_password_too_weak">Échec de l’enregistrement : le mot de passe n’est pas assez fort</string>
- <string name="create_conference">Créer une conférence</string>
+ <string name="create_private_group_chat">Créer une conférence</string>
<string name="conference_subject">Objet</string>
<string name="choose_participants">Choisir les participants</string>
<string name="creating_conference">Création de la conférence …</string>
diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml
index e618a5a5e..a8f118de2 100644
--- a/src/main/res/values-gl/strings.xml
+++ b/src/main/res/values-gl/strings.xml
@@ -195,7 +195,7 @@
<string name="search">Buscar</string>
<string name="create_contact">Crear unha conta</string>
<string name="enter_contact">Introducir contacto</string>
- <string name="join_conference">Entrar nunha conversa en grupo</string>
+ <string name="join_public_channel">Entrar nunha conversa en grupo</string>
<string name="delete_contact">Eliminar contacto</string>
<string name="view_contact_details">Ver os detalles do contacto</string>
<string name="block_contact">Bloquear contacto</string>
@@ -205,7 +205,7 @@
<string name="contact_already_exists">Xa existe o contacto</string>
<string name="join">Unirse</string>
<string name="conference_address">Enderezo da conversa en grupo</string>
- <string name="conference_address_example">sala@xuntanza.exemplo.com/nick</string>
+ <string name="channel_full_jid_example">sala@xuntanza.exemplo.com/nick</string>
<string name="save_as_bookmark">Gardar como marcador</string>
<string name="delete_bookmark">Eliminar marcador</string>
<string name="bookmark_already_exists">Este marcador xa existe</string>
@@ -487,7 +487,7 @@
<string name="show_password">Mostar contrasinal</string>
<string name="registration_please_wait">Fallo no rexistro: inténteo de novo</string>
<string name="registration_password_too_weak">Fallo no rexistro: contrasinal moi feble</string>
- <string name="create_conference">Crear conversa en grupo</string>
+ <string name="create_private_group_chat">Crear conversa en grupo</string>
<string name="conference_subject">Asunto</string>
<string name="choose_participants">Escoller participantes</string>
<string name="creating_conference">Creando unha conversa en grupo...</string>
diff --git a/src/main/res/values-id/strings.xml b/src/main/res/values-id/strings.xml
index 5294d46ca..5871a3d75 100644
--- a/src/main/res/values-id/strings.xml
+++ b/src/main/res/values-id/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Buka blokir halaman</string>
<string name="title_activity_manage_accounts">Kelola akun</string>
<string name="title_activity_settings">Pengaturan</string>
- <string name="title_activity_conference_details">Rincian chat kelompok</string>
+ <string name="conference_details">Rincian chat kelompok</string>
<string name="title_activity_contact_details">Rincian kontak</string>
<string name="title_activity_sharewith">Berbagi dengan percakapan</string>
<string name="title_activity_start_conversation">Mulai percakapan</string>
@@ -208,7 +208,7 @@
<string name="search">Pencarian</string>
<string name="create_contact">Buat kontak</string>
<string name="enter_contact">Masukkan kontak</string>
- <string name="join_conference">Gabung kelompok obrolan</string>
+ <string name="join_public_channel">Gabung kelompok obrolan</string>
<string name="delete_contact">Menghapus kontak</string>
<string name="view_contact_details">Lihat rincian kontak</string>
<string name="block_contact">Blokir kontak</string>
@@ -218,7 +218,7 @@
<string name="contact_already_exists">Kontak sudah uda</string>
<string name="join">Gabung</string>
<string name="conference_address">Alamat obrolan kelompok</string>
- <string name="conference_address_example">obrolankelompok@room.pix-art.de</string>
+ <string name="channel_full_jid_example">obrolankelompok@room.pix-art.de</string>
<string name="save_as_bookmark">Simpan sebagai penanda</string>
<string name="delete_bookmark">Hapus penanda</string>
<string name="bookmark_already_exists">Penanda ini sudah ada</string>
@@ -528,7 +528,7 @@
<string name="show_password">Tampilkan kata sandi</string>
<string name="registration_please_wait">Pendaftaran gagal: Coba lagi nanti</string>
<string name="registration_password_too_weak">Pendaftaran gagal: Kata sandi terlalu lemah</string>
- <string name="create_conference">Buat obrolan kelompok</string>
+ <string name="create_private_group_chat">Buat obrolan kelompok</string>
<string name="conference_subject">Perihal</string>
<string name="choose_participants">Pilih peserta</string>
<string name="creating_conference">Membuat obrolan kelompok…</string>
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 85886cec0..679e832ae 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Sblocca dominio</string>
<string name="title_activity_manage_accounts">Gestisci account</string>
<string name="title_activity_settings">Impostazioni</string>
- <string name="title_activity_conference_details">Dettagli della conversazione di gruppo</string>
+ <string name="conference_details">Dettagli della conversazione di gruppo</string>
<string name="title_activity_contact_details">Dettagli del Contatto</string>
<string name="title_activity_sharewith">Condividi con Conversation</string>
<string name="title_activity_start_conversation">Inizia una conversazione</string>
@@ -214,7 +214,7 @@
<string name="search">Cerca</string>
<string name="create_contact">Crea contatto</string>
<string name="enter_contact">Inserisci contatto</string>
- <string name="join_conference">Unisciti alla conversazione di gruppo</string>
+ <string name="join_public_channel">Unisciti alla conversazione di gruppo</string>
<string name="delete_contact">Elimina contatto</string>
<string name="view_contact_details">Mostra dettagli contatto</string>
<string name="block_contact">Blocca contatto</string>
@@ -224,7 +224,7 @@
<string name="contact_already_exists">Il contatto esiste già</string>
<string name="join">Entra</string>
<string name="conference_address">Indirizzo della conversazione di gruppo</string>
- <string name="conference_address_example">stanza@conferenza.esempio.com/nick</string>
+ <string name="channel_full_jid_example">stanza@conferenza.esempio.com/nick</string>
<string name="save_as_bookmark">Salva come segnalibro</string>
<string name="delete_bookmark">Elimina segnalibro</string>
<string name="bookmark_already_exists">Questo segnalibro esiste già</string>
@@ -557,7 +557,7 @@
<string name="show_password">Mostra la password</string>
<string name="registration_please_wait">Registrazione fallita: riprova più tardi</string>
<string name="registration_password_too_weak">Registrazione fallita: password troppo debole</string>
- <string name="create_conference">Crea conversazione di gruppo</string>
+ <string name="create_private_group_chat">Crea conversazione di gruppo</string>
<string name="conference_subject">Soggetto</string>
<string name="choose_participants">Scegli i partecipanti</string>
<string name="creating_conference">Creazione conversazione di gruppo…</string>
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index e20d09aca..deb72a3b4 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -195,7 +195,7 @@
<string name="search">Zoeken</string>
<string name="create_contact">Contact aanmaken</string>
<string name="enter_contact">Contact invoeren</string>
- <string name="join_conference">Deelnemen aan groepsgesprek</string>
+ <string name="join_public_channel">Deelnemen aan groepsgesprek</string>
<string name="delete_contact">Contact verwijderen</string>
<string name="view_contact_details">Contactgegevens bekijken</string>
<string name="block_contact">Contact blokkeren</string>
@@ -205,7 +205,7 @@
<string name="contact_already_exists">Het contact bestaat al</string>
<string name="join">Deelnemen</string>
<string name="conference_address">Gespreksadres</string>
- <string name="conference_address_example">ruimte@groepsgesprek.voorbeeld.be/naam</string>
+ <string name="channel_full_jid_example">ruimte@groepsgesprek.voorbeeld.be/naam</string>
<string name="save_as_bookmark">Opslaan als bladwijzer</string>
<string name="delete_bookmark">Bladwijzer verwijderen</string>
<string name="bookmark_already_exists">Deze bladwijzer bestaat al</string>
@@ -484,7 +484,7 @@
<string name="show_password">Wachtwoord weergeven</string>
<string name="registration_please_wait">Registratie mislukt: probeer later opnieuw</string>
<string name="registration_password_too_weak">Registratie mislukt: wachtwoord te zwak</string>
- <string name="create_conference">Groepsgesprek aanmaken</string>
+ <string name="create_private_group_chat">Groepsgesprek aanmaken</string>
<string name="conference_subject">Onderwerp</string>
<string name="choose_participants">Kies deelnemers</string>
<string name="creating_conference">Groepsgesprek aanmaken…</string>
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index 947f3b5df..e4db7e860 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Odblokuj domenę</string>
<string name="title_activity_manage_accounts">Zarządzaj kontami</string>
<string name="title_activity_settings">Ustawienia</string>
- <string name="title_activity_conference_details">Szczegóły czatu grupowego</string>
+ <string name="conference_details">Szczegóły czatu grupowego</string>
<string name="title_activity_contact_details">Szczegóły kontaktu</string>
<string name="title_activity_sharewith">Udostępnij w konwersacji</string>
<string name="title_activity_start_conversation">Rozpocznij konwersację</string>
@@ -215,7 +215,7 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
<string name="search">Szukaj</string>
<string name="create_contact">Utwórz kontakt</string>
<string name="enter_contact">Wpisz kontakt</string>
- <string name="join_conference">Dołącz do czatu grupowego</string>
+ <string name="join_public_channel">Dołącz do czatu grupowego</string>
<string name="delete_contact">Usuń kontakt</string>
<string name="view_contact_details">Szczegóły kontaktu</string>
<string name="block_contact">Zablokuj kontakt</string>
@@ -225,7 +225,7 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
<string name="contact_already_exists">Kontakt już istnieje</string>
<string name="join">Dołącz</string>
<string name="conference_address">Adres czatu grupowego</string>
- <string name="conference_address_example">konferencja@konferencje.example.com/nick</string>
+ <string name="channel_full_jid_example">konferencja@konferencje.example.com/nick</string>
<string name="save_as_bookmark">Dodaj jako zakładkę</string>
<string name="delete_bookmark">Usuń zakładkę</string>
<string name="bookmark_already_exists">Zakładka już istnieje</string>
@@ -538,7 +538,7 @@ Nie spowoduje to usunięcia kopii wiadomości przechowywanych na innych urządze
<string name="show_password">Pokaż hasło</string>
<string name="registration_please_wait">Rejestracja nie powiodła się. Spróbuj później</string>
<string name="registration_password_too_weak">Rejestracja nie powiodła się: hasło zbyt słabe</string>
- <string name="create_conference">Utwórz czat grupowy</string>
+ <string name="create_private_group_chat">Utwórz czat grupowy</string>
<string name="conference_subject">Temat</string>
<string name="choose_participants">Wybierz uczestnika</string>
<string name="import_database">Importować backup</string>
diff --git a/src/main/res/values-ro/strings.xml b/src/main/res/values-ro/strings.xml
index 0159d2862..7f0cbd8ae 100644
--- a/src/main/res/values-ro/strings.xml
+++ b/src/main/res/values-ro/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Deblochează domeniu</string>
<string name="title_activity_manage_accounts">Configurează conturile</string>
<string name="title_activity_settings">Setări</string>
- <string name="title_activity_conference_details">Detalii discuție de grup</string>
+ <string name="conference_details">Detalii discuție de grup</string>
<string name="title_activity_contact_details">Detalii contact</string>
<string name="title_activity_sharewith">Partajează într-o conversație</string>
<string name="title_activity_start_conversation">Pornește o conversație</string>
@@ -198,7 +198,7 @@
<string name="search">Caută</string>
<string name="create_contact">Creează contact</string>
<string name="enter_contact">Introdu contact</string>
- <string name="join_conference">Alătură-te unei discuții de grup</string>
+ <string name="join_public_channel">Alătură-te unei discuții de grup</string>
<string name="delete_contact">Șterge contact</string>
<string name="view_contact_details">Arată detalii contact</string>
<string name="block_contact">Blochează contact</string>
@@ -208,7 +208,7 @@
<string name="contact_already_exists">Contactul exista deja</string>
<string name="join">Alatura-te</string>
<string name="conference_address">Adresă discuție de grup</string>
- <string name="conference_address_example">grupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">grupchat@room.pix-art.de</string>
<string name="save_as_bookmark">Salvează semn de carte</string>
<string name="delete_bookmark">Șterge semn de carte</string>
<string name="bookmark_already_exists">Acest semn de carte exista</string>
@@ -505,7 +505,7 @@ sau chiar pierderea mesajelor.\nÎn continuare veți fi rugați să dezactivați
<string name="show_password">Arată parola</string>
<string name="registration_please_wait">Înregistrare eșuată: Încercați din nou mai târziu</string>
<string name="registration_password_too_weak">Înregistrare eșuată: Parolă nesigură</string>
- <string name="create_conference">Creează discuție de grup</string>
+ <string name="create_private_group_chat">Creează discuție de grup</string>
<string name="conference_subject">Subiect</string>
<string name="choose_participants">Alege participanți</string>
<string name="creating_conference">Se creează discuția de grup...</string>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 5de6f6fc8..ef42a141e 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Разблокировать домен</string>
<string name="title_activity_manage_accounts">Управление аккаунтами</string>
<string name="title_activity_settings">Настройки</string>
- <string name="title_activity_conference_details">Информация о конференции</string>
+ <string name="conference_details">Информация о конференции</string>
<string name="title_activity_contact_details">Сведения о контакте</string>
<string name="title_activity_sharewith">Поделиться с разговором</string>
<string name="title_activity_start_conversation">Начать Разговор</string>
@@ -211,7 +211,7 @@
<string name="search">Поиск</string>
<string name="create_contact">Создать Контакт</string>
<string name="enter_contact">Введите Контакт</string>
- <string name="join_conference">Присоединиться к групповому чату</string>
+ <string name="join_public_channel">Присоединиться к групповому чату</string>
<string name="delete_contact">Удалить Контакт</string>
<string name="view_contact_details">Просмотреть детали контакта</string>
<string name="block_contact">Заблокировать контакт</string>
@@ -221,7 +221,7 @@
<string name="contact_already_exists">Контакт уже существует</string>
<string name="join">Присоединиться</string>
<string name="conference_address">Адрес группового чата</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">Сохранить как закладку</string>
<string name="delete_bookmark">Удалить закладку</string>
<string name="bookmark_already_exists">Эта закладка уже создана</string>
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index 152373b69..040b5ea2b 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -196,7 +196,7 @@
<string name="select">Välj</string>
<string name="contact_already_exists">Kontakten finns redan</string>
<string name="join">Gå med</string>
- <string name="conference_address_example">room@conference.example.com/nick</string>
+ <string name="channel_full_jid_example">room@conference.example.com/nick</string>
<string name="save_as_bookmark">Spara som bokmärke</string>
<string name="delete_bookmark">Ta bort bokmärke</string>
<string name="bookmark_already_exists">Detta bokmärke finns redan</string>
diff --git a/src/main/res/values-tl/strings.xml b/src/main/res/values-tl/strings.xml
index 3bbb58321..c70f6416e 100644
--- a/src/main/res/values-tl/strings.xml
+++ b/src/main/res/values-tl/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Walang harang na domain</string>
<string name="title_activity_manage_accounts">Ang mga account ay pamahalaan</string>
<string name="title_activity_settings">Settings</string>
- <string name="title_activity_conference_details">Mga detalye ng kagrupo sa chat</string>
+ <string name="conference_details">Mga detalye ng kagrupo sa chat</string>
<string name="title_activity_contact_details">Mga detalye ng pagkontak</string>
<string name="title_activity_sharewith">Pag-uusap ay binahagi</string>
<string name="title_activity_start_conversation">Simula na pag-uusap</string>
diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml
index 5d26cb337..1bfe1f37a 100644
--- a/src/main/res/values-tr/strings.xml
+++ b/src/main/res/values-tr/strings.xml
@@ -17,7 +17,7 @@
<string name="action_unblock_domain">Domainin engelini kaldır</string>
<string name="title_activity_manage_accounts">Hesapları Yönet</string>
<string name="title_activity_settings">Ayarlar</string>
- <string name="title_activity_conference_details">Grup sohbeti Detayları</string>
+ <string name="conference_details">Grup sohbeti Detayları</string>
<string name="title_activity_contact_details">Kişi Detayları</string>
<string name="title_activity_sharewith">Sohbetle Paylaş</string>
<string name="title_activity_start_conversation">Konuşmayı Başlat</string>
@@ -208,7 +208,7 @@
<string name="search">Ara</string>
<string name="create_contact">Kişi oluştur</string>
<string name="enter_contact">İletişim Kur</string>
- <string name="join_conference">Grup sohbetine katıl</string>
+ <string name="join_public_channel">Grup sohbetine katıl</string>
<string name="delete_contact">Kişiyi sil</string>
<string name="view_contact_details">Kişi ayrıntılarını görün</string>
<string name="block_contact">Kişiyi engelleyin</string>
@@ -218,7 +218,7 @@
<string name="contact_already_exists">Kişi zaten mevcut</string>
<string name="join">Katıl</string>
<string name="conference_address">Grup sohbeti adresi</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">groupchat@room.pix-art.de</string>
<string name="save_as_bookmark">Yer imi olarak kaydet</string>
<string name="delete_bookmark">Yer imini sil</string>
<string name="bookmark_already_exists">Bu yer işareti zaten var</string>
@@ -531,7 +531,7 @@
<string name="show_password">Parolayı göster</string>
<string name="registration_please_wait">Kayıt başarısız: Daha sonra tekrar deneyin</string>
<string name="registration_password_too_weak">Kayıt başarısız oldu: Şifre çok zayıf</string>
- <string name="create_conference">Grup sohbeti oluştur</string>
+ <string name="create_private_group_chat">Grup sohbeti oluştur</string>
<string name="conference_subject">Konu</string>
<string name="choose_participants">Katılımcıları seç</string>
<string name="creating_conference">Grup sohbeti oluşturuluyor…</string>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 7e6fad360..886f9a7ba 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -14,19 +14,19 @@
<string name="action_unblock_contact">Unblock contact</string>
<string name="action_block_domain">Block domain</string>
<string name="action_unblock_domain">Unblock domain</string>
- <string name="title_activity_manage_accounts">Manage Accounts</string>
+ <string name="title_activity_manage_accounts">Manage accounts</string>
<string name="title_activity_settings">Settings</string>
- <string name="title_activity_conference_details">Group chat Details</string>
- <string name="title_activity_contact_details">Contact Details</string>
- <string name="title_activity_sharewith">Share with Conversation</string>
- <string name="title_activity_start_conversation">Start Conversation</string>
+ <string name="conference_details">Group chat details</string>
+ <string name="title_activity_contact_details">Contact details</string>
+ <string name="title_activity_sharewith">Share with conversation</string>
+ <string name="title_activity_start_conversation">Start conversation</string>
<string name="title_activity_choose_contact">Choose contact</string>
- <string name="title_activity_choose_contacts">Choose Contacts</string>
+ <string name="title_activity_choose_contacts">Choose contacts</string>
<string name="title_activity_block_list">Block list</string>
<string name="just_now">just now</string>
<string name="minute_ago">1 min ago</string>
<string name="minutes_ago">%d mins ago</string>
- <string name="unread_conversations">unread Conversations</string>
+ <string name="unread_conversations">unread conversations</string>
<string name="sending">sending…</string>
<string name="message_decrypting">Decrypting message. Please wait…</string>
<string name="pgp_message">OpenPGP encrypted message</string>
@@ -209,11 +209,10 @@
<string name="done">Done</string>
<string name="verify">Verify</string>
<string name="decrypt">Decrypt</string>
- <string name="conferences">Group chats</string>
+ <string name="bookmarks">Bookmarks</string>
<string name="search">Search</string>
<string name="create_contact">Create Contact</string>
<string name="enter_contact">Enter Contact</string>
- <string name="join_conference">Join group chat</string>
<string name="delete_contact">Delete Contact</string>
<string name="view_contact_details">View contact details</string>
<string name="block_contact">Block contact</string>
@@ -222,8 +221,8 @@
<string name="select">Select</string>
<string name="contact_already_exists">The contact already exists</string>
<string name="join">Join</string>
- <string name="conference_address">Group chat address</string>
- <string name="conference_address_example">groupchat@room.pix-art.de</string>
+ <string name="channel_full_jid_example">channel@conference.example.com/nick</string>
+ <string name="channel_bare_jid_example">channel@conference.example.com</string>
<string name="save_as_bookmark">Save as bookmark</string>
<string name="delete_bookmark">Delete bookmark</string>
<string name="bookmark_already_exists">This bookmark already exists</string>
@@ -557,7 +556,6 @@
<string name="show_password">Show password</string>
<string name="registration_please_wait">Registration failed: Try again later</string>
<string name="registration_password_too_weak">Registration failed: Password too weak</string>
- <string name="create_conference">Create group chat</string>
<string name="conference_subject">Subject</string>
<string name="choose_participants">Choose participants</string>
<string name="creating_conference">Creating group chat…</string>
@@ -875,4 +873,18 @@
<string name="join_group_chat">Join group chat</string>
<string name="create_group_chat">Create group chat</string>
<string name="message_deleted">Message was deleted</string>
+ <string name="channel_details">Channel details</string>
+ <string name="join_public_channel">Join public channel</string>
+ <string name="create_private_group_chat">Create private group chat</string>
+ <string name="create_public_channel">Create public channel</string>
+ <string name="create_dialog_channel_name">Channel name</string>
+ <string name="xmpp_address">XMPP address</string>
+ <string name="please_enter_name">Please provide a name for the channel</string>
+ <string name="please_enter_xmpp_address">Please provide an XMPP address</string>
+ <string name="this_is_an_xmpp_address">This is an XMPP address. Please provide a name.</string>
+ <string name="creating_channel">Creating public channel…</string>
+ <string name="channel_already_exists">This channel already exits</string>
+ <string name="joined_an_existing_channel">You\'ve joined an existing channel</string>
+ <string name="unable_to_set_channel_configuration">Unable to set channel configuration</string>
+ <string name="back">Back</string>
</resources>