diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt
index 199aa0ecb430e314a6460b2e3aa970c654033668..dfc658997216c8e709e1109abf67a3bee660651a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt
@@ -170,6 +170,10 @@ class MessageAdapter @Inject constructor(
     @JvmField
     var name: TextView? = null
 
+    @BindView(R.id.realname)
+    @JvmField
+    var realname: TextView? = null
+
     @BindView(R.id.content)
     @JvmField
     var content: TextView? = null
@@ -230,6 +234,7 @@ class MessageAdapter @Inject constructor(
       timeLeft?.text = message.time
       timeRight?.text = message.time
       name?.text = message.name
+      realname?.text = message.realName
       content?.text = message.content
       combined?.text = message.combined
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
index 530a75e664f9ced304d7d74ce9292f39f561039e..1bfd6538d9230af8ebeaa3203032f5c802f18f16 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
@@ -90,6 +90,7 @@ class QuasselMessageRenderer @Inject constructor(
         viewHolder.timeLeft?.setTextColor(getColor(0, 0))
         viewHolder.timeRight?.setTextColor(getColor(0, 0))
         viewHolder.name?.setTextColor(getColor(0, 0))
+        viewHolder.realname?.setTextColor(getColor(0, 0))
         viewHolder.combined?.setTextColor(getColor(0, 0))
         viewHolder.content?.setTextColor(getColor(0, 0))
         viewHolder.itemView.background = LayerDrawable(
@@ -114,6 +115,7 @@ class QuasselMessageRenderer @Inject constructor(
     avatarPlaceholder?.visibleIf(messageSettings.showAvatars && messageSettings.nicksOnNewLine)
     val separateLine = viewHolder.content != null && viewHolder.name != null && messageSettings.nicksOnNewLine
     viewHolder.name?.visibleIf(separateLine && !isFollowUp)
+    viewHolder.realname?.visibleIf(separateLine && !isFollowUp && messageSettings.showRealNames && messageSettings.nicksOnNewLine)
     viewHolder.content?.visibleIf(separateLine)
     viewHolder.combined?.visibleIf(!separateLine)
 
@@ -124,6 +126,7 @@ class QuasselMessageRenderer @Inject constructor(
     viewHolder.timeLeft?.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize)
     viewHolder.timeRight?.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize * 0.9f)
     viewHolder.name?.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize)
+    viewHolder.realname?.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize)
     val contentSize = if (messageSettings.largerEmoji && isEmoji) textSize * 2f else textSize
     viewHolder.content?.setTextSize(TypedValue.COMPLEX_UNIT_SP, contentSize)
     viewHolder.combined?.setTextSize(TypedValue.COMPLEX_UNIT_SP, contentSize)
@@ -225,10 +228,6 @@ class QuasselMessageRenderer @Inject constructor(
             highlight,
             messageSettings.showHostmaskPlain && messageSettings.nicksOnNewLine
           ))
-          if (messageSettings.showRealNames) {
-            append(" ")
-            append(realName)
-          }
         }
         val content = contentFormatter.format(mircColors, message.content.content, highlight)
         val nickName = HostmaskHelper.nick(message.content.sender)
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt
index f32d01c1e16ec9e45aa5c7988432b4359ae6fa19..704051d51e8cd4a10939ce46819c9f2c51850a4a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/MinimumActivityAdapter.kt
@@ -30,7 +30,7 @@ class MinimumActivityAdapter(val data: List<MinimumActivityItem>) :
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return MinimumActivityViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
index ec292d7ef1e1856dc494787a1ea7d6a5ea2c5b5f..c557b753774ee78166f229cd25ce6bbbfa740a44 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
@@ -36,7 +36,7 @@ class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return NetworkViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragment.kt
index f94e0cf52a0eb2fc9b076532a70cf0d4c4cc740c..ebadca8a18929b13f10e7d4d5e1fef568cbbb3ee 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightListFragment.kt
@@ -83,7 +83,7 @@ class HighlightListFragment : SettingsFragment(), SettingsFragment.Savable,
     newHighlightIgnoreRule.setOnClickListener {
       startActivityForResult(
         HighlightRuleActivity.intent(requireContext(), ignore = true),
-        REQUEST_CREATE_RULE
+        REQUEST_CREATE_IGNORE_RULE
       )
     }
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightNickTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightNickTypeAdapter.kt
index 8a2802d55d8ffe1ebeab542f728ebf493798af0c..4d73977406811367900c1e07f0856923e7b2b521 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightNickTypeAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightlist/HighlightNickTypeAdapter.kt
@@ -30,7 +30,7 @@ class HighlightNickTypeAdapter(val data: List<HighlightNickTypeItem>) :
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return HighlightNickTypeViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt
index 81cb99315f477cfdda8722fc7db752f833280810..4d7463b4c18998ede1319befef324d22da8c6e23 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt
@@ -21,7 +21,7 @@ class HighlightRuleActivity : ServiceBoundSettingsActivity(HighlightRuleFragment
       if (rule != null) {
         putExtra("item", rule)
       }
-      putExtra("ignore", ignore)
+      putExtra("inverse", ignore)
     }
   }
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt
index 7b158bb37b288178f3826f3306d442981b9f6cde..9270e528e823b049714e9f7dd1371c5493011698 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt
@@ -62,7 +62,7 @@ class HighlightRuleFragment : SettingsFragment(), SettingsFragment.Savable,
   }
 
   private fun applyChanges() = HighlightRuleManager.HighlightRule(
-    isInverse = rule?.isInverse ?: isInverse ?: false,
+    isInverse = isInverse ?: rule?.isInverse ?: false,
     isEnabled = enabled.isChecked,
     name = name.text.toString(),
     isRegEx = isRegex.isChecked,
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt
index c8ba877ace2ce861af82a5ad6ff61b6f5e8a741f..64a96651937c4411b3c73405e546b5a975ba1eb5 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/IgnoreTypeAdapter.kt
@@ -30,7 +30,7 @@ class IgnoreTypeAdapter(val data: List<IgnoreTypeItem>) :
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return IgnoreTypeViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt
index 58762ec9d227bebc26609bb7a9de1b613eb264cf..4fbc95816df8b8d2f7dd46f82c856c36e19fe8a3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/ScopeTypeAdapter.kt
@@ -30,7 +30,7 @@ class ScopeTypeAdapter(val data: List<ScopeTypeItem>) :
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return ScopeTypeViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt
index 59712d6a8e5170f5983a6c12b6f487c0c03ad357..ab0d219801b2f9f6cc59eebfdd600ec12768bb2c 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/ignoreitem/StrictnessTypeAdapter.kt
@@ -30,7 +30,7 @@ class StrictnessTypeAdapter(val data: List<StrictnessTypeItem>) :
       else
         parent.context
     )
-    val view = inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+    val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     return StrictnessTypeViewHolder(
       view
     )
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/IdentityAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/IdentityAdapter.kt
index 385c9e3fd533a77f4c0548c871f9f3cef70c4a59..1154071f1e1303054ecee2e066906fd86cb9ceb7 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/IdentityAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/IdentityAdapter.kt
@@ -33,7 +33,7 @@ class IdentityAdapter : RecyclerSpinnerAdapter<IdentityAdapter.NetworkViewHolder
     val inflater = LayoutInflater.from(
       if (dropDown) ContextThemeWrapper(parent.context, dropDownViewTheme) else parent.context
     )
