@@ -144,7 +144,6 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
144144
145145 private final long footerId = UUID .randomUUID ().getLeastSignificantBits ();
146146 private final long headerId = UUID .randomUUID ().getLeastSignificantBits ();
147- private final OCFileListGridController gridController = new OCFileListGridController ();
148147
149148 private ArrayList <Recommendation > recommendedFiles = new ArrayList <>();
150149
@@ -480,7 +479,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi
480479 }
481480
482481 if (holder instanceof ListGridItemViewHolder gridItemViewHolder ) {
483- setFileNameAndExtension (gridItemViewHolder , file );
482+ setFilenameAndExtension (gridItemViewHolder , file );
484483 checkVisibilityOfFileFeaturesLayout (gridItemViewHolder );
485484 }
486485
@@ -560,18 +559,39 @@ private void updateLivePhotoIndicators(ListViewHolder holder, OCFile file) {
560559 }
561560 }
562561
563- private void setFileNameAndExtension (ListGridItemViewHolder holder , OCFile file ) {
562+ private void setFilenameAndExtension (ListGridItemViewHolder holder , OCFile file ) {
564563 final String filename = mStorageManager .getFilenameConsideringOfflineOperation (file );
565564 final var pair = FileStorageUtils .getFilenameAndExtension (filename , file .isFolder (), isRTL );
566565 final boolean isFolder = file .isFolder ();
567566
568567 if (holder instanceof OCFileListGridItemViewHolder gridItemViewHolder ) {
569- gridController . handleGridMode (filename , ocFileListFragmentInterface , gridItemViewHolder , pair , file );
568+ handleGridMode (filename , gridItemViewHolder , pair , file );
570569 } else {
571570 handleListMode (holder , pair , isFolder );
572571 }
573572 }
574573
574+ private void handleGridMode (String filename , OCFileListGridItemViewHolder holder , Pair <String , String > filenamePair , OCFile file ) {
575+ boolean containsBidiControlCharacters = FileStorageUtils .containsBidiControlCharacters (filename );
576+ ViewExtensionsKt .setVisibleIf (holder .getFileName (),!containsBidiControlCharacters );
577+ ViewExtensionsKt .setVisibleIf (holder .getBinding ().bidiFilenameContainer , containsBidiControlCharacters );
578+ final var extension = holder .getExtension ();
579+
580+ if (containsBidiControlCharacters ) {
581+ holder .getBidiFilename ().setText (filenamePair .getFirst ());
582+ if (extension != null ) {
583+ extension .setText (filenamePair .getSecond ());
584+ }
585+ holder .getBinding ().more .setVisibility (View .GONE );
586+ holder .getBinding ().bidiMore .setOnClickListener (v -> ocFileListFragmentInterface .onOverflowIconClicked (file , v ));
587+ } else {
588+ holder .getFileName ().setText (filename );
589+ if (extension != null ) {
590+ extension .setVisibility (View .GONE );
591+ }
592+ }
593+ }
594+
575595 private void handleListMode (ListGridItemViewHolder holder ,
576596 Pair <String , String > filenamePair ,
577597 boolean isFolder ) {
0 commit comments