Просмотр исходного кода

Improve RTL text flow for untranslated strings in rtl languages/views

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 3 лет назад
Родитель
Сommit
a5838dc44e
35 измененных файлов с 267 добавлено и 207 удалено
  1. 4 2
      app/src/main/res/layout/account_item.xml
  2. 14 14
      app/src/main/res/layout/activity_full_screen_media.xml
  3. 27 27
      app/src/main/res/layout/activity_full_screen_text.xml
  4. 1 0
      app/src/main/res/layout/call_item.xml
  5. 1 0
      app/src/main/res/layout/controller_entry_menu.xml
  6. 2 0
      app/src/main/res/layout/controller_location.xml
  7. 5 2
      app/src/main/res/layout/controller_server_selection.xml
  8. 1 0
      app/src/main/res/layout/controller_settings.xml
  9. 1 0
      app/src/main/res/layout/conversation_privacy_toggle.xml
  10. 7 3
      app/src/main/res/layout/dialog_attachment.xml
  11. 8 1
      app/src/main/res/layout/dialog_scope.xml
  12. 7 6
      app/src/main/res/layout/geocoding_item.xml
  13. 54 52
      app/src/main/res/layout/item_custom_incoming_location_message.xml
  14. 3 1
      app/src/main/res/layout/item_custom_incoming_preview_message.xml
  15. 7 2
      app/src/main/res/layout/item_custom_incoming_text_message.xml
  16. 1 0
      app/src/main/res/layout/item_custom_incoming_voice_message.xml
  17. 1 0
      app/src/main/res/layout/item_custom_outcoming_location_message.xml
  18. 2 1
      app/src/main/res/layout/item_custom_outcoming_preview_message.xml
  19. 1 0
      app/src/main/res/layout/item_custom_outcoming_text_message.xml
  20. 2 0
      app/src/main/res/layout/item_message_quote.xml
  21. 1 0
      app/src/main/res/layout/join_conversation_via_link.xml
  22. 3 1
      app/src/main/res/layout/library_fast_scroller_layout.xml
  23. 2 0
      app/src/main/res/layout/rv_item_app.xml
  24. 2 0
      app/src/main/res/layout/rv_item_browser_file.xml
  25. 1 0
      app/src/main/res/layout/rv_item_contact.xml
  26. 2 0
      app/src/main/res/layout/rv_item_conversation.xml
  27. 3 1
      app/src/main/res/layout/rv_item_conversation_info_participant.xml
  28. 86 83
      app/src/main/res/layout/rv_item_conversation_with_last_message.xml
  29. 2 0
      app/src/main/res/layout/rv_item_mention.xml
  30. 3 2
      app/src/main/res/layout/rv_item_menu.xml
  31. 1 0
      app/src/main/res/layout/rv_item_notification_sound.xml
  32. 1 0
      app/src/main/res/layout/rv_item_title_header.xml
  33. 2 1
      app/src/main/res/layout/search_layout.xml
  34. 8 7
      app/src/main/res/layout/view_message_input.xml
  35. 1 1
      scripts/analysis/lint-results.txt

+ 4 - 2
app/src/main/res/layout/account_item.xml

@@ -88,8 +88,9 @@
                 android:layout_marginTop="4dp"
                 android:layout_marginEnd="@dimen/standard_double_margin"
                 android:ellipsize="end"
-                android:gravity="bottom"
+                android:gravity="start|bottom"
                 android:maxLines="1"
+                android:textAlignment="viewStart"
                 android:textColor="@color/conversation_item_header"
                 android:textSize="@dimen/two_line_primary_text_size"
                 tools:text="Firstname Lastname" />
@@ -116,8 +117,9 @@
                 android:layout_marginEnd="@dimen/standard_double_margin"
                 android:layout_marginBottom="4dp"
                 android:ellipsize="end"
-                android:gravity="top"
+                android:gravity="start|top"
                 android:maxLines="1"
+                android:textAlignment="viewStart"
                 android:textColor="@color/textColorMaxContrast"
                 android:textSize="14sp"
                 tools:text="https://server.com/nextcloud" />

+ 14 - 14
app/src/main/res/layout/activity_full_screen_media.xml

@@ -21,26 +21,26 @@
   -->
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
     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:fitsSystemWindows="true"
     tools:context=".activities.FullScreenMediaActivity">
 
-        <androidx.appcompat.widget.Toolbar
-            android:id="@+id/mediaview_toolbar"
-            android:layout_width="match_parent"
-            android:layout_height="?attr/actionBarSize"
-            android:elevation="4dp"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />
+    <androidx.appcompat.widget.Toolbar
+        android:id="@+id/mediaview_toolbar"
+        android:layout_width="match_parent"
+        android:layout_height="?attr/actionBarSize"
+        android:elevation="4dp"
+        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />
 