-    return NetworkViewHolder(inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false))
+    return NetworkViewHolder(inflater.inflate(R.layout.widget_spinner_item_inline, parent, false))
   }
 
   fun indexOf(id: NetworkId): Int? {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt
index adb22bf5dbb3b7e975cf1e726d2c70db77dc9248..b2871823350d38e5c98556e39bd6d98be636d947 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkserver/ProxyTypeAdapter.kt
@@ -28,7 +28,7 @@ class ProxyTypeAdapter(val data: List<ProxyTypeItem>) :
       else parent.context
     )
     return ProxyTypeViewHolder(
-      inflater.inflate(R.layout.widget_spinner_item_toolbar, parent, false)
+      inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
     )
   }
 
diff --git a/app/src/main/res/drawable-ldrtl/ic_send.xml b/app/src/main/res/drawable-ldrtl/ic_send.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ae9f4b703dbeb3c63542ab4d14e8abc16ca894b8
--- /dev/null
+++ b/app/src/main/res/drawable-ldrtl/ic_send.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+  android:width="24dp"
+  android:height="24dp"
+  android:viewportHeight="24"
+  android:viewportWidth="24">
+  <path
+    android:fillColor="#000"
+    android:pathData="M22,21L1,12L22,3V10L7,12L22,14V21Z" />
+</vector>
diff --git a/app/src/main/res/layout-land/layout_main.xml b/app/src/main/res/layout-land/layout_main.xml
index 9c4f28b83aef80f1a17f915b7fd4f522c4cf4fed..866fc7793f9031944bea2ed573e9611059c48a1d 100644
--- a/app/src/main/res/layout-land/layout_main.xml
+++ b/app/src/main/res/layout-land/layout_main.xml
@@ -31,7 +31,8 @@
       android:id="@+id/autocomplete_list"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:background="?colorBackgroundCard" />
+      android:background="?colorBackgroundCard"
+      tools:listitem="@layout/widget_nick" />
   </LinearLayout>
 
   <fragment
diff --git a/app/src/main/res/layout-sw600dp-land/layout_main.xml b/app/src/main/res/layout-sw600dp-land/layout_main.xml
index c88d225cd1728106ce5bf334b7f4eb2490f41dc7..0bc7b1c06eb4004a200ecd7a5d67b30adfacfddf 100644
--- a/app/src/main/res/layout-sw600dp-land/layout_main.xml
+++ b/app/src/main/res/layout-sw600dp-land/layout_main.xml
@@ -36,7 +36,8 @@
         android:id="@+id/autocomplete_list"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="?colorBackgroundCard" />
+        android:background="?colorBackgroundCard"
+        tools:listitem="@layout/widget_nick" />
 
     </LinearLayout>
 
diff --git a/app/src/main/res/layout-sw600dp-land/setup_slide.xml b/app/src/main/res/layout-sw600dp-land/setup_slide.xml
index 7a87d1c4f7039699f76d90b6a5e931e553928baa..8f5ea5b424d7bf99c2d6c30d77022bfda440e515 100644
--- a/app/src/main/res/layout-sw600dp-land/setup_slide.xml
+++ b/app/src/main/res/layout-sw600dp-land/setup_slide.xml
@@ -17,7 +17,8 @@
 
     <TextView
       android:id="@+id/title"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="end"
       android:gravity="end"
@@ -32,7 +33,8 @@
 
     <TextView
       android:id="@+id/description"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="end"
       android:gravity="end"
diff --git a/app/src/main/res/layout-sw600dp/setup_slide.xml b/app/src/main/res/layout-sw600dp/setup_slide.xml
index 391f91a05f027f52f1152c214b48d532c95afe01..a4790d005375c28e55ba7b1ef0b7818f971f5a55 100644
--- a/app/src/main/res/layout-sw600dp/setup_slide.xml
+++ b/app/src/main/res/layout-sw600dp/setup_slide.xml
@@ -21,7 +21,8 @@
 
       <TextView
         android:id="@+id/title"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="8dp"
         android:textColor="?android:attr/textColorPrimaryInverse"
@@ -30,7 +31,8 @@
 
       <TextView
         android:id="@+id/description"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="?android:attr/textColorSecondaryInverse"
         android:textSize="16sp"
diff --git a/app/src/main/res/layout/fragment_chat_list.xml b/app/src/main/res/layout/fragment_chat_list.xml
index eaf8628d870ab521ecb1e7a73379b05a72263885..a03034ff37756a737aca03a36385b76dcca7e3a9 100644
--- a/app/src/main/res/layout/fragment_chat_list.xml
+++ b/app/src/main/res/layout/fragment_chat_list.xml
@@ -19,9 +19,11 @@
 
       <android.support.v7.widget.AppCompatSpinner
         android:id="@+id/chatListSpinner"
+        style="@style/Widget.FullWidthSpinner"
         android:layout_width="fill_parent"
         android:layout_height="match_parent"
-        app:popupTheme="?attr/actionBarPopupTheme" />
+        app:popupTheme="?attr/actionBarPopupTheme"
+        tools:listitem="@layout/widget_spinner_item_toolbar" />
 
     </android.support.v7.widget.Toolbar>
 
diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml
index ee13a2287cf686b2c10a14933bb914dc009a7f6f..14efddecee42e4b9b682602a4f958a0f2b1756ab 100644
--- a/app/src/main/res/layout/fragment_toolbar.xml
+++ b/app/src/main/res/layout/fragment_toolbar.xml
@@ -17,32 +17,33 @@
   <LinearLayout
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_gravity="center_vertical"
+    android:layout_gravity="center_vertical|start"
     android:layout_marginTop="-2dp"
-    android:baselineAligned="false"
-    android:gravity="center_vertical">
+    android:baselineAligned="false">
 
     <TextView
       android:id="@+id/key"
-      style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="16dp"
       android:layout_height="16dp"
       android:layout_marginEnd="2dp"
       android:layout_marginRight="2dp"
       android:layout_marginTop="2dp"
       android:gravity="center"
+      android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
       android:textSize="16sp"
       android:visibility="gone" />
 
     <TextView
       android:id="@+id/toolbar_title"
-      style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:ellipsize="end"
       android:gravity="center_vertical"
       android:singleLine="true"
-      android:text="@string/app_name" />
+      android:text="@string/app_name"
+      android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" />
 
   </LinearLayout>
 
@@ -55,4 +56,4 @@
     android:ellipsize="end"
     android:singleLine="true"
     android:visibility="gone" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/layout_editor.xml b/app/src/main/res/layout/layout_editor.xml
index 3bd7eb0ef4c5f7bfa7fa5804629bbc10f7a27787..1a9c02a621e3c23897c143abdef0ac7db8c388bb 100644
--- a/app/src/main/res/layout/layout_editor.xml
+++ b/app/src/main/res/layout/layout_editor.xml
@@ -30,6 +30,7 @@
 
     <de.kuschku.quasseldroid.ui.chat.input.RichEditText
       android:id="@+id/chatline"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="@android:color/transparent"
@@ -65,7 +66,8 @@
     android:id="@+id/autocomplete_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    app:layout_constraintBottom_toTopOf="@+id/formatting_toolbar_container" />
