diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java index 352bc6472b8d..281469fde0d7 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java @@ -552,7 +552,7 @@ private void setFilenameAndExtension(ListGridItemViewHolder holder, OCFile file) if (holder instanceof OCFileListGridItemViewHolder gridItemViewHolder) { handleGridMode(filename, gridItemViewHolder, pair, file); } else { - handleListMode(holder, pair, isFolder); + handleListMode(holder, filename, pair, isFolder); } } @@ -578,18 +578,24 @@ private void handleGridMode(String filename, OCFileListGridItemViewHolder holder } private void handleListMode(ListGridItemViewHolder holder, + String filename, Pair filenamePair, boolean isFolder) { - holder.getFileName().setText(filenamePair.getFirst()); - final var extension = holder.getExtension(); - if (extension != null) { - if (isFolder) { + final boolean useSeparateExtension = !isFolder && FileStorageUtils.containsBidiControlCharacters(filename); + + if (!useSeparateExtension) { + holder.getFileName().setText(filename); + if (extension != null) { extension.setVisibility(View.GONE); - } else { - extension.setVisibility(View.VISIBLE); - extension.setText(filenamePair.getSecond()); } + return; + } + + holder.getFileName().setText(filenamePair.getFirst()); + if (extension != null) { + extension.setVisibility(View.VISIBLE); + extension.setText(filenamePair.getSecond()); } } diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml index 8717f2ffc7aa..263e7e9f673d 100644 --- a/app/src/main/res/layout/list_item.xml +++ b/app/src/main/res/layout/list_item.xml @@ -84,8 +84,9 @@