-        <com.google.android.exoplayer2.ui.StyledPlayerView
-            android:id="@+id/player_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            app:show_buffering="when_playing"
-            app:show_shuffle_button="true"/>
+    <com.google.android.exoplayer2.ui.StyledPlayerView
+        android:id="@+id/player_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:show_buffering="when_playing"
+        app:show_shuffle_button="true" />
 
 </FrameLayout>

+ 27 - 27
app/src/main/res/layout/activity_full_screen_text.xml

@@ -25,42 +25,42 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical"
     android:background="@color/bg_default"
+    android:orientation="vertical"
     tools:context=".activities.FullScreenTextViewerActivity">
 
-        <com.google.android.material.appbar.AppBarLayout
+    <com.google.android.material.appbar.AppBarLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:clipChildren="true"
+        android:clipToPadding="false"
+        android:windowContentOverlay="@null">
+
+        <com.google.android.material.appbar.MaterialToolbar
+            android:id="@+id/textview_toolbar"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:clipChildren="true"
-            android:clipToPadding="false"
-            android:windowContentOverlay="@null">
+            android:layout_height="?attr/actionBarSize"
+            android:theme="@style/appActionBarPopupMenu"
+            app:layout_scrollFlags="scroll|enterAlways|snap"
+            app:navigationIconTint="@color/fontAppbar"
+            app:popupTheme="@style/appActionBarPopupMenu"
+            app:titleTextColor="@color/fontAppbar"
+            tools:title="Text File Preview" />
 
-                <com.google.android.material.appbar.MaterialToolbar
-                    android:id="@+id/textview_toolbar"
-                    android:layout_width="match_parent"
-                    android:layout_height="?attr/actionBarSize"
-                    android:theme="@style/appActionBarPopupMenu"
-                    app:layout_scrollFlags="scroll|enterAlways|snap"
-                    app:navigationIconTint="@color/fontAppbar"
-                    app:popupTheme="@style/appActionBarPopupMenu"
-                    app:titleTextColor="@color/fontAppbar"
-                    tools:title="Text File Preview" />
+    </com.google.android.material.appbar.AppBarLayout>
 
-        </com.google.android.material.appbar.AppBarLayout>
+    <androidx.core.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_behavior="@string/appbar_scrolling_view_behavior">
 
-        <androidx.core.widget.NestedScrollView
+        <TextView
+            android:id="@+id/text_view"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-                <TextView
-                    android:id="@+id/text_view"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:padding="@dimen/standard_padding"
-                    tools:text="Lorem Ipsum" />
+            android:padding="@dimen/standard_padding"
+            tools:text="Lorem Ipsum" />
 
-        </androidx.core.widget.NestedScrollView>
+    </androidx.core.widget.NestedScrollView>
 
 </androidx.coordinatorlayout.widget.CoordinatorLayout>

+ 1 - 0
app/src/main/res/layout/call_item.xml

@@ -54,6 +54,7 @@
         android:ellipsize="end"
         android:maxEms="8"
         android:maxLines="1"
+        android:textAlignment="viewStart"
         android:textColor="@color/white"
         tools:text="Bill Murray 12345678901234567890" />
 

+ 1 - 0
app/src/main/res/layout/controller_entry_menu.xml

@@ -61,6 +61,7 @@
             android:imeOptions="actionDone"
             android:inputType="textUri"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textColor="@color/colorPrimary" />
 
     </com.google.android.material.textfield.TextInputLayout>

+ 2 - 0
app/src/main/res/layout/controller_location.xml

@@ -103,6 +103,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="1"
+                android:textAlignment="viewStart"
                 android:textColor="@color/high_emphasis_text"
                 android:textSize="16sp"
                 tools:text="Share this location" />
@@ -114,6 +115,7 @@
                 android:layout_weight="1"
                 android:ellipsize="end"
                 android:maxLines="1"
+                android:textAlignment="viewStart"
                 android:textColor="@color/medium_emphasis_text"
                 android:textSize="14sp"
                 tools:text="Brandenburg, Germany" />

+ 5 - 2
app/src/main/res/layout/controller_server_selection.xml

@@ -99,6 +99,7 @@
                 android:paddingEnd="8dp"
                 android:paddingBottom="2dp"
                 android:text="@string/nc_server_helper_text"
+                android:textAlignment="viewStart"
                 android:textColor="@color/nc_login_text_color" />
 
             <LinearLayout
@@ -121,12 +122,13 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:ellipsize="end"
-                    android:gravity="center_vertical"
+                    android:gravity="start|center_vertical"
                     android:lineSpacingMultiplier="1.2"
                     android:lines="2"
                     android:paddingStart="5dp"
                     android:paddingEnd="8dp"
                     android:text="@string/nc_server_testing_connection"
+                    android:textAlignment="viewStart"
                     android:textColor="@color/white" />
 
             </LinearLayout>
@@ -137,12 +139,13 @@
                 android:layout_height="wrap_content"
                 android:drawablePadding="5dp"
                 android:ellipsize="end"