+    app:layout_constraintBottom_toTopOf="@+id/formatting_toolbar_container"
+    tools:listitem="@layout/widget_nick" />
 
   <android.support.design.widget.AppBarLayout
     android:id="@+id/formatting_toolbar_container"
diff --git a/app/src/main/res/layout/layout_history.xml b/app/src/main/res/layout/layout_history.xml
index 2a35012d5da832600c4a0de67fa7a5d801d19a64..fe443edc8aa11778c8d2b7bbbcba8f10b978f658 100644
--- a/app/src/main/res/layout/layout_history.xml
+++ b/app/src/main/res/layout/layout_history.xml
@@ -27,21 +27,26 @@
         android:orientation="horizontal">
 
         <TextView
-          android:layout_width="0dip"
+          style="@style/Widget.RtlConformTextView"
+          android:layout_width="wrap_content"
           android:layout_height="match_parent"
-          android:layout_weight="1"
-          android:gravity="center_vertical|fill_horizontal"
+          android:gravity="center_vertical|start"
           android:paddingLeft="16dp"
           android:paddingRight="16dp"
           android:text="@string/label_input_history"
           android:textAppearance="@style/TextAppearance.AppCompat.Body2"
           android:textColor="?attr/colorForegroundSecondary" />
 
+        <Space
+          android:layout_width="0dip"
+          android:layout_height="match_parent"
+          android:layout_weight="1" />
+
         <android.support.v7.widget.AppCompatImageView
           android:id="@+id/send"
           android:layout_width="48dp"
           android:layout_height="48dp"
-          android:layout_gravity="top"
+          android:layout_gravity="top|end"
           android:background="?attr/selectableItemBackgroundBorderless"
           android:padding="12dp"
           android:scaleType="fitXY"
@@ -56,4 +61,4 @@
         tools:listitem="@layout/widget_history_message" />
     </LinearLayout>
   </android.support.v7.widget.CardView>
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
diff --git a/app/src/main/res/layout/layout_main.xml b/app/src/main/res/layout/layout_main.xml
index b57db18f84b265832602f7cf1c27fb2a58889c63..1296b5dbde44e9231c5549510f07da8eab2933d6 100644
--- a/app/src/main/res/layout/layout_main.xml
+++ b/app/src/main/res/layout/layout_main.xml
@@ -36,7 +36,8 @@
         android:id="@+id/autocomplete_list"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="?colorBackgroundCard" />
+        android:background="?colorBackgroundCard"
+        tools:listitem="@layout/widget_nick" />
     </LinearLayout>
 
     <fragment
diff --git a/app/src/main/res/layout/preference_vertical.xml b/app/src/main/res/layout/preference_vertical.xml
index 7842d33ef5cf9ee925a3a9792ecfeca59d7fb49d..9bdb63768c9ef1ea1d48e9c41d377ae2b894a0da 100644
--- a/app/src/main/res/layout/preference_vertical.xml
+++ b/app/src/main/res/layout/preference_vertical.xml
@@ -59,6 +59,7 @@
 
     <TextView
       android:id="@android:id/summary"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:maxLines="10"
diff --git a/app/src/main/res/layout/preferences_about.xml b/app/src/main/res/layout/preferences_about.xml
index 5e2048142d4df8f64c8a2aecbeca5be088abc354..482f47b315a93416b58b885cbe45423908a8bf86 100644
--- a/app/src/main/res/layout/preferences_about.xml
+++ b/app/src/main/res/layout/preferences_about.xml
@@ -19,20 +19,8 @@
       android:orientation="vertical">
 
       <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:minHeight="?android:attr/listPreferredItemHeightSmall"
-        android:paddingBottom="8dp"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
-        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
-        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
-        android:paddingStart="?android:attr/listPreferredItemPaddingLeft"
-        android:paddingTop="8dp"
-        android:text="@string/label_contributors"
-        android:textColor="?colorAccent"
-        android:textSize="16sp"
-        android:textStyle="bold" />
+        style="@style/Widget.Subhead"
+        android:text="@string/label_contributors" />
 
       <android.support.v7.widget.RecyclerView
         android:id="@+id/contributors"
@@ -50,20 +38,8 @@
       android:orientation="vertical">
 
       <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:minHeight="?android:attr/listPreferredItemHeightSmall"
-        android:paddingBottom="8dp"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingRight"
-        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
-        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
-        android:paddingStart="?android:attr/listPreferredItemPaddingLeft"
-        android:paddingTop="8dp"
-        android:text="@string/label_libraries"
-        android:textColor="?colorAccent"
-        android:textSize="16sp"
-        android:textStyle="bold" />
+        style="@style/Widget.Subhead"
+        android:text="@string/label_libraries" />
 
       <android.support.v7.widget.RecyclerView
         android:id="@+id/libraries"
diff --git a/app/src/main/res/layout/preferences_about_header.xml b/app/src/main/res/layout/preferences_about_header.xml
index 7b8c62b9fb244bca97cd13bb7875d8557fa283b8..dd93262dd75e5d476e9bcf35810f8a3512af48f7 100644
--- a/app/src/main/res/layout/preferences_about_header.xml
+++ b/app/src/main/res/layout/preferences_about_header.xml
@@ -76,10 +76,12 @@
   </android.support.v7.widget.ButtonBarLayout>
 
   <TextView
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginLeft="4dp"
     android:layout_marginRight="4dp"
-    android:text="@string/app_description_long" />
+    android:text="@string/app_description_long"
+    android:textAlignment="gravity" />
 
 </LinearLayout>
diff --git a/app/src/main/res/layout/preferences_license.xml b/app/src/main/res/layout/preferences_license.xml
index e6ec8ca96cebea61299dad65766fe9efd79943ee..3d96cb28b6b62ac5b3b442451b0e1646cd438530 100644
--- a/app/src/main/res/layout/preferences_license.xml
+++ b/app/src/main/res/layout/preferences_license.xml
@@ -7,8 +7,9 @@
 
   <TextView
     android:id="@+id/text"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:padding="16dp"
     tools:text="@string/license_apache_2" />
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
+</android.support.v4.widget.NestedScrollView>
diff --git a/app/src/main/res/layout/preferences_whitelist_certificate_item.xml b/app/src/main/res/layout/preferences_whitelist_certificate_item.xml
index d4ea0d8214c865e73f570d755248fa0b8912f53f..9e788ef8b79cc3abb93c2f5c19e693243f6c59bd 100644
--- a/app/src/main/res/layout/preferences_whitelist_certificate_item.xml
+++ b/app/src/main/res/layout/preferences_whitelist_certificate_item.xml
@@ -23,7 +23,8 @@
 
     <TextView
       android:id="@+id/fingerprint"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:textAppearanceMedium"
       android:textColor="?colorTextPrimary"
@@ -32,7 +33,8 @@
 
     <TextView
       android:id="@+id/ignore_date"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/label_whitelist_ignore_date"
       android:textAppearance="?textAppearanceListItemSecondary"
