aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--metadata/de/description.txt4
-rw-r--r--metadata/en-US/description.txt2
-rw-r--r--src/main/AndroidManifest.xml9
-rw-r--r--src/main/java/de/pixart/messenger/services/AvatarService.java9
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java21
-rw-r--r--src/main/java/de/pixart/messenger/ui/EditAccountActivity.java30
-rw-r--r--src/main/java/de/pixart/messenger/ui/EnterNameActivity.java80
-rw-r--r--src/main/java/de/pixart/messenger/utils/MimeUtils.java8
-rw-r--r--src/main/res/layout/activity_edit_account.xml52
-rw-r--r--src/main/res/layout/activity_enter_name.xml63
-rw-r--r--src/main/res/layout/activity_muc_details.xml67
-rw-r--r--src/main/res/values/strings.xml7
-rw-r--r--src/main/res/values/styles.xml4
14 files changed, 319 insertions, 39 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1bf71abf9..29509ca8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,7 @@
* make PEP avatars public to play nice with Prosody 0.11
* fixed re-sending failed files in group chats
* OMEMO stability improvements
-* context menu wen long pressing avatar in 1:1 chat
+* context menu when long pressing avatar in 1:1 chat
* synchronize group chat join/leaves across multiple clients
* fixed sending PGP encrypted messages from quick reply
* bug fixes
diff --git a/metadata/de/description.txt b/metadata/de/description.txt
index 695fb1115..4efc4c443 100644
--- a/metadata/de/description.txt
+++ b/metadata/de/description.txt
@@ -1,4 +1,4 @@
-Pix-Art Messenger ist ein Fork der offiziellen Android-App <a href="https://f-droid.org/packages/eu.siacs.conversations/">Conversations</a> mit
+Pix-Art Messenger ist ein Fork der offiziellen Android-App <a href="https://f-droid.org/packages/eu.siacs.conversations/">Conversations</a> mit
einigen Änderungen, insbesondere zur Verbesserung der Benutzerfreundlichkeit,
um den Umstieg von oftmals vorinstallierten Messengern zu erleichtern.
@@ -26,4 +26,4 @@ Features:
* Status Nachrichten
* tägliches Backup der Datenbank auf den lokalen Speicher
-Benötigst du Hilfe? Bitte tritt doch einfach dem Support Gruppenchat <a href="xmpp:support@room.pix-art.de?join">support@room.pix-art.de</a> bei.
+Benötigst du Hilfe? Bitte tritt doch einfach dem Support Gruppenchat <a href="https://jabber.pix-art.de/j/support/room.pix-art.de">support@room.pix-art.de</a> bei.
diff --git a/metadata/en-US/description.txt b/metadata/en-US/description.txt
index 0e7f9ab08..6418f4616 100644
--- a/metadata/en-US/description.txt
+++ b/metadata/en-US/description.txt
@@ -23,4 +23,4 @@ Features:
* Status messages
* Daily backup of database to local storage
-You need help? Please join our support group chat <a href="xmpp:support@room.pix-art.de?join">support@room.pix-art.de</a>.
+You need help? Please join our support group chat <a href="https://jabber.pix-art.de/j/support/room.pix-art.de">support@room.pix-art.de</a>.
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index fcfee6479..ec4d4c154 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -241,7 +241,7 @@
<activity
android:name=".ui.MediaViewerActivity"
android:configChanges="orientation|screenSize"
- android:theme="@style/ConversationsTheme.FullScreen"></activity>
+ android:theme="@style/ConversationsTheme.FullScreen" />
<activity
android:name=".ui.TrustKeysActivity"
android:label="@string/trust_omemo_fingerprints"
@@ -263,7 +263,7 @@
android:configChanges="orientation|screenSize"
android:label="@string/title_activity_updater"
android:launchMode="singleTask"
- android:theme="@style/ConversationsTheme"></activity>
+ android:theme="@style/ConversationsTheme" />
<activity
android:name=".ui.ShortcutActivity"
android:label="@string/contact">
@@ -275,10 +275,13 @@
android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat" />
<activity android:name=".ui.MemorizingActivity" />
-
<activity
android:name=".ui.MediaBrowserActivity"
android:label="@string/media_browser" />
+ <activity
+ android:name=".ui.EnterNameActivity"
+ android:label="@string/enter_your_name"
+ android:launchMode="singleTask" />
<service android:name=".services.ExportLogsService" />
<service
diff --git a/src/main/java/de/pixart/messenger/services/AvatarService.java b/src/main/java/de/pixart/messenger/services/AvatarService.java
index bd157f442..edc0a2e67 100644
--- a/src/main/java/de/pixart/messenger/services/AvatarService.java
+++ b/src/main/java/de/pixart/messenger/services/AvatarService.java
@@ -236,7 +236,7 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
if (bookmark.getConversation() != null) {
return get(bookmark.getConversation(), size, cachedOnly);
} else {
- final Jid jid = bookmark.getFullJid();
+ Jid jid = bookmark.getJid();
Account account = bookmark.getAccount();
Contact contact = jid == null ? null : account.getRoster().getContact(jid);
if (contact != null && contact.getAvatarFilename() != null) {
@@ -407,8 +407,13 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
}
avatar = mXmppConnectionService.getFileBackend().getAvatar(account.getAvatar(), size);
if (avatar == null) {
+ final String displayName = account.getDisplayName();
final String jid = account.getJid().asBareJid().toEscapedString();
- avatar = get(jid, null, size, false);
+ if (QuickConversationsService.isQuicksy() && !TextUtils.isEmpty(displayName)) {
+ avatar = get(displayName, jid, size, false);
+ } else {
+ avatar = get(jid, null, size, false);
+ }
}
mXmppConnectionService.getBitmapCache().put(KEY, avatar);
return avatar;
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
index 583f3d3ad..7c9a5830b 100644
--- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
@@ -25,6 +25,7 @@ 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;
@@ -332,6 +333,14 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
this.binding.mucEditTitle.addTextChangedListener(this);
this.binding.mucEditSubject.addTextChangedListener(this);
this.binding.mucEditSubject.addTextChangedListener(new StylingHelper.MessageEditorStyler(this.binding.mucEditSubject));
+ this.binding.autojoinCheckbox.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ final Bookmark bookmark = mConversation.getBookmark();
+ if (bookmark != null) {
+ bookmark.setAutojoin(this.binding.autojoinCheckbox.isChecked());
+ xmppConnectionService.pushBookmarks(bookmark.getAccount());
+ updateView();
+ }
+ });
mMediaAdapter = new MediaAdapter(this, R.dimen.media_size);
this.binding.media.setAdapter(mMediaAdapter);
GridManager.setupLayoutManager(this, this.binding.media, R.dimen.media_size);
@@ -551,6 +560,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
return;
}
final MucOptions mucOptions = mConversation.getMucOptions();
+ final Bookmark bookmark = mConversation.getBookmark();
final User self = mucOptions.getSelf();
String account;
if (Config.DOMAIN_LOCK != null) {
@@ -559,7 +569,6 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
account = mConversation.getAccount().getJid().asBareJid().toString();
}
-
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());
@@ -614,6 +623,16 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
} else {
this.binding.mucInfoMam.setText(R.string.server_info_unavailable);
}
+ if (bookmark != null) {
+ this.binding.autojoinCheckbox.setVisibility(View.VISIBLE);
+ if (bookmark.autojoin()) {
+ this.binding.autojoinCheckbox.setChecked(true);
+ } else {
+ this.binding.autojoinCheckbox.setChecked(false);
+ }
+ } else {
+ this.binding.autojoinCheckbox.setVisibility(View.GONE);
+ }
if (self.getAffiliation().ranks(MucOptions.Affiliation.OWNER)) {
if (mAdvancedMode) {
this.binding.destroy.getBackground().setColorFilter(getWarningButtonColor(), PorterDuff.Mode.MULTIPLY);
diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
index 123591b03..d04289d22 100644
--- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java
@@ -593,6 +593,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
this.binding.port.addTextChangedListener(mTextWatcher);
this.binding.saveButton.setOnClickListener(this.mSaveButtonClickListener);
this.binding.cancelButton.setOnClickListener(this.mCancelButtonClickListener);
+ this.binding.actionEditYourName.setOnClickListener(this::onEditYourNameClicked);
if (savedInstanceState != null && savedInstanceState.getBoolean("showMoreTable")) {
changeMoreTableVisibility(true);
}
@@ -617,6 +618,21 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
});
}
+ private void onEditYourNameClicked(View view) {
+ quickEdit(mAccount.getDisplayName(), R.string.your_name, value -> {
+ final String displayName = value.trim();
+ updateDisplayName(displayName);
+ mAccount.setDisplayName(displayName);
+ xmppConnectionService.publishDisplayName(mAccount);
+ refreshAvatar();
+ return null;
+ }, true);
+ }
+
+ private void refreshAvatar() {
+ binding.avater.setImageBitmap(avatarService().get(mAccount, (int) getResources().getDimension(R.dimen.avatar_on_details_screen_size)));
+ }
+
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
super.onCreateOptionsMenu(menu);
@@ -1011,6 +1027,10 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
this.binding.accountJid.setEnabled(editable);
this.binding.accountJid.setFocusable(editable);
this.binding.accountJid.setFocusableInTouchMode(editable);
+ this.binding.accountJid.setCursorVisible(editable);
+
+ final String displayName = mAccount.getDisplayName();
+ updateDisplayName(displayName);
final boolean tooglePassword = mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE) || !mAccount.isOptionSet(Account.OPTION_LOGGED_IN_SUCCESSFULLY);
final boolean editPassword = !mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE) || (!mAccount.isOptionSet(Account.OPTION_LOGGED_IN_SUCCESSFULLY) && QuickConversationsService.isConversations()) || mAccount.getLastErrorStatus() == Account.State.UNAUTHORIZED;
@@ -1228,6 +1248,16 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
return "0";
}
+ private void updateDisplayName(String displayName) {
+ if (TextUtils.isEmpty(displayName)) {
+ this.binding.yourName.setText(R.string.no_name_set_instructions);
+ this.binding.yourName.setTextAppearance(this, R.style.TextAppearance_Conversations_Body1_Tertiary);
+ } else {
+ this.binding.yourName.setText(displayName);
+ this.binding.yourName.setTextAppearance(this, R.style.TextAppearance_Conversations_Body1);
+ }
+ }
+
private void removeErrorsOnAllBut(TextInputLayout exception) {
if (this.binding.accountJidLayout != exception) {
this.binding.accountJidLayout.setErrorEnabled(false);
diff --git a/src/main/java/de/pixart/messenger/ui/EnterNameActivity.java b/src/main/java/de/pixart/messenger/ui/EnterNameActivity.java
new file mode 100644
index 000000000..ac400b9f3
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/ui/EnterNameActivity.java
@@ -0,0 +1,80 @@
+package de.pixart.messenger.ui;
+
+import android.content.Intent;
+import android.databinding.DataBindingUtil;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import de.pixart.messenger.R;
+import de.pixart.messenger.databinding.ActivityEnterNameBinding;
+import de.pixart.messenger.entities.Account;
+import de.pixart.messenger.services.XmppConnectionService;
+import de.pixart.messenger.utils.AccountUtils;
+
+public class EnterNameActivity extends XmppActivity implements XmppConnectionService.OnAccountUpdate {
+
+ private ActivityEnterNameBinding binding;
+
+ private Account account;
+
+ private AtomicBoolean setNick = new AtomicBoolean(false);
+
+ @Override
+ protected void onCreate(final Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ this.binding = DataBindingUtil.setContentView(this, R.layout.activity_enter_name);
+ setSupportActionBar((Toolbar) this.binding.toolbar);
+ this.binding.next.setOnClickListener(this::next);
+ this.setNick.set(savedInstanceState != null && savedInstanceState.getBoolean("set_nick",false));
+ }
+
+ private void next(View view) {
+ if (account != null) {
+
+ String name = this.binding.name.getText().toString().trim();
+
+ account.setDisplayName(name);
+
+ xmppConnectionService.publishDisplayName(account);
+
+ Intent intent = new Intent(this, PublishProfilePictureActivity.class);
+ intent.putExtra(PublishProfilePictureActivity.EXTRA_ACCOUNT, account.getJid().asBareJid().toEscapedString());
+ intent.putExtra("setup", true);
+ startActivity(intent);
+ }
+ finish();
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle savedInstanceState) {
+ savedInstanceState.putBoolean("set_nick", this.setNick.get());
+ super.onSaveInstanceState(savedInstanceState);
+ }
+
+ @Override
+ protected void refreshUiReal() {
+ checkSuggestPreviousNick();
+ }
+
+ @Override
+ void onBackendConnected() {
+ this.account = AccountUtils.getFirst(xmppConnectionService);
+ checkSuggestPreviousNick();
+ }
+
+ private void checkSuggestPreviousNick() {
+ String displayName = this.account == null ? null : this.account.getDisplayName();
+ if (displayName != null) {
+ if (setNick.compareAndSet(false, true) && this.binding.name.getText().length() == 0) {
+ this.binding.name.getText().append(displayName);
+ }
+ }
+ }
+
+ @Override
+ public void onAccountUpdate() {
+ refreshUi();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/de/pixart/messenger/utils/MimeUtils.java b/src/main/java/de/pixart/messenger/utils/MimeUtils.java
index 0babfdf9d..431cde39a 100644
--- a/src/main/java/de/pixart/messenger/utils/MimeUtils.java
+++ b/src/main/java/de/pixart/messenger/utils/MimeUtils.java
@@ -69,6 +69,8 @@ public final class MimeUtils {
add("application/rdf+xml", "rdf");
add("application/rss+xml", "rss");
add("application/zip", "zip");
+ add("application/gzip", "gz");
+ add("application/gzip", "tgz");
add("application/vnd.amazon.mobi8-ebook","azw3");
add("application/vnd.amazon.mobi8-ebook","azw");
add("application/vnd.amazon.mobi8-ebook","kfx");
@@ -478,7 +480,7 @@ public final class MimeUtils {
* Returns the MIME type for the given extension.
*
* @param extension A file extension without the leading '.'
- * @return The MIME type for the given extension or null iff there is none.
+ * @return The MIME type for the given extension or null if there is none.
*/
public static String guessMimeTypeFromExtension(String extension) {
if (extension == null || extension.isEmpty()) {
@@ -491,7 +493,7 @@ public final class MimeUtils {
* Returns true if the given extension has a registered MIME type.
*
* @param extension A file extension without the leading '.'
- * @return True iff there is an extension entry in the map.
+ * @return True if there is an extension entry in the map.
*/
public static boolean hasExtension(String extension) {
if (extension == null || extension.isEmpty()) {
@@ -506,7 +508,7 @@ public final class MimeUtils {
* common extension for the given MIME type.
*
* @param mimeType A MIME type (i.e. text/plain)
- * @return The extension for the given MIME type or null iff there is none.
+ * @return The extension for the given MIME type or null if there is none.
*/
public static String guessExtensionFromMimeType(String mimeType) {
if (mimeType == null || mimeType.isEmpty()) {
diff --git a/src/main/res/layout/activity_edit_account.xml b/src/main/res/layout/activity_edit_account.xml
index 56d108b68..163fe270a 100644
--- a/src/main/res/layout/activity_edit_account.xml
+++ b/src/main/res/layout/activity_edit_account.xml
@@ -42,11 +42,57 @@
android:layout_height="wrap_content"
android:padding="@dimen/card_padding_regular">
+ <RelativeLayout
+ android:id="@+id/your_name_box"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_alignParentTop="true"
+ android:layout_marginBottom="@dimen/activity_vertical_margin">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_centerVertical="true"
+ android:layout_toStartOf="@+id/action_edit_your_name"
+ android:layout_toLeftOf="@+id/action_edit_your_name"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/your_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/no_name_set_instructions"
+ android:textAppearance="@style/TextAppearance.Conversations.Body1.Tertiary" />
+
+ <TextView
+ android:id="@+id/your_name_desc"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/your_name"
+ android:textAppearance="@style/TextAppearance.Conversations.Caption" />
+ </LinearLayout>
+
+ <ImageButton
+ android:id="@+id/action_edit_your_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:alpha="?attr/icon_alpha"
+ android:background="?attr/selectableItemBackgroundBorderless"
+ android:padding="@dimen/image_button_padding"
+ android:src="?attr/icon_edit_body"
+ android:visibility="visible" />
+ </RelativeLayout>
+
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avater"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
+ android:layout_below="@id/your_name_box"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/avatar_item_distance"
android:adjustViewBounds="true"
@@ -513,6 +559,10 @@
</TableRow>
</TableLayout>
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="8dp" />
+
<RelativeLayout
android:id="@+id/pgp_fingerprint_box"
android:layout_width="wrap_content"
diff --git a/src/main/res/layout/activity_enter_name.xml b/src/main/res/layout/activity_enter_name.xml
new file mode 100644
index 000000000..cb446479d
--- /dev/null
+++ b/src/main/res/layout/activity_enter_name.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/toolbar"
+ layout="@layout/toolbar" />
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:id="@+id/instructions"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:padding="16dp"
+ android:text="@string/enter_your_name_instructions"
+ android:textAppearance="@style/TextAppearance.Conversations.Body1" />
+
+ <LinearLayout
+ android:id="@+id/name_box"
+ android:layout_width="256dp"
+ android:layout_height="wrap_content"
+ android:layout_above="@+id/next"
+ android:layout_below="@+id/instructions"
+ android:layout_centerHorizontal="true"
+ android:orientation="vertical">
+
+ <EditText
+ android:id="@+id/name"
+ style="@style/Widget.Conversations.EditText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/your_name"
+ android:imeOptions="flagNoExtractUi"
+ android:longClickable="false" />
+
+ </LinearLayout>
+
+ <Button
+ android:id="@+id/next"
+ style="@style/Widget.Conversations.Button.Borderless"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentBottom="true"
+ android:text="@string/next"
+ android:textColor="?colorAccent" />
+ </RelativeLayout>
+ </ScrollView>
+ </LinearLayout>
+</layout> \ No newline at end of file
diff --git a/src/main/res/layout/activity_muc_details.xml b/src/main/res/layout/activity_muc_details.xml
index 04198908a..d93d737e6 100644
--- a/src/main/res/layout/activity_muc_details.xml
+++ b/src/main/res/layout/activity_muc_details.xml
@@ -222,36 +222,55 @@
<RelativeLayout
android:id="@+id/muc_info_more"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
- <TextView
+ <CheckBox
+ android:id="@+id/autojoin_checkbox"
+ style="@style/Widget.Conversations.CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
- android:layout_toStartOf="@+id/muc_info_mam"
- android:layout_toLeftOf="@+id/muc_info_mam"
- android:ellipsize="end"
- android:singleLine="true"
- android:text="@string/server_info_mam"
+ android:layout_marginStart="-6dp"
+ android:layout_marginLeft="-6dp"
+ android:layout_marginTop="4dp"
+ android:text="@string/autojoin_groupchat"
android:textAppearance="@style/TextAppearance.Conversations.Body1" />
- <TextView
- android:id="@+id/muc_info_mam"
- style="?android:attr/buttonStyleSmall"
- android:layout_width="wrap_content"
+ <RelativeLayout
+ android:id="@+id/mam_box"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:layout_centerVertical="true"
- android:layout_gravity="center_horizontal"
- android:background="?attr/selectableItemBackgroundBorderless"
- android:padding="@dimen/image_button_padding"
- android:paddingStart="4dp"
- android:paddingLeft="4dp"
- android:textAppearance="@style/TextAppearance.Conversations.Body1" />
+ android:layout_below="@+id/autojoin_checkbox">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_centerVertical="true"
+ android:layout_toStartOf="@+id/muc_info_mam"
+ android:layout_toLeftOf="@+id/muc_info_mam"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:text="@string/server_info_mam"
+ android:textAppearance="@style/TextAppearance.Conversations.Body1" />
+
+ <TextView
+ android:id="@+id/muc_info_mam"
+ style="?android:attr/buttonStyleSmall"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_gravity="center_horizontal"
+ android:background="?attr/selectableItemBackgroundBorderless"
+ android:padding="@dimen/image_button_padding"
+ android:paddingStart="4dp"
+ android:paddingLeft="4dp"
+ android:textAppearance="@style/TextAppearance.Conversations.Body1" />
+ </RelativeLayout>
</RelativeLayout>
</LinearLayout>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 1fcd8c745..015a2a6c6 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -842,7 +842,7 @@
<string name="device_does_not_support_unknown_source_op">Your device does not support allowing app installs from unknon sources.</string>
<string name="reject_request">Reject request</string>
<string name="error_message_copied_to_clipboard">Copied error message to clipboard</string>
- <string name="pref_screen_security_summary">Treat the content as secure and preventing it from appearing in screenshots.</string>
+ <string name="pref_screen_security_summary">Treat the content as secure and prevent it from appearing in screenshots.</string>
<string name="pref_screen_security">Forbid screenshots</string>
<string name="omemo_decryption_failed">Failed to decrypt OMEMO message.</string>
<string name="install_orbot">Install Orbot</string>
@@ -850,4 +850,9 @@
<string name="no_market_app_installed">No market app installed.</string>
<string name="group_chat_will_make_your_jabber_id_public">This group chat will make your Jabber ID public</string>
<string name="ebook">e-book</string>
+ <string name="your_name">Your name</string>
+ <string name="enter_your_name">Enter your name</string>
+ <string name="enter_your_name_instructions">Please enter your nickname which will be visible to your contacts.</string>
+ <string name="no_name_set_instructions">No nickname set.</string>
+ <string name="autojoin_groupchat">Automatically join this group chat</string>
</resources>
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index 3f693fccc..4418706e1 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -67,6 +67,10 @@
<item name="android:textColor">?android:textColorSecondary</item>
</style>
+ <style name="TextAppearance.Conversations.Body1.Tertiary" parent="TextAppearance.Conversations.Body1">
+ <item name="android:textColor">?android:textColorTertiary</item>
+ </style>
+
<style name="TextAppearance.Conversations.Fingerprint" parent="TextAppearance.Conversations.Body1">
<item name="android:fontFamily" tools:targetApi="jelly_bean">monospace</item>
<item name="android:typeface">monospace</item>