-                android:gravity="center_vertical"
+                android:gravity="start|center_vertical"
                 android:lineSpacingMultiplier="1.2"
                 android:lines="2"
                 android:paddingStart="16dp"
                 android:paddingEnd="8dp"
                 android:text="@string/nc_server_unsupported"
+                android:textAlignment="viewStart"
                 android:textColor="@color/white"
                 android:visibility="invisible"
                 app:drawableStartCompat="@android:drawable/stat_sys_warning"

+ 1 - 0
app/src/main/res/layout/controller_settings.xml

@@ -109,6 +109,7 @@
                         android:paddingStart="@dimen/standard_padding"
                         android:paddingEnd="0dp"
                         android:layout_centerHorizontal="true"
+                        android:textAlignment="viewStart"
                         android:textColor="@color/nc_darkRed"
                         tools:text="@string/nc_settings_server_almost_eol" />
 

+ 1 - 0
app/src/main/res/layout/conversation_privacy_toggle.xml

@@ -57,6 +57,7 @@
             android:ellipsize="middle"
             android:singleLine="true"
             android:text="@string/nc_public_call"
+            android:textAlignment="viewStart"
             android:textAppearance="@style/ListItem"
             tools:text="@string/nc_public_call" />
 

+ 7 - 3
app/src/main/res/layout/dialog_attachment.xml

@@ -35,6 +35,7 @@
         android:layout_height="wrap_content"
         android:padding="@dimen/standard_padding"
         android:text="@string/nc_add_file"
+        android:textAlignment="viewStart"
         android:textColor="@color/medium_emphasis_text"
         android:textSize="@dimen/bottom_sheet_text_size" />
 
@@ -62,9 +63,10 @@
             android:id="@+id/txt_share_location"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
+            android:layout_gravity="start|center_vertical"
             android:layout_marginStart="@dimen/standard_margin"
             android:text="@string/nc_share_location"
+            android:textAlignment="viewStart"
             android:textColor="@color/high_emphasis_text"
             android:textSize="@dimen/bottom_sheet_text_size" />
 
@@ -94,9 +96,10 @@
             android:id="@+id/txt_attach_file_from_local"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
+            android:layout_gravity="start|center_vertical"
             android:layout_marginStart="@dimen/standard_margin"
             android:text="@string/nc_upload_local_file"
+            android:textAlignment="viewStart"
             android:textColor="@color/high_emphasis_text"
             android:textSize="@dimen/bottom_sheet_text_size" />
 
@@ -126,8 +129,9 @@
             android:id="@+id/txt_attach_file_from_cloud"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
+            android:layout_gravity="start|center_vertical"
             android:layout_marginStart="@dimen/standard_margin"
+            android:textAlignment="viewStart"
             android:textColor="@color/high_emphasis_text"
             android:textSize="@dimen/bottom_sheet_text_size"
             tools:text="Share from Nextcloud" />

+ 8 - 1
app/src/main/res/layout/dialog_scope.xml

@@ -56,8 +56,8 @@
             <androidx.appcompat.widget.AppCompatTextView
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-
                 android:text="@string/scope_private_title"
+                android:textAlignment="viewStart"
                 android:textColor="@color/conversation_item_header"
                 android:textSize="16sp"
                 android:textStyle="bold" />
@@ -66,6 +66,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_private_description"
+                android:textAlignment="viewStart"
                 android:textColor="@color/textColorMaxContrast"
                 android:textSize="14sp" />
 
@@ -99,6 +100,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_local_title"
+                android:textAlignment="viewStart"
                 android:textColor="@color/conversation_item_header"
                 android:textSize="16sp"
                 android:textStyle="bold" />
@@ -107,6 +109,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_local_description"
+                android:textAlignment="viewStart"
                 android:textColor="@color/textColorMaxContrast"
                 android:textSize="14sp" />
 
@@ -140,6 +143,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_federated_title"
+                android:textAlignment="viewStart"
                 android:textColor="@color/conversation_item_header"
                 android:textSize="16sp"
                 android:textStyle="bold" />
@@ -148,6 +152,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_federated_description"
+                android:textAlignment="viewStart"
                 android:textColor="@color/textColorMaxContrast"
                 android:textSize="14sp" />
 
@@ -181,6 +186,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_published_title"
+                android:textAlignment="viewStart"
                 android:textColor="@color/conversation_item_header"
                 android:textSize="16sp"
                 android:textStyle="bold" />
@@ -189,6 +195,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:text="@string/scope_published_description"
+                android:textAlignment="viewStart"
                 android:textColor="@color/textColorMaxContrast"
                 android:textSize="14sp" />
 

+ 7 - 6
app/src/main/res/layout/geocoding_item.xml

@@ -33,8 +33,8 @@
         android:layout_width="@dimen/avatar_size"
         android:layout_height="@dimen/avatar_size"
         android:layout_gravity="top"