diff --git a/app/src/main/res/layout/preferences_whitelist_hostname_item.xml b/app/src/main/res/layout/preferences_whitelist_hostname_item.xml
index f6ffa942d53a5b563eb6aaf5504fc6ca5c5e4211..a20b9c44eb5699d8296e365dc61c7be2a083cf4e 100644
--- a/app/src/main/res/layout/preferences_whitelist_hostname_item.xml
+++ b/app/src/main/res/layout/preferences_whitelist_hostname_item.xml
@@ -23,7 +23,8 @@
 
     <TextView
       android:id="@+id/hostname"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:textAppearanceMedium"
       android:textColor="?colorTextPrimary"
@@ -32,7 +33,8 @@
 
     <TextView
       android:id="@+id/fingerprint"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?textAppearanceListItemSecondary"
       android:textColor="?colorTextSecondary"
diff --git a/app/src/main/res/layout/settings_aliaslist_item.xml b/app/src/main/res/layout/settings_aliaslist_item.xml
index 147ec9e941334644adefd738c2cf503195d6ad61..c62d0aa6afb5de7210a5577d24ba5e9dfc12d074 100644
--- a/app/src/main/res/layout/settings_aliaslist_item.xml
+++ b/app/src/main/res/layout/settings_aliaslist_item.xml
@@ -34,7 +34,7 @@
 
     <TextView
       android:id="@+id/name"
-      android:layout_width="match_parent"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:ellipsize="marquee"
       android:orientation="vertical"
@@ -46,10 +46,9 @@
 
     <TextView
       android:id="@+id/expansion"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
-      android:ellipsize="marquee"
-      android:singleLine="true"
       android:textAppearance="?textAppearanceListItemSecondary"
       android:textColor="?colorTextSecondary"
       tools:text="/quote away" />
diff --git a/app/src/main/res/layout/settings_chatlist.xml b/app/src/main/res/layout/settings_chatlist.xml
index 96d3cf5b929bc4d331b9a8128e9d4b7a629ff012..f6ef355e5b6601fe16ea3fc0ff9a4b7edbad8062 100644
--- a/app/src/main/res/layout/settings_chatlist.xml
+++ b/app/src/main/res/layout/settings_chatlist.xml
@@ -72,9 +72,8 @@
 
       <Spinner
         android:id="@+id/network_id"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/widget_spinner_item_toolbar" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
 
       <android.support.v7.widget.SwitchCompat
         android:id="@+id/show_status_buffer"
@@ -131,9 +130,8 @@
 
       <Spinner
         android:id="@+id/minimum_activity"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/widget_spinner_item_toolbar" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
 
       <android.support.v7.widget.SwitchCompat
         android:id="@+id/hide_inactive_buffers"
diff --git a/app/src/main/res/layout/settings_highlightlist.xml b/app/src/main/res/layout/settings_highlightlist.xml
index 0a5096f6a473ef023f0eb52dbfb265e93c02e917..4f5cbc007357a3029bb470c3133e4496b66acfce 100644
--- a/app/src/main/res/layout/settings_highlightlist.xml
+++ b/app/src/main/res/layout/settings_highlightlist.xml
@@ -6,54 +6,30 @@
   android:layout_height="match_parent"
   android:scrollbars="vertical">
 
-  <LinearLayout
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
+  <LinearLayout style="@style/Widget.CoreSettings.Wrapper">
 
     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:gravity="center_vertical"
-      android:minHeight="?listPreferredItemHeightSmall"
-      android:paddingEnd="?listPreferredItemPaddingRight"
-      android:paddingLeft="?listPreferredItemPaddingLeft"
-      android:paddingRight="?listPreferredItemPaddingRight"
-      android:paddingStart="?listPreferredItemPaddingLeft">
+      android:minHeight="48dp">
 
       <android.support.v7.widget.AppCompatImageView
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_server_network" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_highlightlist_highlight_nick"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_highlightlist_highlight_nick" />
     </LinearLayout>
 
-
     <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginLeft="72dp"
-      android:layout_marginStart="72dp"
-      android:orientation="vertical">
+      style="@style/Widget.CoreSettings.DependentGroup"
+      android:visibility="visible">
 
       <Spinner
         android:id="@+id/highlight_nick_type"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/widget_spinner_item_toolbar" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
 
       <android.support.v7.widget.SwitchCompat
         android:id="@+id/is_case_sensitive"
@@ -64,39 +40,20 @@
     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:gravity="center_vertical"
-      android:minHeight="?listPreferredItemHeightSmall"
-      android:paddingEnd="?listPreferredItemPaddingRight"
-      android:paddingLeft="?listPreferredItemPaddingLeft"
-      android:paddingRight="?listPreferredItemPaddingRight"
-      android:paddingStart="?listPreferredItemPaddingLeft">
+      android:minHeight="48dp">
 
       <android.support.v7.widget.AppCompatImageView
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_server_network" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_highlightlist_rules"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_highlightlist_rules" />
     </LinearLayout>
 
     <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginLeft="72dp"
-      android:layout_marginStart="72dp"
-      android:orientation="vertical">
+      style="@style/Widget.CoreSettings.DependentGroup"
+      android:visibility="visible">
 
       <android.support.v7.widget.RecyclerView
         android:id="@+id/highlight_rules"
@@ -121,39 +78,20 @@
     <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:gravity="center_vertical"
-      android:minHeight="?listPreferredItemHeightSmall"
-      android:paddingEnd="?listPreferredItemPaddingRight"
-      android:paddingLeft="?listPreferredItemPaddingLeft"
-      android:paddingRight="?listPreferredItemPaddingRight"
-      android:paddingStart="?listPreferredItemPaddingLeft">
+      android:minHeight="48dp">
 
       <android.support.v7.widget.AppCompatImageView
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_server_network" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_highlightlist_ignore_rules"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_highlightlist_ignore_rules" />
     </LinearLayout>
 
     <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginLeft="72dp"
-      android:layout_marginStart="72dp"
-      android:orientation="vertical">
+      style="@style/Widget.CoreSettings.DependentGroup"
+      android:visibility="visible">
 
       <android.support.v7.widget.RecyclerView
         android:id="@+id/highlight_ignore_rules"
diff --git a/app/src/main/res/layout/settings_highlightlist_rule.xml b/app/src/main/res/layout/settings_highlightlist_rule.xml
index 9bf0ae7f5252f19e8fb998f0d49464f54efde743..76cca2dc6dbeb5c1bad6d4237c42c6abc32e4727 100644
--- a/app/src/main/res/layout/settings_highlightlist_rule.xml
+++ b/app/src/main/res/layout/settings_highlightlist_rule.xml
@@ -38,7 +38,8 @@
 
       <TextView
         android:id="@+id/name"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:orientation="vertical"
@@ -50,7 +51,8 @@
 
       <TextView
         android:id="@+id/sender"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:singleLine="true"
@@ -60,7 +62,8 @@
 
       <TextView
         android:id="@+id/channel"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:singleLine="true"
@@ -77,6 +80,7 @@
       android:paddingEnd="?listPreferredItemPaddingRight"
       android:paddingLeft="?listPreferredItemPaddingLeft"
       android:paddingRight="?listPreferredItemPaddingRight"
-      android:paddingStart="?listPreferredItemPaddingLeft" />
+      android:paddingStart="?listPreferredItemPaddingLeft"
+      android:text="" />
   </LinearLayout>
 </android.support.v7.widget.CardView>
