Skip to content

Commit a6980c6

Browse files
Merge pull request #16385 from nextcloud/backport/16383/stable-3.35
[stable-3.35] fix(unified search): filename overflow issue
2 parents 8c518a0 + cdfa4f4 commit a6980c6

File tree

2 files changed

+39
-28
lines changed

2 files changed

+39
-28
lines changed

app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchCurrentDirItemViewHolder.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
package com.owncloud.android.ui.adapter
99

1010
import android.content.Context
11+
import android.view.View
1112
import com.afollestad.sectionedrecyclerview.SectionedViewHolder
1213
import com.nextcloud.android.common.ui.theme.utils.ColorRole
1314
import com.nextcloud.client.account.User
1415
import com.nextcloud.client.preferences.AppPreferences
15-
import com.nextcloud.utils.extensions.setVisibleIf
1616
import com.owncloud.android.databinding.UnifiedSearchCurrentDirectoryItemBinding
1717
import com.owncloud.android.datamodel.FileDataStorageManager
1818
import com.owncloud.android.datamodel.OCFile
@@ -38,10 +38,17 @@ class UnifiedSearchCurrentDirItemViewHolder(
3838
fun bind(file: OCFile) {
3939
val filenameWithExtension = storageManager.getFilenameConsideringOfflineOperation(file)
4040
val isFolder = file.isFolder
41-
val (filename, extension) = FileStorageUtils.getFilenameAndExtension(filenameWithExtension, isFolder, isRTL)
42-
binding.extension.setVisibleIf(!isFolder)
43-
binding.extension.text = extension
44-
binding.filename.text = filename
41+
val containsBidiControlCharacters = FileStorageUtils.containsBidiControlCharacters(filenameWithExtension)
42+
43+
if (!containsBidiControlCharacters || isFolder) {
44+
binding.extension.visibility = View.GONE
45+
binding.filename.text = filenameWithExtension
46+
} else {
47+
val (filename, extension) = FileStorageUtils.getFilenameAndExtension(filenameWithExtension, false, isRTL)
48+
binding.extension.text = extension
49+
binding.filename.text = filename
50+
}
51+
4552
viewThemeUtils.platform.colorImageView(binding.thumbnail, ColorRole.PRIMARY)
4653
DisplayUtils.setThumbnail(
4754
file,

app/src/main/res/layout/unified_search_current_directory_item.xml

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,36 @@
3535
android:visibility="gone"
3636
app:corners="8" />
3737

38-
<com.google.android.material.textview.MaterialTextView
39-
android:id="@+id/filename"
38+
<LinearLayout
39+
android:layout_width="0dp"
40+
android:layout_height="wrap_content"
4041
android:layout_marginStart="@dimen/standard_margin"
41-
app:layout_constraintStart_toEndOf="@+id/thumbnail"
42-
app:layout_constraintTop_toTopOf="parent"
4342
app:layout_constraintBottom_toBottomOf="parent"
44-
android:ellipsize="middle"
45-
android:singleLine="true"
46-
android:textColor="@color/text_color"
47-
android:textSize="@dimen/two_line_primary_text_size"
48-
tools:text="@string/placeholder_filename"
49-
android:layout_width="wrap_content"
50-
android:layout_height="wrap_content"/>
43+
app:layout_constraintEnd_toStartOf="@id/more"
44+
app:layout_constraintStart_toEndOf="@+id/thumbnail"
45+
app:layout_constraintTop_toTopOf="parent">
5146

52-
<com.google.android.material.textview.MaterialTextView
53-
android:id="@+id/extension"
54-
app:layout_constraintTop_toTopOf="parent"
55-
app:layout_constraintStart_toEndOf="@+id/filename"
56-
app:layout_constraintBottom_toBottomOf="parent"
57-
android:ellipsize="middle"
58-
android:singleLine="true"
59-
android:textColor="@color/text_color"
60-
android:textSize="@dimen/two_line_primary_text_size"
61-
tools:text="@string/placeholder_extension"
62-
android:layout_width="wrap_content"
63-
android:layout_height="wrap_content"/>
47+
<com.google.android.material.textview.MaterialTextView
48+
android:id="@+id/filename"
49+
android:layout_width="wrap_content"
50+
android:layout_height="wrap_content"
51+
android:ellipsize="middle"
52+
android:singleLine="true"
53+
android:textColor="@color/text_color"
54+
android:textSize="@dimen/two_line_primary_text_size"
55+
tools:text="@string/placeholder_filename" />
56+
57+
<com.google.android.material.textview.MaterialTextView
58+
android:id="@+id/extension"
59+
android:layout_width="wrap_content"
60+
android:layout_height="wrap_content"
61+
android:ellipsize="middle"
62+
android:singleLine="true"
63+
android:textColor="@color/text_color"
64+
android:textSize="@dimen/two_line_primary_text_size"
65+
tools:text="@string/placeholder_extension" />
66+
67+
</LinearLayout>
6468

6569
<ImageButton
6670
android:id="@+id/more"

0 commit comments

Comments
 (0)