-        android:layout_marginTop="@dimen/standard_margin"
         android:layout_marginStart="@dimen/standard_half_margin"
+        android:layout_marginTop="@dimen/standard_margin"
         android:layout_marginEnd="@dimen/standard_double_padding"
         android:layout_marginBottom="@dimen/standard_margin"
         android:contentDescription="@null"
@@ -44,13 +44,14 @@
         android:id="@+id/name"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="top"
-        android:textColor="@color/high_emphasis_text"
-        android:textSize="@dimen/geocoding_result_text_size"
-        android:paddingTop="12dp"
-        android:paddingBottom="@dimen/standard_padding"
+        android:layout_gravity="start|top"
         android:paddingStart="@dimen/standard_half_padding"
+        android:paddingTop="12dp"
         android:paddingEnd="@dimen/standard_padding"
+        android:paddingBottom="@dimen/standard_padding"
+        android:textAlignment="viewStart"
+        android:textColor="@color/high_emphasis_text"
+        android:textSize="@dimen/geocoding_result_text_size"
         tools:text="S Sonnenallee, 50, Saalestraße, Rixdorf, Neukölln, Berlin, 12055, Deutschland" />
 
 </LinearLayout>

+ 54 - 52
app/src/main/res/layout/item_custom_incoming_location_message.xml

@@ -26,66 +26,68 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="16dp"
+    android:layout_marginStart="@dimen/standard_margin"
     android:layout_marginTop="2dp"
-    android:layout_marginRight="16dp"
+    android:layout_marginEnd="@dimen/standard_margin"
     android:layout_marginBottom="2dp">
 
-        <com.facebook.drawee.view.SimpleDraweeView
-            android:id="@id/messageUserAvatar"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:layout_alignParentTop="true"
-            android:layout_marginEnd="8dp"
-            app:roundAsCircle="true" />
+    <com.facebook.drawee.view.SimpleDraweeView
+        android:id="@id/messageUserAvatar"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_alignParentTop="true"
+        android:layout_marginEnd="8dp"
+        app:roundAsCircle="true" />
 
-        <com.google.android.flexbox.FlexboxLayout
-            android:id="@id/bubble"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginEnd="@dimen/message_incoming_bubble_margin_right"
-            android:layout_toEndOf="@id/messageUserAvatar"
-            android:orientation="vertical"
-            app:alignContent="stretch"
-            app:alignItems="stretch"
-            app:flexWrap="wrap"
-            app:justifyContent="flex_end">
+    <com.google.android.flexbox.FlexboxLayout
+        android:id="@id/bubble"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginEnd="@dimen/message_incoming_bubble_margin_right"
+        android:layout_toEndOf="@id/messageUserAvatar"
+        android:orientation="vertical"
+        app:alignContent="stretch"
+        app:alignItems="stretch"
+        app:flexWrap="wrap"
+        app:justifyContent="flex_end">
 
-                <include
-                    android:id="@+id/message_quote"
-                    layout="@layout/item_message_quote"
-                    android:visibility="gone" />
+        <include
+            android:id="@+id/message_quote"
+            layout="@layout/item_message_quote"
+            android:visibility="gone" />
 
-                <WebView
-                    android:id="@+id/webview"
-                    android:layout_width="400dp"
-                    android:layout_height="200dp" />
+        <WebView
+            android:id="@+id/webview"
+            android:layout_width="400dp"
+            android:layout_height="200dp" />
 
-                <androidx.emoji.widget.EmojiTextView
-                    android:id="@+id/messageAuthor"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginBottom="4dp"
-                    android:textColor="@color/textColorMaxContrast"
-                    android:textSize="12sp" />
+        <androidx.emoji.widget.EmojiTextView
+            android:id="@+id/messageAuthor"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="4dp"
+            android:textAlignment="viewStart"
+            android:textColor="@color/textColorMaxContrast"
+            android:textSize="12sp" />
 
-                <androidx.emoji.widget.EmojiTextView
-                    android:id="@id/messageText"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:lineSpacingMultiplier="1.2"
-                    android:textIsSelectable="true"
-                    app:layout_alignSelf="flex_start"
-                    app:layout_flexGrow="1"
-                    app:layout_wrapBefore="true" />
+        <androidx.emoji.widget.EmojiTextView
+            android:id="@id/messageText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
+            android:textIsSelectable="true"
+            app:layout_alignSelf="flex_start"
+            app:layout_flexGrow="1"
+            app:layout_wrapBefore="true" />
 
-                <TextView
-                    android:id="@id/messageTime"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_below="@id/messageText"
-                    android:layout_marginStart="8dp"
-                    app:layout_alignSelf="center" />
+        <TextView
+            android:id="@id/messageTime"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/messageText"
+            android:layout_marginStart="8dp"
+            app:layout_alignSelf="center" />
 
-        </com.google.android.flexbox.FlexboxLayout>
+    </com.google.android.flexbox.FlexboxLayout>
 </RelativeLayout>