diff --git a/app/src/main/res/layout/settings_identity_nick.xml b/app/src/main/res/layout/settings_identity_nick.xml
index 1a017a4de712260a91fde07b7c15a45be7d6b77a..55d6b36a5b0d711f795080ee83c88a4eaf27a221 100644
--- a/app/src/main/res/layout/settings_identity_nick.xml
+++ b/app/src/main/res/layout/settings_identity_nick.xml
@@ -17,11 +17,14 @@
 
     <TextView
       android:id="@+id/nick"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="0dip"
       android:layout_height="wrap_content"
       android:layout_gravity="center_vertical"
       android:layout_weight="1"
+      android:paddingEnd="0dip"
       android:paddingLeft="?listPreferredItemPaddingLeft"
+      android:paddingRight="0dip"
       android:paddingStart="?listPreferredItemPaddingLeft"
       android:textAppearance="?android:attr/textAppearanceListItemSmall"
       tools:text="@sample/messages.json/data/sender" />
diff --git a/app/src/main/res/layout/settings_ignoreitem.xml b/app/src/main/res/layout/settings_ignoreitem.xml
index 49e81f1dd2ca436c7c75322c86f90f9c3a9d476b..ec35b7011150a19d52ad3e2079f9b3669d08a45b 100644
--- a/app/src/main/res/layout/settings_ignoreitem.xml
+++ b/app/src/main/res/layout/settings_ignoreitem.xml
@@ -48,9 +48,8 @@
 
       <Spinner
         android:id="@+id/type"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/settings_item" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
 
       <TextView
         style="@style/Widget.CoreSettings.EditTextHeader"
@@ -58,9 +57,8 @@
 
       <Spinner
         android:id="@+id/strictness"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/settings_item" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
     </LinearLayout>
 
     <LinearLayout
@@ -83,9 +81,8 @@
 
       <Spinner
         android:id="@+id/scope"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/settings_item" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
     </LinearLayout>
 
     <LinearLayout
diff --git a/app/src/main/res/layout/settings_ignorelist.xml b/app/src/main/res/layout/settings_ignorelist.xml
index 988af7b5cdadf1823c1a01f9d4dc5449efc34912..18dde6d1863cdc9110a3abf08f94d7a3ad545beb 100644
--- a/app/src/main/res/layout/settings_ignorelist.xml
+++ b/app/src/main/res/layout/settings_ignorelist.xml
@@ -3,7 +3,11 @@
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
-  android:layout_height="match_parent">
+  android:layout_height="match_parent"
+  android:layout_marginEnd="16dp"
+  android:layout_marginLeft="16dp"
+  android:layout_marginRight="16dp"
+  android:layout_marginStart="16dp">
 
   <android.support.v7.widget.RecyclerView
     android:id="@+id/list"
diff --git a/app/src/main/res/layout/settings_ignorelist_item.xml b/app/src/main/res/layout/settings_ignorelist_item.xml
index b7e24b75a92982d6a33639b9e42c1a7c975146e1..eb639471056845968e620feff5aa75768e76f3e1 100644
--- a/app/src/main/res/layout/settings_ignorelist_item.xml
+++ b/app/src/main/res/layout/settings_ignorelist_item.xml
@@ -39,7 +39,8 @@
 
       <TextView
         android:id="@+id/ignore_rule"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:orientation="vertical"
@@ -51,7 +52,8 @@
 
       <TextView
         android:id="@+id/scope_rule"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:singleLine="true"
diff --git a/app/src/main/res/layout/settings_item.xml b/app/src/main/res/layout/settings_item.xml
index 5b4f851adb2021a5192a2897d1a02682d34eafc7..49c8cd2606c8a1714c4c4070c5be133febbfd8a7 100644
--- a/app/src/main/res/layout/settings_item.xml
+++ b/app/src/main/res/layout/settings_item.xml
@@ -22,7 +22,8 @@
 
     <TextView
       android:id="@+id/title"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:ellipsize="marquee"
       android:singleLine="true"
@@ -33,7 +34,8 @@
 
     <TextView
       android:id="@+id/summary"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:textAppearanceSmall"
       android:textColor="?colorTextPrimary"
diff --git a/app/src/main/res/layout/settings_list.xml b/app/src/main/res/layout/settings_list.xml
index 65715bcfc104c2d87ad67202db784876eef8697e..0c9edcba94b578442f79a1c22fe690c29dd0dc36 100644
--- a/app/src/main/res/layout/settings_list.xml
+++ b/app/src/main/res/layout/settings_list.xml
@@ -25,20 +25,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_server_network" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_networks_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_networks_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -82,20 +71,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_account_card" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_identities_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_identities_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -139,20 +117,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_list_bulleted" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_chatlists_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_chatlists_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -199,20 +166,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_filter" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_ignorelist_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_ignorelist_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -232,20 +188,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_bell" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_highlightlist_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_highlightlist_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -265,20 +210,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_message_bulleted" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_aliaslist_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_aliaslist_title" />
     </LinearLayout>
 
     <LinearLayout
@@ -298,20 +232,9 @@
         style="@style/Widget.CoreSettings.PrimaryItemIcon"
         app:srcCompat="@drawable/ic_settings" />
 
-      <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingBottom="16dp"
-        android:paddingTop="16dp">
-
-        <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/settings_networkconfig_title"
-          android:textColor="?colorTextPrimary"
-          android:textSize="16sp" />
-      </LinearLayout>
+      <TextView
+        style="@style/Widget.CoreSettings.PrimaryItemSwitch"
+        android:text="@string/settings_networkconfig_title" />
     </LinearLayout>
   </LinearLayout>
 </android.support.v4.widget.NestedScrollView>
diff --git a/app/src/main/res/layout/settings_network.xml b/app/src/main/res/layout/settings_network.xml
index ff2f3b624d78f19fabe93d217cf6aebcf27fd9af..97587ff9db2bd71f689c9d5d87b54e08c4916aab 100644
--- a/app/src/main/res/layout/settings_network.xml
+++ b/app/src/main/res/layout/settings_network.xml
@@ -82,9 +82,8 @@
 
       <Spinner
         android:id="@+id/identity"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/widget_spinner_item_toolbar" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
     </LinearLayout>
 
     <LinearLayout
diff --git a/app/src/main/res/layout/settings_network_server.xml b/app/src/main/res/layout/settings_network_server.xml
index aec7f169df14b7c5347d5dbb04c4315ab257d475..4a10a457810c7b7b1bc68f0f12e0c7e581715015 100644
--- a/app/src/main/res/layout/settings_network_server.xml
+++ b/app/src/main/res/layout/settings_network_server.xml
@@ -38,7 +38,8 @@
 
       <TextView
         android:id="@+id/host"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:singleLine="true"
@@ -47,7 +48,8 @@
 
       <TextView
         android:id="@+id/port"
-        android:layout_width="match_parent"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:singleLine="true"
diff --git a/app/src/main/res/layout/settings_networkserver.xml b/app/src/main/res/layout/settings_networkserver.xml
index 40fae516856d24a92d5e36aedbb5604b24e19101..faaddcb994e78ce29f5294079c3d4ed46c351a5a 100644
--- a/app/src/main/res/layout/settings_networkserver.xml
+++ b/app/src/main/res/layout/settings_networkserver.xml
@@ -96,9 +96,8 @@
 
       <Spinner
         android:id="@+id/proxy_type"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:listitem="@layout/widget_spinner_item_toolbar" />
+        style="@style/Widget.FullWidthSpinner"
+        tools:listitem="@layout/widget_spinner_item_inline" />
 
       <android.support.design.widget.TextInputLayout
         style="@style/Widget.CoreSettings.EditTextLayout"
diff --git a/app/src/main/res/layout/setup_slide.xml b/app/src/main/res/layout/setup_slide.xml
index 54045a751331f258934787416c9624d046f47ba1..b1a991c09239935b3a584ea05dabc53af997b2ac 100644
--- a/app/src/main/res/layout/setup_slide.xml
+++ b/app/src/main/res/layout/setup_slide.xml
@@ -36,7 +36,8 @@
 
         <TextView
           android:id="@+id/description"
-          android:layout_width="match_parent"
+          style="@style/Widget.RtlConformTextView"
+          android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginBottom="24dp"
           android:layout_marginEnd="48dp"
diff --git a/app/src/main/res/layout/widget_buffer.xml b/app/src/main/res/layout/widget_buffer.xml
index 3fa99fd34270de7d9f7443f7f7d0f35ed8ca345c..d0aff53caf00a16cf88e85979e1ff28a670fcd84 100644
--- a/app/src/main/res/layout/widget_buffer.xml
+++ b/app/src/main/res/layout/widget_buffer.xml
@@ -29,9 +29,9 @@
 
     <TextView
       android:id="@+id/name"
-      android:layout_width="match_parent"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
-      android:layout_gravity="center"
+      android:layout_gravity="center_vertical|start"
       android:fontFamily="sans-serif-medium"
       android:singleLine="true"
       android:textColor="?attr/colorTextPrimary"
@@ -40,12 +40,12 @@
 
     <TextView
       android:id="@+id/description"
-      android:layout_width="match_parent"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
-      android:layout_gravity="center"
+      android:layout_gravity="center_vertical|start"
       android:singleLine="true"
       android:textColor="?attr/colorTextSecondary"
       android:textSize="12sp"
       tools:text="QuasselDroid is an Android client for #quassel ♥ justJanne's much improved version: https://dl.kuschku.de/releases/quasseldroid/ ♥ http://github.com/sandsmark/QuasselDroid ♥ Quasseldroid  on play  https://market.android.com/details?id=com.iskrembilen.quasseldroid ♥ Sign up for beta: https://plus.google.com/communities/104094956084217666662" />
   </LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_chatmessage_action.xml b/app/src/main/res/layout/widget_chatmessage_action.xml
index bc5a3db828599476e84c60f1b1d0476472afd8b6..bfaf9668bd2ef2ee4a47653f388323bcdb2f0da2 100644
--- a/app/src/main/res/layout/widget_chatmessage_action.xml
+++ b/app/src/main/res/layout/widget_chatmessage_action.xml
@@ -34,6 +34,7 @@
 
   <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
     android:id="@+id/combined"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
diff --git a/app/src/main/res/layout/widget_chatmessage_daychange.xml b/app/src/main/res/layout/widget_chatmessage_daychange.xml
index 2fd710fd3bf4e25b74298cf5184a04e3974b63f4..ca7c67fa2a19021cc5c8f02d450a82221cdbf336 100644
--- a/app/src/main/res/layout/widget_chatmessage_daychange.xml
+++ b/app/src/main/res/layout/widget_chatmessage_daychange.xml
@@ -25,9 +25,11 @@
 
     <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
       android:id="@+id/combined"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="0dip"
       android:layout_height="wrap_content"
       android:layout_weight="1"
+
       android:gravity="center"
       android:textColor="?attr/colorForeground"
       android:textStyle="bold"
diff --git a/app/src/main/res/layout/widget_chatmessage_error.xml b/app/src/main/res/layout/widget_chatmessage_error.xml
index 57221c0b730412a6cd1b5c7097ee78ac73f4ef33..c8e377c06eb3828843a8a5026d692091646110f9 100644
--- a/app/src/main/res/layout/widget_chatmessage_error.xml
+++ b/app/src/main/res/layout/widget_chatmessage_error.xml
@@ -34,6 +34,7 @@
 
   <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
     android:id="@+id/combined"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
diff --git a/app/src/main/res/layout/widget_chatmessage_info.xml b/app/src/main/res/layout/widget_chatmessage_info.xml
index 74062d298c2018b73dc709e8b332624a80ccbfba..66264bd19a5c61d6ce218643c6c134b6c600803c 100644
--- a/app/src/main/res/layout/widget_chatmessage_info.xml
+++ b/app/src/main/res/layout/widget_chatmessage_info.xml
@@ -34,6 +34,7 @@
 
   <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
     android:id="@+id/combined"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
diff --git a/app/src/main/res/layout/widget_chatmessage_notice.xml b/app/src/main/res/layout/widget_chatmessage_notice.xml
index 2b830570b7eebe6fba493472f4bdd4b43fcc7188..0c2ff5832d4f5e7300de59ec173c0cf3cacf4093 100644
--- a/app/src/main/res/layout/widget_chatmessage_notice.xml
+++ b/app/src/main/res/layout/widget_chatmessage_notice.xml
@@ -34,6 +34,7 @@
 
   <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
     android:id="@+id/combined"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
diff --git a/app/src/main/res/layout/widget_chatmessage_plain.xml b/app/src/main/res/layout/widget_chatmessage_plain.xml
index e92c0e0b550a9a6d2131bb9a1498ce492a9c6dfc..d1cd18074452c8309dd27d89eadb56fb755009d1 100644
--- a/app/src/main/res/layout/widget_chatmessage_plain.xml
+++ b/app/src/main/res/layout/widget_chatmessage_plain.xml
@@ -49,17 +49,40 @@
     android:layout_gravity="fill_vertical"
     android:orientation="vertical">
 
-    <TextView
-      android:id="@+id/name"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_gravity="center_vertical"
-      android:ellipsize="marquee"
-      android:singleLine="true"
-      android:textColor="?attr/colorForegroundSecondary"
-      android:visibility="gone"
-      tools:text="@sample/messages.json/data/sender"
-      tools:visibility="visible" />
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content">
+
+      <TextView
+        android:id="@+id/name"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:ellipsize="marquee"
+        android:singleLine="true"
+        android:textColor="?attr/colorForeground"
+        android:visibility="gone"
+        tools:text="@sample/messages.json/data/sender"
+        tools:visibility="visible" />
+
+      <Space
+        android:layout_width="4dp"
+        android:layout_height="0dip" />
+
+      <TextView
+        android:id="@+id/realname"
+        style="@style/Widget.RtlConformTextView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:ellipsize="marquee"
+        android:singleLine="true"
+        android:textColor="?attr/colorForegroundSecondary"
+        android:visibility="gone"
+        tools:text="@sample/messages.json/data/sender"
+        tools:visibility="visible" />
+    </LinearLayout>
 
     <LinearLayout
       android:layout_width="match_parent"
@@ -75,6 +98,7 @@
 
         <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
           android:id="@+id/content"
+          style="@style/Widget.RtlConformTextView"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textColor="?attr/colorForeground"
@@ -84,6 +108,7 @@
 
         <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
           android:id="@+id/combined"