+ 3 - 1
app/src/main/res/layout/item_custom_incoming_preview_message.xml

@@ -129,10 +129,11 @@
                     android:layout_height="match_parent"
                     android:autoLink="none"
                     android:ellipsize="middle"
-                    android:gravity="center_vertical"
+                    android:gravity="start|center_vertical"
                     android:maxLines="3"
                     android:paddingStart="@dimen/standard_padding"
                     android:paddingEnd="0dp"
+                    android:textAlignment="viewStart"
                     android:textColor="@color/high_emphasis_text"
                     android:textColorLink="@color/high_emphasis_text"
                     android:textIsSelectable="false"
@@ -152,6 +153,7 @@
             android:layout_height="wrap_content"
             android:layout_marginStart="2dp"
             android:autoLink="none"
+            android:textAlignment="viewStart"
             android:textColor="@color/warm_grey_four"
             android:textColorLink="@color/warm_grey_four"
             android:textIsSelectable="true"

+ 7 - 2
app/src/main/res/layout/item_custom_incoming_text_message.xml

@@ -22,6 +22,7 @@
 
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginLeft="16dp"
@@ -59,19 +60,23 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginBottom="4dp"
+            android:textAlignment="viewStart"
             android:textColor="@color/textColorMaxContrast"
             android:textIsSelectable="false"
-            android:textSize="12sp" />
+            android:textSize="12sp"
+            tools:text="Jane Doe" />
 
         <androidx.emoji.widget.EmojiTextView
             android:id="@id/messageText"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
             android:textIsSelectable="false"
             app:layout_alignSelf="flex_start"
             app:layout_flexGrow="1"
-            app:layout_wrapBefore="true" />
+            app:layout_wrapBefore="true"
+            tools:text="Talk to you later!" />
 
         <TextView
             android:id="@id/messageTime"

+ 1 - 0
app/src/main/res/layout/item_custom_incoming_voice_message.xml

@@ -62,6 +62,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginBottom="4dp"
+                    android:textAlignment="viewStart"
                     android:textColor="@color/textColorMaxContrast"
                     android:textSize="12sp" />
 

+ 1 - 0
app/src/main/res/layout/item_custom_outcoming_location_message.xml

@@ -57,6 +57,7 @@
             android:layout_height="wrap_content"
             android:layout_alignWithParentIfMissing="true"
             android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
             android:textColorHighlight="@color/nc_grey"
             android:textIsSelectable="true"
             tools:text="Talk to you later!" />

+ 2 - 1
app/src/main/res/layout/item_custom_outcoming_preview_message.xml

@@ -119,10 +119,11 @@
                     android:layout_height="match_parent"
                     android:autoLink="none"
                     android:ellipsize="middle"
-                    android:gravity="center_vertical"
+                    android:gravity="start|center_vertical"
                     android:maxLines="3"
                     android:paddingStart="@dimen/standard_padding"
                     android:paddingEnd="0dp"
+                    android:textAlignment="viewStart"
                     android:textColor="@color/high_emphasis_text"
                     android:textColorLink="@color/high_emphasis_text"
                     android:textIsSelectable="false"

+ 1 - 0
app/src/main/res/layout/item_custom_outcoming_text_message.xml

@@ -52,6 +52,7 @@
             android:layout_height="wrap_content"
             android:layout_alignWithParentIfMissing="true"
             android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
             android:textColorHighlight="@color/nc_grey"
             android:textIsSelectable="false"
             tools:text="Talk to you later!" />

+ 2 - 0
app/src/main/res/layout/item_message_quote.xml

@@ -45,6 +45,7 @@
         android:layout_marginEnd="8dp"
         android:layout_toEndOf="@id/quoteColoredView"
         android:ellipsize="end"
+        android:textAlignment="viewStart"
         android:textColor="@color/textColorMaxContrast"
         android:textIsSelectable="false"
         android:textSize="12sp"
@@ -83,6 +84,7 @@
             android:layout_below="@id/quotedMessageImage"
             android:layout_alignStart="@id/quotedMessageAuthor"
             android:lineSpacingMultiplier="1.2"
+            android:textAlignment="viewStart"
             android:textIsSelectable="false"
             android:textSize="14sp"
             app:layout_alignSelf="flex_start"

+ 1 - 0
app/src/main/res/layout/join_conversation_via_link.xml

@@ -51,6 +51,7 @@
         android:ellipsize="middle"
         android:singleLine="true"
         android:text="@string/nc_join_via_link"
+        android:textAlignment="viewStart"
         android:textAppearance="@style/ListItem" />
 
 </RelativeLayout>

+ 3 - 1
app/src/main/res/layout/library_fast_scroller_layout.xml

@@ -35,6 +35,7 @@
             android:alpha="0.5"
             android:contentDescription="@null"
             android:paddingStart="6dp"
+            android:paddingEnd="0dp"
             android:src="@drawable/fast_scroller_handle" />
 
         <TextView