+          style="@style/Widget.RtlConformTextView"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textColor="?attr/colorForeground"
diff --git a/app/src/main/res/layout/widget_chatmessage_server.xml b/app/src/main/res/layout/widget_chatmessage_server.xml
index 3b136eb8d99eb3180fbfd56c78a3978f8f454817..0dd227ac020fb30a5c506cb794a7d5fa933e17f5 100644
--- a/app/src/main/res/layout/widget_chatmessage_server.xml
+++ b/app/src/main/res/layout/widget_chatmessage_server.xml
@@ -34,6 +34,7 @@
 
   <de.kuschku.quasseldroid.util.ui.RipplePassthroughTextView
     android:id="@+id/combined"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_weight="1"
diff --git a/app/src/main/res/layout/widget_contributor.xml b/app/src/main/res/layout/widget_contributor.xml
index de699de655741d5ca01eb8df04dec6a96f238ff0..6f9dc7064ec03c97c98366702040e878819a5d88 100644
--- a/app/src/main/res/layout/widget_contributor.xml
+++ b/app/src/main/res/layout/widget_contributor.xml
@@ -22,7 +22,8 @@
 
     <TextView
       android:id="@+id/name"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?colorTextPrimary"
       android:textSize="16sp"
@@ -30,7 +31,8 @@
 
     <TextView
       android:id="@+id/nickname"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextSecondary"
@@ -38,7 +40,8 @@
 
     <TextView
       android:id="@+id/description"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextSecondary"
diff --git a/app/src/main/res/layout/widget_core_account.xml b/app/src/main/res/layout/widget_core_account.xml
index 0a8e02ba005d22125458cdbd53f529e53797e47a..b091d5208e6eb4487cc3ec760f449b4239d29be7 100644
--- a/app/src/main/res/layout/widget_core_account.xml
+++ b/app/src/main/res/layout/widget_core_account.xml
@@ -35,7 +35,8 @@
 
     <TextView
       android:id="@+id/account_name"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:fontFamily="sans-serif-medium"
       android:gravity="center_vertical|start"
@@ -46,7 +47,8 @@
 
     <TextView
       android:id="@+id/account_description"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:fontFamily="sans-serif"
       android:gravity="center_vertical|start"
diff --git a/app/src/main/res/layout/widget_core_account_add.xml b/app/src/main/res/layout/widget_core_account_add.xml
index 295b1679c71cf7e3885c1e0d597c6aba734816a0..38e890916a1196c43ebccf13c9132c12251f4c49 100644
--- a/app/src/main/res/layout/widget_core_account_add.xml
+++ b/app/src/main/res/layout/widget_core_account_add.xml
@@ -23,6 +23,7 @@
 
   <TextView
     android:id="@+id/account_name"
+    style="@style/Widget.RtlConformTextView"
     android:layout_width="0dip"
     android:layout_height="wrap_content"
     android:layout_gravity="center_vertical|start"
diff --git a/app/src/main/res/layout/widget_crash.xml b/app/src/main/res/layout/widget_crash.xml
index 3bc5b9d83cfa8105b2723c0d15fd647d8bfe1fed..3e3cb6fadbf8b232b53754a9f0c9b2abe2354e1c 100644
--- a/app/src/main/res/layout/widget_crash.xml
+++ b/app/src/main/res/layout/widget_crash.xml
@@ -20,7 +20,8 @@
 
     <TextView
       android:id="@+id/crash_time"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:ellipsize="marquee"
       android:singleLine="true"
@@ -29,16 +30,18 @@
 
     <TextView
       android:id="@+id/version_name"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextPrimary" />
 
     <TextView
       android:id="@+id/error"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextSecondary" />
   </LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_history_message.xml b/app/src/main/res/layout/widget_history_message.xml
index e71572756ab275842bb5ba28191413fb53bf12f5..2024345cdc2fd2d6d50837c69f0382ff1cc5fe7e 100644
--- a/app/src/main/res/layout/widget_history_message.xml
+++ b/app/src/main/res/layout/widget_history_message.xml
@@ -2,6 +2,7 @@
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/content"
+  style="@style/Widget.RtlConformTextView"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
@@ -13,7 +14,6 @@
   android:paddingLeft="16dp"
   android:paddingRight="16dp"
   android:paddingTop="8dp"
-  android:singleLine="true"
   android:textColor="?attr/colorTextPrimary"
   android:textSize="13sp"
-  tools:text="@sample/recent_messages.json/data/message" />
\ No newline at end of file
+  tools:text="@sample/recent_messages.json/data/message" />
diff --git a/app/src/main/res/layout/widget_library.xml b/app/src/main/res/layout/widget_library.xml
index 7ad732fc872b45a46fff9fd9cc9b5a9a276e6972..b32b7f9eae98a1582ddb3aa27a123c594d9e9b37 100644
--- a/app/src/main/res/layout/widget_library.xml
+++ b/app/src/main/res/layout/widget_library.xml
@@ -22,7 +22,8 @@
 
     <TextView
       android:id="@+id/name"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?colorTextPrimary"
       android:textSize="16sp"
@@ -30,7 +31,8 @@
 
     <TextView
       android:id="@+id/version"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextSecondary"
@@ -38,7 +40,8 @@
 
     <TextView
       android:id="@+id/license"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceSmall"
       android:textColor="?colorTextSecondary"
diff --git a/app/src/main/res/layout/widget_network.xml b/app/src/main/res/layout/widget_network.xml
index 42128db09116daeae4c40bd2b3104846d0ecd474..fed3df93b5a3d8a7e3ce185f725f131811f80ff2 100644
--- a/app/src/main/res/layout/widget_network.xml
+++ b/app/src/main/res/layout/widget_network.xml
@@ -19,6 +19,7 @@
 
     <TextView
       android:id="@+id/name"
+      style="@style/Widget.RtlConformTextView"
       android:layout_width="0dip"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
@@ -49,4 +50,4 @@
       android:tint="?attr/colorTextSecondary"
       app:srcCompat="@drawable/ic_chevron_down" />
   </LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_nick.xml b/app/src/main/res/layout/widget_nick.xml
index 054915a7e9b30cb69d09bd42428817a47d48b5b8..a08e7b5c417560a458739095b9a0bf13427d3e8c 100644
--- a/app/src/main/res/layout/widget_nick.xml
+++ b/app/src/main/res/layout/widget_nick.xml
@@ -30,7 +30,8 @@
 
     <TextView
       android:id="@+id/nick"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?attr/colorTextPrimary"
       android:textSize="13sp"
@@ -38,11 +39,12 @@
 
     <TextView
       android:id="@+id/realname"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?attr/colorTextSecondary"
       android:textSize="12sp"
       tools:text="@sample/messages.json/data/sender"
       tools:visibility="visible" />
   </LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_nick_away.xml b/app/src/main/res/layout/widget_nick_away.xml
index 8d4c1a90ffbf542cedb1d10e0cea6b152de6d9a0..31f291f6acaa4fb083f8390e03e3c76a5b1e0f01 100644
--- a/app/src/main/res/layout/widget_nick_away.xml
+++ b/app/src/main/res/layout/widget_nick_away.xml
@@ -30,7 +30,8 @@
 
     <TextView
       android:id="@+id/nick"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?attr/colorTextSecondary"
       android:textSize="13sp"
@@ -39,7 +40,8 @@
 
     <TextView
       android:id="@+id/realname"
-      android:layout_width="match_parent"
+      style="@style/Widget.RtlConformTextView"
+      android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textColor="?attr/colorTextSecondary"
       android:textSize="12sp"
@@ -47,4 +49,4 @@
       tools:text="@sample/messages.json/data/sender"
       tools:visibility="visible" />
   </LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_spinner_item_inline.xml b/app/src/main/res/layout/widget_spinner_item_inline.xml
index b21fc81584630bf85d2771c9dd2c164f7013e61c..12b041f585489b5716aa5c6e67585bb735a2b119 100644
--- a/app/src/main/res/layout/widget_spinner_item_inline.xml
+++ b/app/src/main/res/layout/widget_spinner_item_inline.xml
@@ -1,7 +1,12 @@
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
   android:id="@android:id/text1"
+  style="@style/Widget.RtlConformTextView"
+  android:gravity="center_vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
-  android:gravity="center_vertical"
-  android:minHeight="48dp"
-  android:textAppearance="?android:attr/textAppearanceListItemSmall" />
+  android:minHeight="?listPreferredItemHeightSmall"
+  android:paddingLeft="16dp"
+  android:paddingRight="16dp"
+  android:textAppearance="?android:attr/textAppearanceListItemSmall"
+  tools:text="All Chats" />
diff --git a/app/src/main/res/layout/widget_spinner_item_toolbar.xml b/app/src/main/res/layout/widget_spinner_item_toolbar.xml
index fa2ad16dc1baf60651bce7e96127b01ba6600e77..1ee4e670a33eb0f648e556df7873fad94b186d26 100644
--- a/app/src/main/res/layout/widget_spinner_item_toolbar.xml
+++ b/app/src/main/res/layout/widget_spinner_item_toolbar.xml
@@ -1,9 +1,10 @@
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@android:id/text1"
+  style="@style/Widget.RtlConformTextView"
+  android:gravity="center_vertical"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
-  android:gravity="center_vertical"
   android:minHeight="?attr/actionBarSize"
   android:paddingLeft="16dp"
   android:paddingRight="16dp"
diff --git a/app/src/main/res/values-v17/styles_widgets.xml b/app/src/main/res/values-v17/styles_widgets.xml
index eac3b62a0fdaf5203f4815e7ac8a36a3307e400b..e6740cc2c2d3e6f8e4a4ba50d1d02a5de7035a99 100644
--- a/app/src/main/res/values-v17/styles_widgets.xml
+++ b/app/src/main/res/values-v17/styles_widgets.xml
@@ -1,6 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
+  <style name="Widget.RtlConformTextView" parent="">
+    <item name="android:textAlignment">gravity</item>
+    <item name="android:textDirection">locale</item>
+  </style>
+
   <style name="Widget.CoreSettings.Wrapper" parent="">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
@@ -29,14 +34,14 @@
     <item name="android:layout_marginStart">56dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextLayout" parent="">
+  <style name="Widget.CoreSettings.EditTextLayout" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:layout_marginLeft">-4dp</item>
     <item name="android:layout_marginStart">-4dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextSuffix" parent="">
+  <style name="Widget.CoreSettings.EditTextSuffix" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:layout_gravity">bottom|end</item>
@@ -60,8 +65,8 @@
     <item name="android:paddingTop">8dp</item>
   </style>
 
-  <style name="Widget.Info.Section" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Section" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:gravity">center_vertical</item>
     <item name="android:minHeight">48dp</item>
@@ -89,7 +94,7 @@
     <item name="android:paddingTop">16dp</item>
   </style>
 
-  <style name="Widget.Subhead" parent="">
+  <style name="Widget.Subhead" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:gravity">center_vertical</item>
diff --git a/app/src/main/res/values/styles_widgets.xml b/app/src/main/res/values/styles_widgets.xml
index 6c51192ce7f9a1de751b5fb4027e0d611f85691c..64c83761a1bf7d389fe5e0a96bb74abcec3f2ba7 100644
--- a/app/src/main/res/values/styles_widgets.xml
+++ b/app/src/main/res/values/styles_widgets.xml
@@ -2,6 +2,8 @@
 
   <style name="Widget" />
 
+  <style name="Widget.RtlConformTextView" parent=""></style>
+
   <style name="Widget.Button.Borderless" parent="Widget.AppCompat.Button.Borderless">
     <item name="android:textColor">?attr/colorTextPrimary</item>
   </style>
@@ -78,6 +80,13 @@
     <item name="android:background">?backgroundMenuItemRounded</item>
   </style>
 
+  <style name="Widget.FullWidthSpinner" parent="">
+    <item name="android:layout_width">match_parent</item>
+    <item name="android:layout_height">wrap_content</item>
+    <item name="android:paddingLeft">0dip</item>
+    <item name="android:paddingRight">0dip</item>
+  </style>
+
   <style name="Widget.CoreSettings.Wrapper" parent="">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
@@ -94,7 +103,7 @@
     <item name="android:layout_marginLeft">56dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.PrimaryItemSwitch" parent="">
+  <style name="Widget.CoreSettings.PrimaryItemSwitch" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:layout_gravity">center_vertical</item>
@@ -122,13 +131,13 @@
     <item name="android:layout_marginLeft">56dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextLayout" parent="">
+  <style name="Widget.CoreSettings.EditTextLayout" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:layout_marginLeft">-4dp</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditText" parent="">
+  <style name="Widget.CoreSettings.EditText" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textColor">?colorTextPrimary</item>
@@ -143,7 +152,7 @@
     <item name="android:textColor">?colorTextSecondary</item>
   </style>
 
-  <style name="Widget.CoreSettings.EditTextHeader" parent="">
+  <style name="Widget.CoreSettings.EditTextHeader" parent="Widget.RtlConformTextView">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:paddingBottom">8dp</item>
@@ -165,15 +174,15 @@
     <item name="android:animateLayoutChanges">true</item>
   </style>
 
-  <style name="Widget.Info.Header.Name" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Header.Name" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textAppearance">@style/TextAppearance.AppCompat.Headline</item>
     <item name="android:animateLayoutChanges">true</item>
   </style>
 
-  <style name="Widget.Info.Header.Description" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Header.Description" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
     <item name="android:animateLayoutChanges">true</item>
@@ -195,8 +204,8 @@
     <item name="android:textStyle">normal</item>
   </style>
 
-  <style name="Widget.Info.Section" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Section" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:gravity">center_vertical</item>
     <item name="android:minHeight">48dp</item>
@@ -221,22 +230,22 @@
     <item name="android:animateLayoutChanges">true</item>
   </style>
 
-  <style name="Widget.Info.Item.Content" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Item.Content" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textColor">?colorTextPrimary</item>
     <item name="android:textSize">16sp</item>
   </style>
 
-  <style name="Widget.Info.Item.Description" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Info.Item.Description" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
     <item name="android:textColor">?colorTextSecondary</item>
   </style>
 
-  <style name="Widget.Subhead" parent="">
-    <item name="android:layout_width">match_parent</item>
+  <style name="Widget.Subhead" parent="Widget.RtlConformTextView">
+    <item name="android:layout_width">wrap_content</item>
     <item name="android:layout_height">wrap_content</item>
     <item name="android:gravity">center_vertical</item>
     <item name="android:minHeight">?listPreferredItemHeightSmall</item>