@@ -45,9 +46,10 @@
             android:layout_marginEnd="0dp"
             android:layout_toStartOf="@+id/fast_scroller_handle"
             android:background="@drawable/fast_scroller_bubble"
-            android:gravity="center"
+            android:gravity="start|center_vertical"
             android:paddingLeft="16dp"
             android:paddingRight="16dp"
+            android:textAlignment="viewStart"
             android:textColor="?android:attr/textColorPrimaryInverse"
             android:textSize="38sp"
             android:visibility="gone"

+ 2 - 0
app/src/main/res/layout/rv_item_app.xml

@@ -49,6 +49,8 @@
         android:layout_toEndOf="@id/icon_image_view"
         android:focusable="false"
         android:focusableInTouchMode="false"
+        android:gravity="start|center_vertical"
+        android:textAlignment="viewStart"
         android:textColor="@color/fg_default"
         android:textSize="16sp"
         tools:text="Start a new conversation" />

+ 2 - 0
app/src/main/res/layout/rv_item_browser_file.xml

@@ -69,6 +69,7 @@
         android:marqueeRepeatLimit="1"
         android:paddingBottom="6dp"
         android:singleLine="true"
+        android:textAlignment="viewStart"
         android:textColor="@color/textColorMaxContrast"
         android:textSize="12sp"
         tools:text="3 minutes ago" />
@@ -85,6 +86,7 @@
         android:marqueeRepeatLimit="1"
         android:paddingTop="6dp"
         android:singleLine="true"
+        android:textAlignment="viewStart"
         android:textColor="@color/conversation_item_header"
         android:textSize="@dimen/two_line_primary_text_size"
         tools:text="filename.md" />

+ 1 - 0
app/src/main/res/layout/rv_item_contact.xml

@@ -51,6 +51,7 @@
         android:layout_toEndOf="@id/simple_drawee_view"
         android:ellipsize="end"
         android:lines="1"
+        android:textAlignment="viewStart"
         android:textAppearance="@style/ListItem"
         tools:text="Jane Doe" />
 

+ 2 - 0
app/src/main/res/layout/rv_item_conversation.xml

@@ -78,6 +78,7 @@
             android:layout_height="wrap_content"
             android:ellipsize="middle"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textColor="@color/conversation_item_header"
             android:textSize="@dimen/two_line_primary_text_size"
             tools:text="Call item text" />
@@ -87,6 +88,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textColor="@color/textColorMaxContrast"
             android:textSize="14sp"
             tools:text="A week ago" />

+ 3 - 1
app/src/main/res/layout/rv_item_conversation_info_participant.xml

@@ -64,6 +64,7 @@
             android:layout_height="wrap_content"
             android:ellipsize="middle"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textAppearance="?android:attr/textAppearanceListItem"
             android:textColor="@color/conversation_item_header"
             tools:text="Jane Doe" />
@@ -74,8 +75,9 @@
             android:layout_height="wrap_content"
             android:ellipsize="middle"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textColor="?android:attr/textColorSecondary"
-            tools:text="Moderator" />
+            tools:text="@string/nc_moderator" />
 
     </LinearLayout>
 

+ 86 - 83
app/src/main/res/layout/rv_item_conversation_with_last_message.xml

@@ -31,100 +31,103 @@
     android:layout_height="wrap_content"
     android:layout_margin="@dimen/double_margin_between_elements">
 
-        <FrameLayout
-            android:id="@+id/dialogAvatarFrameLayout"
+    <FrameLayout
+        android:id="@+id/dialogAvatarFrameLayout"
+        android:layout_width="@dimen/small_item_height"
+        android:layout_height="@dimen/small_item_height"
+        android:layout_centerVertical="true"
+        android:layout_marginEnd="@dimen/double_margin_between_elements">
+
+        <com.facebook.drawee.view.SimpleDraweeView
+            android:id="@id/dialogAvatar"
             android:layout_width="@dimen/small_item_height"
             android:layout_height="@dimen/small_item_height"
-            android:layout_centerVertical="true"
-            android:layout_marginEnd="@dimen/double_margin_between_elements">
+            android:contentDescription="@null"
+            app:roundAsCircle="true"
+            tools:src="@drawable/ic_call_black_24dp" />
 
-            <com.facebook.drawee.view.SimpleDraweeView
-                android:id="@id/dialogAvatar"
-                android:layout_width="@dimen/small_item_height"
-                android:layout_height="@dimen/small_item_height"
-                android:contentDescription="@null"
-                app:roundAsCircle="true"
-                tools:src="@drawable/ic_call_black_24dp" />
+        <ImageView
+            android:id="@+id/favoriteConversationImageView"
+            android:layout_width="16dp"
+            android:layout_height="16dp"
+            android:layout_gravity="top|end"
+            android:contentDescription="@string/starred"
+            android:src="@drawable/ic_star_black_24dp"
+            app:tint="@color/favorite_icon_tint"
+            app:tintMode="src_in" />
 
-            <ImageView
-                android:id="@+id/favoriteConversationImageView"
-                android:layout_width="16dp"
-                android:layout_height="16dp"
-                android:layout_gravity="top|end"
-                android:contentDescription="@string/starred"
-                android:src="@drawable/ic_star_black_24dp"
-                app:tint="@color/favorite_icon_tint"
-                app:tintMode="src_in" />
+    </FrameLayout>
 
-        </FrameLayout>
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/dialogName"
+        android:layout_marginTop="6dp"
+        android:layout_toEndOf="@id/dialogAvatarFrameLayout">
 
-        <RelativeLayout
+        <androidx.emoji.widget.EmojiTextView
+            android:id="@id/dialogLastMessage"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_below="@id/dialogName"
-            android:layout_marginTop="6dp"
-            android:layout_toEndOf="@id/dialogAvatarFrameLayout">
-
-            <androidx.emoji.widget.EmojiTextView
-                android:id="@id/dialogLastMessage"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_toStartOf="@id/dialogUnreadBubble"
-                android:ellipsize="end"
-                android:gravity="top"
-                android:lines="1"
-                android:singleLine="true"
-                android:textColor="@color/textColorMaxContrast"
-                android:textSize="14sp"
-                tools:text="This is the last message\nof an incredibly long two line  conversation text" />
-
-            <com.google.android.material.chip.Chip
-                android:id="@+id/dialogUnreadBubble"
-                style="@style/Widget.MaterialComponents.Chip.Choice"
-                android:layout_width="wrap_content"
-                android:layout_height="18dp"
-                android:layout_alignParentEnd="true"
-                android:layout_marginStart="8dp"
-                android:clickable="false"
-                android:gravity="top"
-                android:lines="1"
-                android:textAppearance="@style/ChipUnreadMessagesTextAppearance"
-                android:textColor="@color/conversation_unread_bubble_text"
-                app:chipBackgroundColor="@color/conversation_unread_bubble"
-                app:chipEndPadding="-1dp"
-                app:chipMinTouchTargetSize="0dp"
-                app:chipStartPadding="-3dp"
-                app:ensureMinTouchTargetSize="false"
-                tools:text="999+" />
-
-        </RelativeLayout>
+            android:layout_centerVertical="true"
+            android:layout_toStartOf="@id/dialogUnreadBubble"
+            android:ellipsize="end"
+            android:gravity="start|top"
+            android:lines="1"
+            android:singleLine="true"
+            android:textAlignment="viewStart"
+            android:textColor="@color/textColorMaxContrast"
+            android:textSize="14sp"
+            tools:text="This is the last message\nof an incredibly long two line  conversation text" />
 
-        <TextView
-            android:id="@id/dialogDate"
+        <com.google.android.material.chip.Chip
+            android:id="@+id/dialogUnreadBubble"
+            style="@style/Widget.MaterialComponents.Chip.Choice"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
+            android:layout_height="18dp"
             android:layout_alignParentEnd="true"
-            android:layout_marginTop="2dp"
-            android:ellipsize="end"
-            android:maxLines="1"
-            android:textSize="14sp"
-            android:textColor="@color/textColorMaxContrast"
-            tools:text="yesterday"/>
+            android:layout_marginStart="8dp"
+            android:clickable="false"
+            android:gravity="top"
+            android:lines="1"
+            android:textAppearance="@style/ChipUnreadMessagesTextAppearance"
+            android:textColor="@color/conversation_unread_bubble_text"
+            app:chipBackgroundColor="@color/conversation_unread_bubble"
+            app:chipEndPadding="-1dp"
+            app:chipMinTouchTargetSize="0dp"
+            app:chipStartPadding="-3dp"
+            app:ensureMinTouchTargetSize="false"
+            tools:text="999+" />
 
-        <androidx.emoji.widget.EmojiTextView
-            android:id="@id/dialogName"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_alignTop="@id/dialogAvatarFrameLayout"
-            android:layout_toStartOf="@id/dialogDate"
-            android:layout_toEndOf="@id/dialogAvatarFrameLayout"
-            android:layout_marginTop="2dp"
-            android:ellipsize="end"
-            android:includeFontPadding="false"
-            android:maxLines="1"
-            android:textColor="@color/conversation_item_header"
-            android:textSize="@dimen/two_line_primary_text_size"
-            tools:text="Best conversation" />
+    </RelativeLayout>
+
+    <TextView
+        android:id="@id/dialogDate"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_marginTop="2dp"
+        android:ellipsize="end"
+        android:maxLines="1"
+        android:textAlignment="viewEnd"
+        android:textColor="@color/textColorMaxContrast"
+        android:textSize="14sp"
+        tools:text="yesterday" />
+
+    <androidx.emoji.widget.EmojiTextView
+        android:id="@id/dialogName"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignTop="@id/dialogAvatarFrameLayout"
+        android:layout_marginTop="2dp"
+        android:layout_toStartOf="@id/dialogDate"
+        android:layout_toEndOf="@id/dialogAvatarFrameLayout"
+        android:ellipsize="end"
+        android:includeFontPadding="false"
+        android:maxLines="1"
+        android:textAlignment="viewStart"
+        android:textColor="@color/conversation_item_header"
+        android:textSize="@dimen/two_line_primary_text_size"
+        tools:text="Best conversation" />
 
 </RelativeLayout>

+ 2 - 0
app/src/main/res/layout/rv_item_mention.xml

@@ -58,6 +58,7 @@
             android:layout_height="wrap_content"
             android:ellipsize="middle"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textAppearance="@style/ListItem"
             tools:text="Call item text" />
 
@@ -67,6 +68,7 @@
             android:layout_height="wrap_content"
             android:ellipsize="middle"
             android:singleLine="true"
+            android:textAlignment="viewStart"
             android:textColor="@color/textColorMaxContrast"
             tools:text="A week ago" />
 

+ 3 - 2
app/src/main/res/layout/rv_item_menu.xml

@@ -33,10 +33,11 @@
         android:layout_margin="16dp"
         android:focusable="false"
         android:focusableInTouchMode="false"
-        android:gravity="center_vertical"
+        android:gravity="start|center_vertical"
+        android:textAlignment="viewStart"
         android:textColor="@color/conversation_item_header"
         android:textSize="16sp"
-        tools:drawableLeft="@drawable/ic_add_grey600_24px"
         tools:drawablePadding="16dp"
+        tools:drawableStart="@drawable/ic_add_grey600_24px"
         tools:text="Start a new conversation" />
 </RelativeLayout>

+ 1 - 0
app/src/main/res/layout/rv_item_notification_sound.xml

@@ -41,6 +41,7 @@
         android:lines="1"
         android:paddingStart="24dp"
         android:paddingEnd="0dp"
+        android:textAlignment="viewStart"
         android:textAppearance="@style/ListItem"
         tools:text="Ringy Gone" />
 

+ 1 - 0
app/src/main/res/layout/rv_item_title_header.xml

@@ -35,6 +35,7 @@
         android:layout_marginTop="@dimen/standard_half_margin"
         android:layout_marginEnd="@dimen/standard_margin"
         android:layout_marginBottom="@dimen/standard_half_margin"
+        android:textAlignment="viewStart"
         android:textColor="@color/colorPrimary"
         android:textStyle="bold"
         tools:text="A" />

+ 2 - 1
app/src/main/res/layout/search_layout.xml

@@ -70,13 +70,14 @@
                 android:ellipsize="end"
                 android:gravity="start|center_vertical"
                 android:lines="1"
+                android:textAlignment="viewStart"
                 android:textColor="@color/fontSecondaryAppbar"
                 android:textSize="16sp"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintLeft_toRightOf="@id/menu_button"
                 app:layout_constraintRight_toLeftOf="@id/rightContainer"
                 app:layout_constraintTop_toTopOf="parent"
-                tools:text="Search in Nextcloud" />
+                tools:text="@string/appbar_search_in" />
 
             <FrameLayout
                 android:id="@+id/rightContainer"

+ 8 - 7
app/src/main/res/layout/view_message_input.xml

@@ -75,24 +75,25 @@
             android:imeOptions="actionDone"
             android:inputType="textAutoCorrect|textMultiLine|textCapSentences"
             android:lineSpacingMultiplier="1.2"
-            android:minHeight="48dp" />
+            android:minHeight="48dp"
+            android:textAlignment="viewStart"
+            tools:hint="@string/nc_hint_enter_a_message" />
 
         <TextView
             android:id="@+id/slideToCancelDescription"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_below="@id/quotedChatMessageView"
+            android:layout_centerInParent="true"
             android:layout_toStartOf="@id/recordAudioButton"
             android:layout_toEndOf="@id/audioRecordDuration"
-            android:layout_centerInParent="true"
-            android:textAlignment="center"
+            android:text="@string/nc_voice_message_slide_to_cancel"
+            android:textAlignment="viewStart"
+            android:textColor="@color/low_emphasis_text"
             android:textSize="16sp"
             android:textStyle="bold"
-            android:textColor="@color/low_emphasis_text"
-            android:text="@string/nc_voice_message_slide_to_cancel"
             android:visibility="gone"
-            tools:visibility="visible">
-        </TextView>
+            tools:visibility="visible" />
 
         <ImageView
             android:id="@+id/microphoneEnabledInfoBackground"

+ 1 - 1
scripts/analysis/lint-results.txt

@@ -1,2 +1,2 @@
 DO NOT TOUCH; GENERATED BY DRONE
-      <span class="mdl-layout-title">Lint Report: 3 errors and 270 warnings</span>
+      <span class="mdl-layout-title">Lint Report: 3 errors and 269 warnings</span>